20 "Compute strain increment for small strains in an axisymmetric 1D problem");
21 params.
addParam<UserObjectName>(
"subblock_index_provider",
22 "SubblockIndexProvider user object name");
23 params.
addCoupledVar(
"scalar_out_of_plane_strain",
"Scalar variable for axisymmetric 1D problem");
24 params.
addCoupledVar(
"out_of_plane_strain",
"Nonlinear variable for axisymmetric 1D problem");
32 _disp_old_0(coupledValueOld(
"displacements", 0)),
33 _subblock_id_provider(isParamValid(
"subblock_index_provider")
36 _has_out_of_plane_strain(isCoupled(
"out_of_plane_strain")),
37 _out_of_plane_strain(_has_out_of_plane_strain ? coupledValue(
"out_of_plane_strain") : _zero),
38 _out_of_plane_strain_old(_has_out_of_plane_strain ? coupledValueOld(
"out_of_plane_strain")
40 _has_scalar_out_of_plane_strain(isCoupledScalar(
"scalar_out_of_plane_strain"))
43 mooseError(
"Must define only one of out_of_plane_strain or scalar_out_of_plane_strain");
50 for (
unsigned int i = 0; i < nscalar_strains; ++i)
64 mooseError(
"The coordinate system must be set to RZ for Axisymmetric 1D simulations");
const MooseArray< Point > & _q_point
std::vector< const VariableValue * > _scalar_out_of_plane_strain_old
ComputeAxisymmetric1DIncrementalStrain defines a strain increment only for incremental small strains ...
bool _has_out_of_plane_strain
Whether an out-of-plane strain variable is coupled.
bool absoluteFuzzyEqual(const T &var1, const T2 &var2, const T3 &tol=libMesh::TOLERANCE *libMesh::TOLERANCE)
void initialSetup() override
Real computeGradDispZZOld() override
Computes the old dUz/dz for axisymmetric problems, where .
const VariableValue & coupledScalarValueOld(const std::string &var_name, unsigned int comp=0) const
Moose::CoordinateSystemType getBlockCoordSystem()
Abstract base class for user objects that provide an index for a given element that is independent of...
Compute1DIncrementalStrain defines a strain increment only for incremental small strains in 1D proble...
std::vector< const VariableValue * > _disp
Displacement variables.
bool _has_scalar_out_of_plane_strain
Whether an out-of-plane strain scalar variable is coupled.
Real computeGradDispYYOld() override
Computes the old dUy/dy for axisymmetric problems.
void initialSetup() override
const VariableValue & _disp_old_0
the old value of the first component of the displacements vector
const VariableValue & coupledScalarValue(const std::string &var_name, unsigned int comp=0) const
Real computeGradDispYY() override
Computes the current dUy/dy for axisymmetric problems.
static InputParameters validParams()
Real computeGradDispZZ() override
Computes the current dUz/dz for axisymmetric problems, where .
registerMooseObject("SolidMechanicsApp", ComputeAxisymmetric1DIncrementalStrain)
const VariableValue & _out_of_plane_strain_old
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const VariableValue & _out_of_plane_strain
{@ Current and old values of the out-of-plane strain variable
unsigned int coupledScalarComponents(const std::string &var_name) const
void mooseError(Args &&... args) const
unsigned int getCurrentSubblockIndex() const
gets its subblock index for current element
static InputParameters validParams()
std::vector< const VariableValue * > _scalar_out_of_plane_strain
{@ Current and old values of the out-of-plane strain scalar variable
ComputeAxisymmetric1DIncrementalStrain(const InputParameters ¶meters)