20 params.
addParam<UserObjectName>(
"subblock_index_provider",
21 "SubblockIndexProvider user object name");
22 params.
addCoupledVar(
"scalar_out_of_plane_strain",
"Scalar variable for axisymmetric 1D problem");
23 params.
addCoupledVar(
"out_of_plane_strain",
"Nonlinear variable for axisymmetric 1D problem");
31 _subblock_id_provider(isParamValid(
"subblock_index_provider")
34 _has_out_of_plane_strain(isCoupled(
"out_of_plane_strain")),
35 _out_of_plane_strain(_has_out_of_plane_strain ? adCoupledValue(
"out_of_plane_strain")
37 _has_scalar_out_of_plane_strain(isCoupledScalar(
"scalar_out_of_plane_strain"))
40 mooseError(
"Must define only one of out_of_plane_strain or scalar_out_of_plane_strain");
46 for (
unsigned int i = 0; i < nscalar_strains; ++i)
57 mooseError(
"The coordinate system must be set to RZ for Axisymmetric geometries.");
78 if (!MooseUtils::absoluteFuzzyEqual(
_q_point[
_qp](0), 0.0))
registerMooseObject("SolidMechanicsApp", ADComputeAxisymmetric1DSmallStrain)
DualNumber< Real, DNDerivativeType, true > ADReal
ADCompute1DSmallStrain defines a strain tensor, assuming small strains, in 1D problems,...
static InputParameters validParams()
ADComputeAxisymmetric1DSmallStrain defines small strains in an Axisymmetric 1D problem.
std::vector< const ADVariableValue * > _scalar_out_of_plane_strain
The out-of-plane strain scalar variables.
const ADVariableValue & _out_of_plane_strain
The out-of-plane strain variable.
static InputParameters validParams()
const SubblockIndexProvider *const _subblock_id_provider
A UserObject that carries the subblock ID for all elements.
const bool _has_out_of_plane_strain
Whether an out-of-plane strain variable is coupled.
const bool _has_scalar_out_of_plane_strain
Whether out-of-plane strain scalar variables are coupled.
unsigned int getCurrentSubblockIndex() const
Gets the subblock index for the current element.
ADReal computeStrainYY() override
Computes the strain_yy for axisymmetric problems.
ADComputeAxisymmetric1DSmallStrain(const InputParameters ¶meters)
void initialSetup() override
ADReal computeStrainZZ() override
Computes the strain_zz for axisymmetric problems, where .
void initialSetup() override
std::vector< const ADVariableValue * > _disp
Displacement variables.
Moose::CoordinateSystemType getBlockCoordSystem()
const Elem *const & _current_elem
const MooseArray< Point > & _q_point
void mooseError(Args &&... args) const
unsigned int coupledScalarComponents(const std::string &var_name) const
const ADVariableValue & adCoupledScalarValue(const std::string &var_name, unsigned int comp=0) const
Abstract base class for user objects that provide an index for a given element that is independent of...
virtual unsigned int getSubblockIndex(const Elem &) const =0
The index of subblock this element is on.