19 "strains and internal parameters) using an iterative process, as well " 20 "as Cosserat versions of these quantities. Only elasticity is " 21 "currently implemented for the Cosserat versions. " 22 "Combinations of creep models and plastic models may be used");
30 _elastic_flexural_rigidity_tensor(
31 getMaterialProperty<
RankFourTensor>(
"elastic_flexural_rigidity_tensor")),
32 _couple_stress(declareProperty<
RankTwoTensor>(
"couple_stress")),
33 _couple_stress_old(getMaterialPropertyOld<
RankTwoTensor>(
"couple_stress")),
34 _Jacobian_mult_couple(declareProperty<
RankFourTensor>(
"couple_Jacobian_mult")),
35 _compliance(getMaterialProperty<
RankFourTensor>(_base_name +
"compliance_tensor"))
71 for (
unsigned i_rmm = 1; i_rmm <
_num_models; ++i_rmm)
79 unsigned model_number,
85 const RankTwoTensor applied_strain_increment = elastic_strain_increment;
88 elastic_strain_increment,
89 inelastic_strain_increment,
90 consistent_tangent_operator);
93 elastic_strain_increment = applied_strain_increment - inelastic_strain_increment;
virtual void computeQpJacobianMult() override
Using _elasticity_tensor[_qp] and the consistent tangent operators, _consistent_tangent_operator[...] computed by the inelastic models, compute _Jacobian_mult[_qp].
MaterialProperty< RankFourTensor > & _Jacobian_mult
derivative of stress w.r.t. strain (_dstress_dstrain)
FEProblemBase & _fe_problem
ComputeMultipleInelasticStress computes the stress, the consistent tangent operator (or an approximat...
const MaterialProperty< RankTwoTensor > & _rotation_increment
Rotation increment material property.
const MaterialProperty< RankFourTensor > & _compliance
Inverse of the elasticity tensor.
virtual void computeAdmissibleState(unsigned model_number, RankTwoTensor &elastic_strain_increment, RankTwoTensor &inelastic_strain_increment, RankFourTensor &consistent_tangent_operator) override
The current Cosserat models do not know they might be using the "host" version of the elasticity tens...
const MaterialProperty< RankTwoTensor > & _curvature
The Cosserat curvature strain.
ComputeMultipleInelasticCosseratStress(const InputParameters ¶meters)
virtual void computeQpStress() override
Compute the stress and store it in the _stress material property for the current quadrature point...
const MaterialProperty< RankFourTensor > & _elasticity_tensor
Elasticity tensor material property.
const MaterialProperty< RankFourTensor > & _elastic_flexural_rigidity_tensor
The Cosserat elastic flexural rigidity tensor.
virtual void initQpStatefulProperties() override
static InputParameters validParams()
MaterialProperty< RankFourTensor > & _Jacobian_mult_couple
derivative of couple-stress w.r.t. curvature
virtual void computeAdmissibleState(unsigned model_number, RankTwoTensor &elastic_strain_increment, RankTwoTensor &inelastic_strain_increment, RankFourTensor &consistent_tangent_operator)
Given a trial stress (_stress[_qp]) and a strain increment (elastic_strain_increment) let the model_n...
ComputeMultipleInelasticStress computes the stress, the consistent tangent operator (or an approximat...
std::vector< RankFourTensor > _consistent_tangent_operator
the consistent tangent operators computed by each plastic model
registerMooseObject("SolidMechanicsApp", ComputeMultipleInelasticCosseratStress)
MaterialProperty< RankTwoTensor > & _couple_stress
the Cosserat couple-stress
static InputParameters validParams()
unsigned _num_models
number of plastic models
virtual void computeQpStress() override
Compute the stress and store it in the _stress material property for the current quadrature point...
const bool _perform_finite_strain_rotations
after updateQpState, rotate the stress, elastic_strain, inelastic_strain and Jacobian_mult using _rot...
MaterialProperty< RankTwoTensor > & _stress
Stress material property.
const bool & currentlyComputingJacobian() const
enum ComputeMultipleInelasticStressBase::TangentOperatorEnum _tangent_operator_type
virtual void initQpStatefulProperties() override