Go to the documentation of this file.
20 params.addClassDescription(
"Compute a strain increment and rotation increment for finite strains "
21 "in an axisymmetric 1D problem");
22 params.addParam<UserObjectName>(
"subblock_index_provider",
23 "SubblockIndexProvider user object name");
24 params.addCoupledVar(
"scalar_out_of_plane_strain",
"Scalar variable for axisymmetric 1D problem");
25 params.addCoupledVar(
"out_of_plane_strain",
"Nonlinear variable for axisymmetric 1D problem");
31 const InputParameters & parameters)
33 _disp_old_0(coupledValueOld(
"displacements", 0)),
34 _subblock_id_provider(isParamValid(
"subblock_index_provider")
37 _has_out_of_plane_strain(isParamValid(
"out_of_plane_strain")),
38 _out_of_plane_strain(_has_out_of_plane_strain ? coupledValue(
"out_of_plane_strain") : _zero),
39 _out_of_plane_strain_old(_has_out_of_plane_strain ? coupledValueOld(
"out_of_plane_strain")
41 _has_scalar_out_of_plane_strain(isParamValid(
"scalar_out_of_plane_strain")),
42 _nscalar_strains(coupledScalarComponents(
"scalar_out_of_plane_strain"))
45 mooseError(
"Must define only one of out_of_plane_strain or scalar_out_of_plane_strain");
64 if (getBlockCoordSystem() != Moose::COORD_RZ)
65 mooseError(
"The coordinate system must be set to RZ for Axisymmetric geometries.");
89 if (!MooseUtils::absoluteFuzzyEqual(_q_point[_qp](0), 0.0))
90 return (*
_disp[0])[_qp] / _q_point[_qp](0);
98 if (!MooseUtils::absoluteFuzzyEqual(_q_point[_qp](0), 0.0))
void initialSetup() override
defineLegacyParams(ComputeAxisymmetric1DFiniteStrain)
Abstract base class for user objects that provide an index for a given element that is independent of...
std::vector< const VariableValue * > _disp
std::vector< const VariableValue * > _scalar_out_of_plane_strain_old
static InputParameters validParams()
bool _has_scalar_out_of_plane_strain
Real computeGradDispZZ() override
Computes the current dUz/dz for axisymmetric problems, where .
bool _has_out_of_plane_strain
const VariableValue & _disp_old_0
the old value of the first component of the displacements vector
Real computeGradDispZZOld() override
Computes the old dUz/dz for axisymmetric problems, where .
Compute1DFiniteStrain defines a strain increment for finite strains in 1D problems,...
registerMooseObject("TensorMechanicsApp", ComputeAxisymmetric1DFiniteStrain)
void initialSetup() override
unsigned int _nscalar_strains
std::vector< const VariableValue * > _scalar_out_of_plane_strain
Real computeGradDispYYOld() override
Computes the old dUy/dy for axisymmetric problems.
ComputeAxisymmetric1DFiniteStrain(const InputParameters ¶meters)
const VariableValue & _out_of_plane_strain_old
ComputeAxisymmetric1DFiniteStrain defines a strain increment for finite strains in an Axisymmetric 1D...
unsigned int getCurrentSubblockIndex() const
gets its subblock index for current element
static InputParameters validParams()
Real computeGradDispYY() override
Computes the current dUy/dy for axisymmetric problems.
const VariableValue & _out_of_plane_strain