https://mooseframework.inl.gov
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | List of all members
HyperElasticPhaseFieldIsoDamage Class Reference

This class solves visco plastic model based on isotropically damaged stress The damage parameter is obtained from phase field fracture kernel Computes undamaged elastic strain energy and associated tensors used in phase field fracture kernel. More...

#include <HyperElasticPhaseFieldIsoDamage.h>

Inheritance diagram for HyperElasticPhaseFieldIsoDamage:
[legend]

Public Types

typedef DerivativeMaterialPropertyNameInterface::SymbolName SymbolName
 

Public Member Functions

 HyperElasticPhaseFieldIsoDamage (const InputParameters &parameters)
 
const GenericMaterialProperty< U, is_ad > & getDefaultMaterialProperty (const std::string &name)
 
const GenericMaterialProperty< U, is_ad > & getDefaultMaterialPropertyByName (const std::string &name)
 
void validateDerivativeMaterialPropertyBase (const std::string &base)
 
const MaterialPropertyName derivativePropertyName (const MaterialPropertyName &base, const std::vector< SymbolName > &c) const
 
const MaterialPropertyName derivativePropertyNameFirst (const MaterialPropertyName &base, const SymbolName &c1) const
 
const MaterialPropertyName derivativePropertyNameSecond (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2) const
 
const MaterialPropertyName derivativePropertyNameThird (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2, const SymbolName &c3) const
 
GenericMaterialProperty< U, is_ad > & declarePropertyDerivative (const std::string &base, const std::vector< VariableName > &c)
 
GenericMaterialProperty< U, is_ad > & declarePropertyDerivative (const std::string &base, const std::vector< SymbolName > &c)
 
GenericMaterialProperty< U, is_ad > & declarePropertyDerivative (const std::string &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="")
 
GenericMaterialProperty< U, is_ad > & declarePropertyDerivative (const std::string &base, const std::vector< VariableName > &c)
 
GenericMaterialProperty< U, is_ad > & declarePropertyDerivative (const std::string &base, const std::vector< SymbolName > &c)
 
GenericMaterialProperty< U, is_ad > & declarePropertyDerivative (const std::string &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="")
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const std::vector< VariableName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const std::vector< SymbolName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="")
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const SymbolName &c1, unsigned int v2, unsigned int v3=libMesh::invalid_uint)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, unsigned int v1, unsigned int v2=libMesh::invalid_uint, unsigned int v3=libMesh::invalid_uint)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const std::vector< VariableName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const std::vector< SymbolName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="")
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const SymbolName &c1, unsigned int v2, unsigned int v3=libMesh::invalid_uint)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, unsigned int v1, unsigned int v2=libMesh::invalid_uint, unsigned int v3=libMesh::invalid_uint)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const std::vector< VariableName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const std::vector< SymbolName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="")
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const std::vector< VariableName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const std::vector< SymbolName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="")
 
void validateCoupling (const MaterialPropertyName &base, const std::vector< VariableName > &c, bool validate_aux=true)
 
void validateCoupling (const MaterialPropertyName &base, const VariableName &c1="", const VariableName &c2="", const VariableName &c3="")
 
void validateCoupling (const MaterialPropertyName &base, const std::vector< VariableName > &c, bool validate_aux=true)
 
void validateCoupling (const MaterialPropertyName &base, const VariableName &c1="", const VariableName &c2="", const VariableName &c3="")
 
void validateNonlinearCoupling (const MaterialPropertyName &base, const VariableName &c1="", const VariableName &c2="", const VariableName &c3="")
 
void validateNonlinearCoupling (const MaterialPropertyName &base, const VariableName &c1="", const VariableName &c2="", const VariableName &c3="")
 
const MaterialPropertyName propertyName (const MaterialPropertyName &base, const std::vector< SymbolName > &c) const
 
const MaterialPropertyName propertyName (const MaterialPropertyName &base, const std::vector< SymbolName > &c) const
 
const MaterialPropertyName propertyNameFirst (const MaterialPropertyName &base, const SymbolName &c1) const
 
const MaterialPropertyName propertyNameFirst (const MaterialPropertyName &base, const SymbolName &c1) const
 
const MaterialPropertyName propertyNameSecond (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2) const
 
const MaterialPropertyName propertyNameSecond (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2) const
 
const MaterialPropertyName propertyNameThird (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2, const SymbolName &c3) const
 
const MaterialPropertyName propertyNameThird (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2, const SymbolName &c3) const
 

Static Public Member Functions

static InputParameters validParams ()
 

Protected Member Functions

virtual void computePK2StressAndDerivative ()
 This function computes PK2 stress.
 
virtual void computeDamageStress ()
 This function computes PK2 stress modified to account for damage Computes numerical stiffness if flag is true Computes undamaged elastic strain energy and associated tensors.
 
virtual void computeNumStiffness ()
 This function computes numerical stiffness.
 
virtual void computeQpJacobian ()
 This function computes tensors used to construct diagonal and off-diagonal Jacobian.
 
virtual void initUOVariables ()
 This function initializes the properties, stateful properties and user objects The properties and stateful properties associated with user objects are only initialized here The properties have the same name as the user object name.
 
void initNumUserObjects (const std::vector< UserObjectName > &, unsigned int &)
 This function calculates the number of each user object type.
 
template<typename T >
void initProp (const std::vector< UserObjectName > &, unsigned int, std::vector< MaterialProperty< T > * > &)
 This function initializes properties for each user object.
 
template<typename T >
void initPropOld (const std::vector< UserObjectName > &, unsigned int, std::vector< const MaterialProperty< T > * > &)
 This function initializes old for stateful properties associated with user object Only user objects that update internal variables have an associated old property.
 
template<typename T >
void initUserObjects (const std::vector< UserObjectName > &, unsigned int, std::vector< const T * > &)
 This function initializes user objects.
 
virtual void initJacobianVariables ()
 This function initialize variables required for Jacobian calculation.
 
virtual void initQpStatefulProperties ()
 Initializes state.
 
virtual void computeQpStress ()
 This function computes the Cauchy stress.
 
virtual void saveOldState ()
 This function saves the old stateful properties that is modified during sub stepping.
 
virtual void preSolveQp ()
 Sets state for solve.
 
virtual bool solveQp ()
 Solve state.
 
virtual void postSolveQp ()
 Update state for output (Outside substepping)
 
virtual void recoverOldState ()
 This function restores the the old stateful properties after a successful solve.
 
virtual void preSolveFlowrate ()
 Sets state for solve (Inside substepping)
 
virtual bool solveFlowrate ()
 Solve for flow rate and state.
 
virtual void postSolveFlowrate ()
 Update state for output (Inside substepping)
 
virtual bool computeFlowRateFunction ()
 Calls user objects to compute flow rates.
 
virtual bool computeFlowDirection ()
 Calls user objects to compute flow directions.
 
virtual void computeElasticRightCauchyGreenTensor ()
 Computes elastic Right Cauchy Green Tensor.
 
virtual void computeElasticStrain ()
 Computes elastic Lagrangian strain.
 
virtual void computeDeeDce ()
 Computes derivative of elastic strain w.r.t elastic Right Cauchy Green Tensor.
 
virtual bool computeFlowRateResidual ()
 Computes flow rate residual vector.
 
virtual void computeFlowRateJacobian ()
 Computes flow rate Jacobian matrix.
 
virtual void computeElasticPlasticDeformGrad ()
 Computes elastic and plastic deformation gradients.
 
virtual Real computeNorm (const std::vector< Real > &)
 Computes norm of residual vector.
 
virtual void updateFlowRate ()
 Update flow rate.
 
virtual void computeDpk2Dfpinv ()
 Computes derivative of PK2 stress wrt inverse of plastic deformation gradient.
 
virtual bool computeIntVarRates ()
 This function call user objects to calculate rate of internal variables.
 
virtual bool computeIntVar ()
 This function call user objects to integrate internal variables.
 
virtual bool computeStrength ()
 This function call user objects to compute strength.
 
virtual void computeIntVarRateDerivatives ()
 This function call user objects to compute dintvar_rate/dintvar and dintvarrate/dflowrate.
 
virtual void computeIntVarDerivatives ()
 This function call user objects to compute dintvar/dintvar_rate and dintvar/dflowrate.
 
void computeStrengthDerivatives ()
 This function call user objects to compute dstrength/dintvar.
 
virtual void computeQpProperties () override
 

Protected Attributes

bool _num_stiffness
 Flag to compute numerical stiffness.
 
Real _kdamage
 Small stiffness of completely damaged material point.
 
bool _use_current_hist
 Use current value of history variable.
 
const MaterialProperty< Real > & _l
 Material property defining crack width, declared elsewhere.
 
const MaterialProperty< Real > & _gc
 Material property defining gc parameter, declared elsewhere.
 
Real _zero_tol
 Used in numerical stiffness calculation to check near zero values.
 
Real _zero_pert
 Perturbation value for near zero or zero strain components.
 
Real _pert_val
 Perturbation value for strain components.
 
const VariableValue_c
 Compupled damage variable.
 
bool _save_state
 Flag to save couple material properties.
 
MaterialProperty< RankTwoTensor > & _dstress_dc
 
RankTwoTensor _pk2_tmp
 
RankTwoTensor _dG0_dee
 
RankTwoTensor _dpk2_dc
 
RankFourTensor _dpk2_dee
 
std::vector< RankTwoTensor_etens
 
MaterialProperty< Real > & _F
 Elastic energy and derivatives, declared in this material.
 
MaterialProperty< Real > & _dFdc
 
MaterialProperty< Real > & _d2Fdc2
 
MaterialProperty< RankTwoTensor > & _d2Fdcdstrain
 
MaterialProperty< Real > & _hist
 History variable that prevents crack healing, declared in this material.
 
const MaterialProperty< Real > & _hist_old
 Old value of history variable.
 
Real _resid_abs_tol
 Absolute tolerance for residual convergence check.
 
Real _resid_rel_tol
 Relative tolerance for residual convergence check.
 
unsigned int _maxiters
 Maximum number of iterations.
 
unsigned int _max_substep_iter
 Maximum number of substep iterations.
 
std::vector< UserObjectName > _flow_rate_uo_names
 Names of flow rate user objects.
 
std::vector< UserObjectName > _strength_uo_names
 Names of strength user objects.
 
std::vector< UserObjectName > _int_var_uo_names
 Names of internal variable user objects.
 
std::vector< UserObjectName > _int_var_rate_uo_names
 Names of internal variable rate user objects.
 
unsigned int _num_flow_rate_uos
 Number of flow rate user objects.
 
unsigned int _num_strength_uos
 Number of strength user objects.
 
unsigned int _num_int_var_uos
 Number of internal variable user objects.
 
unsigned int _num_int_var_rate_uos
 Number of internal variable rate user objects.
 
std::vector< const HEVPFlowRateUOBase * > _flow_rate_uo
 Flow rate user objects.
 
std::vector< const HEVPStrengthUOBase * > _strength_uo
 Strength user objects.
 
std::vector< const HEVPInternalVarUOBase * > _int_var_uo
 Internal variable user objects.
 
std::vector< const HEVPInternalVarRateUOBase * > _int_var_rate_uo
 Internal variable rate user objects.
 
std::string _pk2_prop_name
 
MaterialProperty< RankTwoTensor > & _pk2
 
MaterialProperty< RankTwoTensor > & _fp
 
const MaterialProperty< RankTwoTensor > & _fp_old
 
MaterialProperty< RankTwoTensor > & _ce
 
const std::string _elasticity_tensor_name
 Name of the elasticity tensor material property.
 
const MaterialProperty< RankFourTensor > & _elasticity_tensor
 Elasticity tensor material property.
 
const MaterialProperty< RankTwoTensor > & _deformation_gradient
 
const MaterialProperty< RankTwoTensor > & _deformation_gradient_old
 
const MaterialProperty< RankTwoTensor > & _rotation_increment
 
std::vector< MaterialProperty< Real > * > _flow_rate_prop
 
std::vector< MaterialProperty< Real > * > _strength_prop
 
std::vector< MaterialProperty< Real > * > _int_var_stateful_prop
 
std::vector< const MaterialProperty< Real > * > _int_var_stateful_prop_old
 
std::vector< MaterialProperty< Real > * > _int_var_rate_prop
 
std::vector< Real > _int_var_old
 
RankTwoTensor _dfgrd_tmp
 
RankTwoTensor _fp_tmp_inv
 
RankTwoTensor _fp_tmp_old_inv
 
RankTwoTensor _fe
 
RankTwoTensor _ee
 
RankTwoTensor _pk2_fet
 
RankTwoTensor _fe_pk2
 
RankFourTensor _dpk2_dce
 
RankFourTensor _dpk2_dfe
 
RankFourTensor _dfe_dfpinv
 
RankFourTensor _dpk2_dfpinv
 
RankFourTensor _dee_dce
 
RankFourTensor _dce_dfe
 
RankFourTensor _dfe_df
 
RankFourTensor _tan_mod
 
RankFourTensor _df_dstretch_inc
 
std::vector< RankTwoTensor_flow_dirn
 
std::vector< RankTwoTensor_dflowrate_dpk2
 
std::vector< RankTwoTensor_dpk2_dflowrate
 
std::vector< RankTwoTensor_dfpinv_dflowrate
 
DenseVector< Real > _dflow_rate
 
DenseVector< Real > _flow_rate
 
DenseVector< Real > _resid
 
std::vector< DenseVector< Real > > _dintvarrate_dflowrate
 Jacobian variables.
 
std::vector< DenseVector< Real > > _dintvar_dflowrate_tmp
 
DenseMatrix< Real > _dintvarrate_dintvar
 
DenseMatrix< Real > _dintvar_dintvarrate
 
DenseMatrix< Real > _dintvar_dintvar
 
DenseMatrix< Real > _dintvar_dflowrate
 
DenseMatrix< Real > _dstrength_dintvar
 
DenseMatrix< Real > _dflowrate_dstrength
 
DenseVector< Real > _dintvar_dintvar_x
 
DenseMatrix< Real > _jac
 
Real _dt_substep
 
const std::string _base_name
 Base name prepended to all material property names to allow for multi-material systems.
 
const MaterialProperty< RankTwoTensor > & _mechanical_strain
 Mechanical strain material property.
 
MaterialProperty< RankTwoTensor > & _stress
 Stress material property.
 
MaterialProperty< RankTwoTensor > & _elastic_strain
 Elastic strain material property.
 
const MaterialProperty< RankTwoTensor > & _extra_stress
 Extra stress tensor.
 
std::vector< const Function * > _initial_stress_fcn
 initial stress components
 
MaterialProperty< RankFourTensor > & _Jacobian_mult
 derivative of stress w.r.t. strain (_dstress_dstrain)
 

Private Member Functions

bool haveMaterialProperty (const std::string &prop_name)
 
std::vector< VariableName > buildVariableVector (const VariableName &c1, const VariableName &c2, const VariableName &c3)
 
void validateCouplingHelper (const MaterialPropertyName &base, const std::vector< VariableName > &c, const System &system, std::vector< VariableName > &missing)
 
bool isNotObjectVariable (const VariableName &name)
 

Private Attributes

FEProblemBase_dmi_fe_problem
 

Detailed Description

This class solves visco plastic model based on isotropically damaged stress The damage parameter is obtained from phase field fracture kernel Computes undamaged elastic strain energy and associated tensors used in phase field fracture kernel.

Definition at line 20 of file HyperElasticPhaseFieldIsoDamage.h.

Constructor & Destructor Documentation

◆ HyperElasticPhaseFieldIsoDamage()

HyperElasticPhaseFieldIsoDamage::HyperElasticPhaseFieldIsoDamage ( const InputParameters parameters)

Definition at line 36 of file HyperElasticPhaseFieldIsoDamage.C.

38 _num_stiffness(getParam<bool>("numerical_stiffness")),
39 _kdamage(getParam<Real>("damage_stiffness")),
40 _use_current_hist(getParam<bool>("use_current_history_variable")),
41 _l(getMaterialProperty<Real>("l")),
42 _gc(getMaterialProperty<Real>("gc_prop")),
43 _zero_tol(getParam<Real>("zero_tol")),
44 _zero_pert(getParam<Real>("zero_perturb")),
45 _pert_val(getParam<Real>("perturbation_scale_factor")),
46 _c(coupledValue("c")),
47 _save_state(false),
49 declarePropertyDerivative<RankTwoTensor>(_base_name + "stress", coupledName("c", 0))),
50 _etens(LIBMESH_DIM),
51 _F(declareProperty<Real>(getParam<MaterialPropertyName>("F_name"))),
52 _dFdc(declarePropertyDerivative<Real>(getParam<MaterialPropertyName>("F_name"),
53 coupledName("c", 0))),
54 _d2Fdc2(declarePropertyDerivative<Real>(
55 getParam<MaterialPropertyName>("F_name"), coupledName("c", 0), coupledName("c", 0))),
56 _d2Fdcdstrain(declareProperty<RankTwoTensor>("d2Fdcdstrain")),
57 _hist(declareProperty<Real>("hist")),
58 _hist_old(getMaterialPropertyOld<Real>("hist"))
59{
60}
const std::string _base_name
Base name prepended to all material property names to allow for multi-material systems.
This class solves the viscoplastic flow rate equations in the total form Involves 4 different types o...
bool _use_current_hist
Use current value of history variable.
const MaterialProperty< Real > & _l
Material property defining crack width, declared elsewhere.
Real _pert_val
Perturbation value for strain components.
Real _zero_pert
Perturbation value for near zero or zero strain components.
Real _zero_tol
Used in numerical stiffness calculation to check near zero values.
bool _save_state
Flag to save couple material properties.
MaterialProperty< RankTwoTensor > & _d2Fdcdstrain
Real _kdamage
Small stiffness of completely damaged material point.
const MaterialProperty< Real > & _hist_old
Old value of history variable.
MaterialProperty< Real > & _F
Elastic energy and derivatives, declared in this material.
MaterialProperty< RankTwoTensor > & _dstress_dc
const MaterialProperty< Real > & _gc
Material property defining gc parameter, declared elsewhere.
const VariableValue & _c
Compupled damage variable.
bool _num_stiffness
Flag to compute numerical stiffness.
MaterialProperty< Real > & _hist
History variable that prevents crack healing, declared in this material.

Member Function Documentation

◆ computeDamageStress()

void HyperElasticPhaseFieldIsoDamage::computeDamageStress ( )
protectedvirtual

This function computes PK2 stress modified to account for damage Computes numerical stiffness if flag is true Computes undamaged elastic strain energy and associated tensors.

Definition at line 91 of file HyperElasticPhaseFieldIsoDamage.C.

92{
93 Real lambda = _elasticity_tensor[_qp](0, 0, 1, 1);
94 Real mu = _elasticity_tensor[_qp](0, 1, 0, 1);
95
96 Real c = _c[_qp];
97 Real xfac = Utility::pow<2>(1.0 - c) + _kdamage;
98
99 std::vector<Real> eigval;
100 RankTwoTensor evec;
102
103 for (const auto i : make_range(Moose::dim))
104 _etens[i] = RankTwoTensor::selfOuterProduct(evec.column(i));
105
106 Real etr = 0.0;
107 for (const auto i : make_range(Moose::dim))
108 etr += eigval[i];
109
110 Real etrpos = (std::abs(etr) + etr) / 2.0;
111 Real etrneg = (std::abs(etr) - etr) / 2.0;
112
113 RankTwoTensor pk2pos, pk2neg;
114
115 for (const auto i : make_range(Moose::dim))
116 {
117 pk2pos += _etens[i] * (lambda * etrpos + 2.0 * mu * (std::abs(eigval[i]) + eigval[i]) / 2.0);
118 pk2neg += _etens[i] * (lambda * etrneg + 2.0 * mu * (std::abs(eigval[i]) - eigval[i]) / 2.0);
119 }
120
121 _pk2_tmp = pk2pos * xfac - pk2neg;
122
123 if (_save_state)
124 {
125 std::vector<Real> epos(LIBMESH_DIM), eneg(LIBMESH_DIM);
126 for (const auto i : make_range(Moose::dim))
127 {
128 epos[i] = (std::abs(eigval[i]) + eigval[i]) / 2.0;
129 eneg[i] = (std::abs(eigval[i]) - eigval[i]) / 2.0;
130 }
131
132 // sum squares of epos and eneg
133 Real pval(0.0), nval(0.0);
134 for (const auto i : make_range(Moose::dim))
135 {
136 pval += epos[i] * epos[i];
137 nval += eneg[i] * eneg[i];
138 }
139
140 // Energy with positive principal strains
141 const Real G0_pos = lambda * etrpos * etrpos / 2.0 + mu * pval;
142 const Real G0_neg = lambda * etrneg * etrneg / 2.0 + mu * nval;
143
144 // Assign history variable and derivative
145 if (G0_pos > _hist_old[_qp])
146 _hist[_qp] = G0_pos;
147 else
148 _hist[_qp] = _hist_old[_qp];
149
150 Real hist_variable = _hist_old[_qp];
152 hist_variable = _hist[_qp];
153
154 // Elastic free energy density
155 _F[_qp] = hist_variable * xfac - G0_neg + _gc[_qp] / (2 * _l[_qp]) * c * c;
156
157 // derivative of elastic free energy density wrt c
158 _dFdc[_qp] = -hist_variable * 2.0 * (1.0 - c) * (1 - _kdamage) + _gc[_qp] / _l[_qp] * c;
159
160 // 2nd derivative of elastic free energy density wrt c
161 _d2Fdc2[_qp] = hist_variable * 2.0 * (1 - _kdamage) + _gc[_qp] / _l[_qp];
162
163 _dG0_dee = pk2pos;
164
165 _dpk2_dc = -pk2pos * 2.0 * (1.0 - c);
166 }
167}
const double mu
unsigned int dim
const MaterialProperty< RankFourTensor > & _elasticity_tensor
Elasticity tensor material property.
void symmetricEigenvaluesEigenvectors(std::vector< T > &eigvals, RankTwoTensorTempl< T > &eigvecs) const
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
IntRange< T > make_range(T beg, T end)

Referenced by computeNumStiffness(), and computePK2StressAndDerivative().

◆ computeDeeDce()

void FiniteStrainHyperElasticViscoPlastic::computeDeeDce ( )
protectedvirtualinherited

Computes derivative of elastic strain w.r.t elastic Right Cauchy Green Tensor.

Definition at line 487 of file FiniteStrainHyperElasticViscoPlastic.C.

488{
489 _dee_dce.zero();
490
491 for (const auto i : make_range(Moose::dim))
492 for (const auto j : make_range(Moose::dim))
493 _dee_dce(i, j, i, j) = 0.5;
494}
for(PetscInt i=0;i< nvars;++i)

Referenced by FiniteStrainHyperElasticViscoPlastic::initJacobianVariables().

◆ computeDpk2Dfpinv()

void FiniteStrainHyperElasticViscoPlastic::computeDpk2Dfpinv ( )
protectedvirtualinherited

Computes derivative of PK2 stress wrt inverse of plastic deformation gradient.

Definition at line 517 of file FiniteStrainHyperElasticViscoPlastic.C.

Referenced by FiniteStrainHyperElasticViscoPlastic::computeFlowRateJacobian().

◆ computeElasticPlasticDeformGrad()

void FiniteStrainHyperElasticViscoPlastic::computeElasticPlasticDeformGrad ( )
protectedvirtualinherited

Computes elastic and plastic deformation gradients.

Definition at line 503 of file FiniteStrainHyperElasticViscoPlastic.C.

Referenced by FiniteStrainHyperElasticViscoPlastic::solveFlowrate().

◆ computeElasticRightCauchyGreenTensor()

void FiniteStrainHyperElasticViscoPlastic::computeElasticRightCauchyGreenTensor ( )
protectedvirtualinherited

Computes elastic Right Cauchy Green Tensor.

Definition at line 497 of file FiniteStrainHyperElasticViscoPlastic.C.

498{
499 _ce[_qp] = _fe.transpose() * _fe;
500}
RankTwoTensorTempl< T > transpose() const

Referenced by FiniteStrainHyperElasticViscoPlastic::computeFlowRateResidual().

◆ computeElasticStrain()

void FiniteStrainHyperElasticViscoPlastic::computeElasticStrain ( )
protectedvirtualinherited

Computes elastic Lagrangian strain.

Definition at line 480 of file FiniteStrainHyperElasticViscoPlastic.C.

481{
483 _ee = 0.5 * (_ce[_qp] - iden);
484}

Referenced by FiniteStrainHyperElasticViscoPlastic::computePK2StressAndDerivative(), and computePK2StressAndDerivative().

◆ computeFlowDirection()

bool FiniteStrainHyperElasticViscoPlastic::computeFlowDirection ( )
protectedvirtualinherited

Calls user objects to compute flow directions.

Definition at line 437 of file FiniteStrainHyperElasticViscoPlastic.C.

438{
439 for (unsigned i = 0; i < _num_flow_rate_uos; ++i)
440 {
441 if (!_flow_rate_uo[i]->computeDirection(_qp, _flow_dirn[i]))
442 return false;
443 }
444 return true;
445}
std::vector< const HEVPFlowRateUOBase * > _flow_rate_uo
Flow rate user objects.

Referenced by FiniteStrainHyperElasticViscoPlastic::computeFlowRateResidual().

◆ computeFlowRateFunction()

bool FiniteStrainHyperElasticViscoPlastic::computeFlowRateFunction ( )
protectedvirtualinherited

Calls user objects to compute flow rates.

Definition at line 448 of file FiniteStrainHyperElasticViscoPlastic.C.

449{
450 Real val = 0;
451 for (unsigned i = 0; i < _num_flow_rate_uos; ++i)
452 {
453 if (_flow_rate_uo[i]->computeValue(_qp, val))
454 _resid(i) = -val;
455 else
456 return false;
457 }
458 return true;
459}

Referenced by FiniteStrainHyperElasticViscoPlastic::computeFlowRateResidual().

◆ computeFlowRateJacobian()

void FiniteStrainHyperElasticViscoPlastic::computeFlowRateJacobian ( )
protectedvirtualinherited

Computes flow rate Jacobian matrix.

Definition at line 399 of file FiniteStrainHyperElasticViscoPlastic.C.

400{
404
405 for (unsigned int i = 0; i < _num_flow_rate_uos; ++i)
406 for (unsigned int j = 0; j < _num_strength_uos; ++j)
407 _flow_rate_uo[i]->computeDerivative(_qp, _strength_uo_names[j], _dflowrate_dstrength(i, j));
408
409 for (unsigned int i = 0; i < _num_flow_rate_uos; ++i)
410 _flow_rate_uo[i]->computeTensorDerivative(_qp, _pk2_prop_name, _dflowrate_dpk2[i]);
411
413
414 for (unsigned int i = 0; i < _num_flow_rate_uos; ++i)
415 {
418 }
419
420 DenseMatrix<Real> dflowrate_dflowrate;
421 dflowrate_dflowrate = _dflowrate_dstrength;
422 dflowrate_dflowrate.right_multiply(_dstrength_dintvar);
423 dflowrate_dflowrate.right_multiply(_dintvar_dflowrate);
424
425 _jac.zero();
426 for (unsigned int i = 0; i < _num_flow_rate_uos; ++i)
427 for (unsigned int j = 0; j < _num_flow_rate_uos; ++j)
428 {
429 if (i == j)
430 _jac(i, j) = 1;
431 _jac(i, j) -= dflowrate_dflowrate(i, j);
432 _jac(i, j) -= _dflowrate_dpk2[i].doubleContraction(_dpk2_dflowrate[j]);
433 }
434}
unsigned int _num_strength_uos
Number of strength user objects.
virtual void computeIntVarDerivatives()
This function call user objects to compute dintvar/dintvar_rate and dintvar/dflowrate.
std::vector< UserObjectName > _strength_uo_names
Names of strength user objects.
virtual void computeDpk2Dfpinv()
Computes derivative of PK2 stress wrt inverse of plastic deformation gradient.
virtual void computeIntVarRateDerivatives()
This function call user objects to compute dintvar_rate/dintvar and dintvarrate/dflowrate.
void computeStrengthDerivatives()
This function call user objects to compute dstrength/dintvar.
virtual void right_multiply(const DenseMatrixBase< T > &M2) override final
virtual void zero() override final

Referenced by FiniteStrainHyperElasticViscoPlastic::solveFlowrate().

◆ computeFlowRateResidual()

bool FiniteStrainHyperElasticViscoPlastic::computeFlowRateResidual ( )
protectedvirtualinherited

Computes flow rate residual vector.

Definition at line 373 of file FiniteStrainHyperElasticViscoPlastic.C.

374{
375 if (!computeIntVarRates())
376 return false;
377
378 if (!computeIntVar())
379 return false;
380
381 if (!computeStrength())
382 return false;
383
386
388 return false;
389
391 return false;
392
394
395 return true;
396}
virtual void computeElasticRightCauchyGreenTensor()
Computes elastic Right Cauchy Green Tensor.
virtual bool computeIntVarRates()
This function call user objects to calculate rate of internal variables.
virtual bool computeFlowDirection()
Calls user objects to compute flow directions.
virtual bool computeStrength()
This function call user objects to compute strength.
virtual bool computeFlowRateFunction()
Calls user objects to compute flow rates.
virtual bool computeIntVar()
This function call user objects to integrate internal variables.
virtual void computePK2StressAndDerivative()
Computes PK2 stress and derivative w.r.t elastic Right Cauchy Green Tensor.

Referenced by FiniteStrainHyperElasticViscoPlastic::solveFlowrate().

◆ computeIntVar()

bool FiniteStrainHyperElasticViscoPlastic::computeIntVar ( )
protectedvirtualinherited

This function call user objects to integrate internal variables.

Definition at line 594 of file FiniteStrainHyperElasticViscoPlastic.C.

595{
596 Real val = 0;
597 for (unsigned int i = 0; i < _num_int_var_uos; ++i)
598 {
599 if (_int_var_uo[i]->computeValue(_qp, _dt_substep, val))
600 (*_int_var_stateful_prop[i])[_qp] = val;
601 else
602 return false;
603 }
604 return true;
605}
std::vector< MaterialProperty< Real > * > _int_var_stateful_prop
unsigned int _num_int_var_uos
Number of internal variable user objects.
std::vector< const HEVPInternalVarUOBase * > _int_var_uo
Internal variable user objects.

Referenced by FiniteStrainHyperElasticViscoPlastic::computeFlowRateResidual().

◆ computeIntVarDerivatives()

void FiniteStrainHyperElasticViscoPlastic::computeIntVarDerivatives ( )
protectedvirtualinherited

This function call user objects to compute dintvar/dintvar_rate and dintvar/dflowrate.

Definition at line 635 of file FiniteStrainHyperElasticViscoPlastic.C.

636{
637 Real val = 0;
638
639 for (unsigned int i = 0; i < _num_int_var_uos; ++i)
640 for (unsigned int j = 0; j < _num_int_var_rate_uos; ++j)
641 {
642 _int_var_uo[i]->computeDerivative(_qp, _dt_substep, _int_var_rate_uo_names[j], val);
643 _dintvar_dintvarrate(i, j) = val;
644 }
645
647
648 for (unsigned int i = 0; i < _num_int_var_uos; ++i)
649 for (unsigned int j = 0; j < _num_int_var_uos; ++j)
650 {
651 if (i == j)
652 _dintvar_dintvar(i, j) = 1;
653 for (unsigned int k = 0; k < _num_int_var_rate_uos; ++k)
655 }
656
657 for (unsigned int i = 0; i < _num_flow_rate_uos; ++i)
659
660 for (unsigned int i = 0; i < _num_flow_rate_uos; ++i)
661 {
662 _dintvar_dintvar_x.zero();
664 for (unsigned int j = 0; j < _num_int_var_uos; ++j)
666 }
667}
std::vector< DenseVector< Real > > _dintvarrate_dflowrate
Jacobian variables.
unsigned int _num_int_var_rate_uos
Number of internal variable rate user objects.
std::vector< DenseVector< Real > > _dintvar_dflowrate_tmp
std::vector< UserObjectName > _int_var_rate_uo_names
Names of internal variable rate user objects.
void vector_mult(DenseVector< T > &dest, const DenseVector< T > &arg) const
void lu_solve(const DenseVector< T > &b, DenseVector< T > &x)

Referenced by FiniteStrainHyperElasticViscoPlastic::computeFlowRateJacobian().

◆ computeIntVarRateDerivatives()

void FiniteStrainHyperElasticViscoPlastic::computeIntVarRateDerivatives ( )
protectedvirtualinherited

This function call user objects to compute dintvar_rate/dintvar and dintvarrate/dflowrate.

Definition at line 622 of file FiniteStrainHyperElasticViscoPlastic.C.

623{
624 Real val = 0;
625
626 for (unsigned int i = 0; i < _num_int_var_rate_uos; ++i)
627 for (unsigned int j = 0; j < _num_flow_rate_uos; ++j)
628 {
629 _int_var_rate_uo[i]->computeDerivative(_qp, _flow_rate_uo_names[j], val);
630 _dintvarrate_dflowrate[j](i) = val;
631 }
632}
std::vector< UserObjectName > _flow_rate_uo_names
Names of flow rate user objects.
std::vector< const HEVPInternalVarRateUOBase * > _int_var_rate_uo
Internal variable rate user objects.

Referenced by FiniteStrainHyperElasticViscoPlastic::computeFlowRateJacobian().

◆ computeIntVarRates()

bool FiniteStrainHyperElasticViscoPlastic::computeIntVarRates ( )
protectedvirtualinherited

This function call user objects to calculate rate of internal variables.

Definition at line 580 of file FiniteStrainHyperElasticViscoPlastic.C.

581{
582 Real val = 0;
583 for (unsigned int i = 0; i < _num_int_var_rate_uos; ++i)
584 {
585 if (_int_var_rate_uo[i]->computeValue(_qp, val))
586 (*_int_var_rate_prop[i])[_qp] = val;
587 else
588 return false;
589 }
590 return true;
591}
std::vector< MaterialProperty< Real > * > _int_var_rate_prop

Referenced by FiniteStrainHyperElasticViscoPlastic::computeFlowRateResidual().

◆ computeNorm()

Real FiniteStrainHyperElasticViscoPlastic::computeNorm ( const std::vector< Real > &  var)
protectedvirtualinherited

Computes norm of residual vector.

Definition at line 528 of file FiniteStrainHyperElasticViscoPlastic.C.

529{
530 Real val = 0.0;
531 for (unsigned int i = 0; i < var.size(); ++i)
532 val += Utility::pow<2>(var[i]);
533 return std::sqrt(val);
534}

Referenced by FiniteStrainHyperElasticViscoPlastic::solveFlowrate().

◆ computeNumStiffness()

void HyperElasticPhaseFieldIsoDamage::computeNumStiffness ( )
protectedvirtual

This function computes numerical stiffness.

Definition at line 170 of file HyperElasticPhaseFieldIsoDamage.C.

171{
172 RankTwoTensor ee_tmp;
173
174 for (const auto i : make_range(Moose::dim))
175 for (unsigned int j = i; j < LIBMESH_DIM; ++j)
176 {
177 Real ee_pert = _zero_pert;
178 if (std::abs(_ee(i, j)) > _zero_tol)
179 ee_pert = _pert_val * std::abs(_ee(i, j));
180
181 ee_tmp = _ee;
182 _ee(i, j) += ee_pert;
183
185
186 for (const auto k : make_range(Moose::dim))
187 for (const auto l : make_range(Moose::dim))
188 {
189 _dpk2_dee(k, l, i, j) = (_pk2_tmp(k, l) - _pk2[_qp](k, l)) / ee_pert;
190 _dpk2_dee(k, l, j, i) = (_pk2_tmp(k, l) - _pk2[_qp](k, l)) / ee_pert;
191 }
192 _ee = ee_tmp;
193 }
194}
void ErrorVector unsigned int
virtual void computeDamageStress()
This function computes PK2 stress modified to account for damage Computes numerical stiffness if flag...

Referenced by computePK2StressAndDerivative().

◆ computePK2StressAndDerivative()

void HyperElasticPhaseFieldIsoDamage::computePK2StressAndDerivative ( )
protectedvirtual

This function computes PK2 stress.

Reimplemented from FiniteStrainHyperElasticViscoPlastic.

Definition at line 63 of file HyperElasticPhaseFieldIsoDamage.C.

64{
66
67 _save_state = true;
69 _pk2[_qp] = _pk2_tmp;
70
71 _save_state = false;
74
77
78 _dce_dfe.zero();
79 for (const auto i : make_range(Moose::dim))
80 for (const auto j : make_range(Moose::dim))
81 for (const auto k : make_range(Moose::dim))
82 {
83 _dce_dfe(i, j, k, i) = _dce_dfe(i, j, k, i) + _fe(k, j);
84 _dce_dfe(i, j, k, j) = _dce_dfe(i, j, k, j) + _fe(k, i);
85 }
86
88}
virtual void computeElasticStrain()
Computes elastic Lagrangian strain.
virtual void computeNumStiffness()
This function computes numerical stiffness.

◆ computeQpJacobian()

void HyperElasticPhaseFieldIsoDamage::computeQpJacobian ( )
protectedvirtual

This function computes tensors used to construct diagonal and off-diagonal Jacobian.

Reimplemented from FiniteStrainHyperElasticViscoPlastic.

Definition at line 197 of file HyperElasticPhaseFieldIsoDamage.C.

198{
200
204
205 // 2nd derivative wrt c and strain = 0.0 if we used the previous step's history varible
207 _d2Fdcdstrain[_qp] =
208 -_df_dstretch_inc.innerProductTranspose(dG0_df) * 2.0 * (1.0 - _c[_qp]) * (1 - _kdamage);
209
210 usingTensorIndices(i_, j_, k_, l_);
211 _dstress_dc[_qp] = _fe.times<i_, k_, j_, l_>(_fe) * _dpk2_dc;
212}
virtual void computeQpJacobian()
This function computes the Jacobian.
RankTwoTensorTempl< T > innerProductTranspose(const RankTwoTensorTempl< T > &) const
RankFourTensorTempl< T > times(const RankTwoTensorTempl< T > &b) const

◆ computeQpProperties()

void ComputeGeneralStressBase::computeQpProperties ( )
overrideprotectedvirtualinherited

Definition at line 44 of file ComputeGeneralStressBase.C.

45{
47
48 // Add in extra stress
49 _stress[_qp] += _extra_stress[_qp];
50}
const MaterialProperty< RankTwoTensor > & _extra_stress
Extra stress tensor.
virtual void computeQpStress()=0
Compute the stress and store it in the _stress material property for the current quadrature point.
MaterialProperty< RankTwoTensor > & _stress
Stress material property.

◆ computeQpStress()

void FiniteStrainHyperElasticViscoPlastic::computeQpStress ( )
protectedvirtualinherited

This function computes the Cauchy stress.

Implements ComputeGeneralStressBase.

Definition at line 208 of file FiniteStrainHyperElasticViscoPlastic.C.

209{
210 bool converge;
212 unsigned int num_substep = 1;
213 unsigned int substep_iter = 1;
214
215 saveOldState();
216
217 do
218 {
219 preSolveQp();
220
221 converge = true;
222 _dt_substep = _dt / num_substep;
223
224 for (unsigned int istep = 0; istep < num_substep; ++istep)
225 {
226 _dfgrd_tmp = (istep + 1.0) * delta_dfgrd / num_substep + _deformation_gradient_old[_qp];
227 if (!solveQp())
228 {
229 converge = false;
230 substep_iter++;
231 num_substep *= 2;
232 break;
233 }
234 }
235
236 if (substep_iter > _max_substep_iter)
237 mooseError("Constitutive failure with substepping at quadrature point ",
238 _q_point[_qp](0),
239 " ",
240 _q_point[_qp](1),
241 " ",
242 _q_point[_qp](2));
243 } while (!converge);
244
245 postSolveQp();
246}
void mooseError(Args &&... args)
const MaterialProperty< RankTwoTensor > & _deformation_gradient_old
virtual void postSolveQp()
Update state for output (Outside substepping)
virtual void saveOldState()
This function saves the old stateful properties that is modified during sub stepping.
const MaterialProperty< RankTwoTensor > & _deformation_gradient
unsigned int _max_substep_iter
Maximum number of substep iterations.

◆ computeStrength()

bool FiniteStrainHyperElasticViscoPlastic::computeStrength ( )
protectedvirtualinherited

This function call user objects to compute strength.

Definition at line 608 of file FiniteStrainHyperElasticViscoPlastic.C.

609{
610 Real val = 0;
611 for (unsigned int i = 0; i < _num_strength_uos; ++i)
612 {
613 if (_strength_uo[i]->computeValue(_qp, val))
614 (*_strength_prop[i])[_qp] = val;
615 else
616 return false;
617 }
618 return true;
619}
std::vector< MaterialProperty< Real > * > _strength_prop
std::vector< const HEVPStrengthUOBase * > _strength_uo
Strength user objects.

Referenced by FiniteStrainHyperElasticViscoPlastic::computeFlowRateResidual().

◆ computeStrengthDerivatives()

void FiniteStrainHyperElasticViscoPlastic::computeStrengthDerivatives ( )
protectedinherited

This function call user objects to compute dstrength/dintvar.

Definition at line 670 of file FiniteStrainHyperElasticViscoPlastic.C.

671{
672 Real val = 0;
673
674 for (unsigned int i = 0; i < _num_strength_uos; ++i)
675 for (unsigned int j = 0; j < _num_int_var_uos; ++j)
676 {
677 _strength_uo[i]->computeDerivative(_qp, _int_var_uo_names[j], val);
678 _dstrength_dintvar(i, j) = val;
679 }
680}
std::vector< UserObjectName > _int_var_uo_names
Names of internal variable user objects.

Referenced by FiniteStrainHyperElasticViscoPlastic::computeFlowRateJacobian().

◆ initJacobianVariables()

void FiniteStrainHyperElasticViscoPlastic::initJacobianVariables ( )
protectedvirtualinherited

This function initialize variables required for Jacobian calculation.

Definition at line 155 of file FiniteStrainHyperElasticViscoPlastic.C.

Referenced by FiniteStrainHyperElasticViscoPlastic::FiniteStrainHyperElasticViscoPlastic().

◆ initNumUserObjects()

void FiniteStrainHyperElasticViscoPlastic::initNumUserObjects ( const std::vector< UserObjectName > &  uo_names,
unsigned int uo_num 
)
protectedinherited

This function calculates the number of each user object type.

Definition at line 110 of file FiniteStrainHyperElasticViscoPlastic.C.

112{
113 uo_num = uo_names.size();
114}

Referenced by FiniteStrainHyperElasticViscoPlastic::initUOVariables().

◆ initProp()

template<typename T >
void FiniteStrainHyperElasticViscoPlastic::initProp ( const std::vector< UserObjectName > &  uo_names,
unsigned int  uo_num,
std::vector< MaterialProperty< T > * > &  uo_prop 
)
protectedinherited

This function initializes properties for each user object.

Definition at line 118 of file FiniteStrainHyperElasticViscoPlastic.C.

121{
122 uo_prop.resize(uo_num);
123 for (unsigned int i = 0; i < uo_num; ++i)
124 uo_prop[i] = &declareProperty<T>(uo_names[i]);
125}

Referenced by FiniteStrainHyperElasticViscoPlastic::initUOVariables().

◆ initPropOld()

template<typename T >
void FiniteStrainHyperElasticViscoPlastic::initPropOld ( const std::vector< UserObjectName > &  uo_names,
unsigned int  uo_num,
std::vector< const MaterialProperty< T > * > &  uo_prop_old 
)
protectedinherited

This function initializes old for stateful properties associated with user object Only user objects that update internal variables have an associated old property.

Definition at line 129 of file FiniteStrainHyperElasticViscoPlastic.C.

133{
134 uo_prop_old.resize(uo_num);
135 for (unsigned int i = 0; i < uo_num; ++i)
136 uo_prop_old[i] = &getMaterialPropertyOld<T>(uo_names[i]);
137}

Referenced by FiniteStrainHyperElasticViscoPlastic::initUOVariables().

◆ initQpStatefulProperties()

void FiniteStrainHyperElasticViscoPlastic::initQpStatefulProperties ( )
protectedvirtualinherited

Initializes state.

Reimplemented from ComputeGeneralStressBase.

Definition at line 183 of file FiniteStrainHyperElasticViscoPlastic.C.

184{
185 _stress[_qp].zero();
186 _ce[_qp].zero();
187 _pk2[_qp].zero();
188 _fp[_qp].setToIdentity();
189
190 for (unsigned int i = 0; i < _num_flow_rate_uos; ++i)
191 (*_flow_rate_prop[i])[_qp] = 0.0;
192
193 for (unsigned int i = 0; i < _num_strength_uos; ++i)
194 (*_strength_prop[i])[_qp] = 0.0;
195
196 for (unsigned int i = 0; i < _num_int_var_uos; ++i)
197 {
198 (*_int_var_stateful_prop[i])[_qp] = 0.0;
199 // TODO: remove this nasty const_cast if you can figure out how
200 const_cast<MaterialProperty<Real> &>(*_int_var_stateful_prop_old[i])[_qp] = 0.0;
201 }
202
203 for (unsigned int i = 0; i < _num_int_var_rate_uos; ++i)
204 (*_int_var_rate_prop[i])[_qp] = 0.0;
205}
std::vector< MaterialProperty< Real > * > _flow_rate_prop
std::vector< const MaterialProperty< Real > * > _int_var_stateful_prop_old

◆ initUOVariables()

void FiniteStrainHyperElasticViscoPlastic::initUOVariables ( )
protectedvirtualinherited

This function initializes the properties, stateful properties and user objects The properties and stateful properties associated with user objects are only initialized here The properties have the same name as the user object name.

Definition at line 87 of file FiniteStrainHyperElasticViscoPlastic.C.

88{
93
98
100
105
106 _int_var_old.resize(_num_int_var_uos, 0.0);
107}
void initNumUserObjects(const std::vector< UserObjectName > &, unsigned int &)
This function calculates the number of each user object type.
void initUserObjects(const std::vector< UserObjectName > &, unsigned int, std::vector< const T * > &)
This function initializes user objects.
void initProp(const std::vector< UserObjectName > &, unsigned int, std::vector< MaterialProperty< T > * > &)
This function initializes properties for each user object.
void initPropOld(const std::vector< UserObjectName > &, unsigned int, std::vector< const MaterialProperty< T > * > &)
This function initializes old for stateful properties associated with user object Only user objects t...

Referenced by FiniteStrainHyperElasticViscoPlastic::FiniteStrainHyperElasticViscoPlastic().

◆ initUserObjects()

template<typename T >
void FiniteStrainHyperElasticViscoPlastic::initUserObjects ( const std::vector< UserObjectName > &  uo_names,
unsigned int  uo_num,
std::vector< const T * > &  uo 
)
protectedinherited

This function initializes user objects.

Definition at line 141 of file FiniteStrainHyperElasticViscoPlastic.C.

144{
145 uo.resize(uo_num);
146
147 if (uo_num == 0)
148 mooseError("Specify atleast one user object of type", typeid(T).name());
149
150 for (unsigned int i = 0; i < uo_num; ++i)
151 uo[i] = &getUserObjectByName<T>(uo_names[i]);
152}
const double T
const std::string name
Definition Setup.h:21

Referenced by FiniteStrainHyperElasticViscoPlastic::initUOVariables().

◆ postSolveFlowrate()

void FiniteStrainHyperElasticViscoPlastic::postSolveFlowrate ( )
protectedvirtualinherited

Update state for output (Inside substepping)

Definition at line 362 of file FiniteStrainHyperElasticViscoPlastic.C.

363{
365
366 // TODO: remove this nasty const_cast if you can figure out how
367 for (unsigned int i = 0; i < _num_int_var_uos; ++i)
368 const_cast<MaterialProperty<Real> &>(*_int_var_stateful_prop_old[i])[_qp] =
369 (*_int_var_stateful_prop[i])[_qp];
370}

Referenced by FiniteStrainHyperElasticViscoPlastic::solveQp().

◆ postSolveQp()

void FiniteStrainHyperElasticViscoPlastic::postSolveQp ( )
protectedvirtualinherited

Update state for output (Outside substepping)

Definition at line 280 of file FiniteStrainHyperElasticViscoPlastic.C.

281{
283
284 _stress[_qp] = _fe * _pk2[_qp] * _fe.transpose() / _fe.det();
285 _fp[_qp] = _fp_tmp_inv.inverse();
286
288}
virtual void recoverOldState()
This function restores the the old stateful properties after a successful solve.
RankTwoTensorTempl< T > inverse() const

Referenced by FiniteStrainHyperElasticViscoPlastic::computeQpStress().

◆ preSolveFlowrate()

void FiniteStrainHyperElasticViscoPlastic::preSolveFlowrate ( )
protectedvirtualinherited

Sets state for solve (Inside substepping)

Definition at line 299 of file FiniteStrainHyperElasticViscoPlastic.C.

300{
301 for (unsigned int i = 0; i < _num_flow_rate_uos; ++i)
302 {
303 _flow_rate(i) = 0.0;
304 (*_flow_rate_prop[i])[_qp] = 0.0;
305 }
306
307 for (unsigned int i = 0; i < _num_int_var_uos; ++i)
309
312}

Referenced by FiniteStrainHyperElasticViscoPlastic::solveQp().

◆ preSolveQp()

void FiniteStrainHyperElasticViscoPlastic::preSolveQp ( )
protectedvirtualinherited

Sets state for solve.

Definition at line 256 of file FiniteStrainHyperElasticViscoPlastic.C.

257{
259
260 // TODO: remove this nasty const_cast if you can figure out how
261 for (unsigned int i = 0; i < _num_int_var_uos; ++i)
262 (*_int_var_stateful_prop[i])[_qp] =
264
266}
const MaterialProperty< RankTwoTensor > & _fp_old

Referenced by FiniteStrainHyperElasticViscoPlastic::computeQpStress().

◆ recoverOldState()

void FiniteStrainHyperElasticViscoPlastic::recoverOldState ( )
protectedvirtualinherited

This function restores the the old stateful properties after a successful solve.

Definition at line 291 of file FiniteStrainHyperElasticViscoPlastic.C.

292{
293 // TODO: remove this nasty const_cast if you can figure out how
294 for (unsigned int i = 0; i < _num_int_var_uos; ++i)
296}

Referenced by FiniteStrainHyperElasticViscoPlastic::postSolveQp().

◆ saveOldState()

void FiniteStrainHyperElasticViscoPlastic::saveOldState ( )
protectedvirtualinherited

This function saves the old stateful properties that is modified during sub stepping.

Definition at line 249 of file FiniteStrainHyperElasticViscoPlastic.C.

250{
251 for (unsigned int i = 0; i < _num_int_var_uos; ++i)
253}

Referenced by FiniteStrainHyperElasticViscoPlastic::computeQpStress().

◆ solveFlowrate()

bool FiniteStrainHyperElasticViscoPlastic::solveFlowrate ( )
protectedvirtualinherited

Solve for flow rate and state.

Definition at line 315 of file FiniteStrainHyperElasticViscoPlastic.C.

316{
317 Real resid0, rnorm;
318 unsigned int iter = 0;
319
320#ifdef DEBUG
321 std::vector<Real> rnormst(_maxiters + 1), flowratest(_maxiters + 1);
322#endif
323
325 return false;
326
327 rnorm = computeNorm(_resid.get_values());
328 resid0 = rnorm;
329
330#ifdef DEBUG
331 rnormst[iter] = rnorm;
332 flowratest[iter] = computeNorm(_flow_rate.get_values());
333#endif
334
335 while (rnorm > _resid_abs_tol && rnorm > _resid_rel_tol * resid0 && iter < _maxiters)
336 {
338
340
342
344 return false;
345
346 rnorm = computeNorm(_resid.get_values());
347 iter++;
348
349#ifdef DEBUG
350 rnormst[iter] = rnorm;
351 flowratest[iter] = computeNorm(_flow_rate.get_values());
352#endif
353 }
354
355 if (iter == _maxiters && rnorm > _resid_abs_tol && rnorm > _resid_rel_tol * resid0)
356 return false;
357
358 return true;
359}
virtual void computeElasticPlasticDeformGrad()
Computes elastic and plastic deformation gradients.
virtual bool computeFlowRateResidual()
Computes flow rate residual vector.
virtual void computeFlowRateJacobian()
Computes flow rate Jacobian matrix.
Real _resid_rel_tol
Relative tolerance for residual convergence check.
unsigned int _maxiters
Maximum number of iterations.
virtual Real computeNorm(const std::vector< Real > &)
Computes norm of residual vector.
Real _resid_abs_tol
Absolute tolerance for residual convergence check.

Referenced by FiniteStrainHyperElasticViscoPlastic::solveQp().

◆ solveQp()

bool FiniteStrainHyperElasticViscoPlastic::solveQp ( )
protectedvirtualinherited

Solve state.

Definition at line 269 of file FiniteStrainHyperElasticViscoPlastic.C.

270{
272 if (!solveFlowrate())
273 return false;
275
276 return true;
277}
virtual void preSolveFlowrate()
Sets state for solve (Inside substepping)
virtual void postSolveFlowrate()
Update state for output (Inside substepping)
virtual bool solveFlowrate()
Solve for flow rate and state.

Referenced by FiniteStrainHyperElasticViscoPlastic::computeQpStress().

◆ updateFlowRate()

void FiniteStrainHyperElasticViscoPlastic::updateFlowRate ( )
protectedvirtualinherited

Update flow rate.

Definition at line 537 of file FiniteStrainHyperElasticViscoPlastic.C.

538{
541
542 for (unsigned int i = 0; i < _num_flow_rate_uos; ++i)
543 (*_flow_rate_prop[i])[_qp] = _flow_rate(i);
544}

Referenced by FiniteStrainHyperElasticViscoPlastic::solveFlowrate().

◆ validParams()

InputParameters HyperElasticPhaseFieldIsoDamage::validParams ( )
static

Definition at line 16 of file HyperElasticPhaseFieldIsoDamage.C.

17{
19 params.addParam<bool>("numerical_stiffness", false, "Flag for numerical stiffness");
20 params.addParam<Real>("damage_stiffness", 1e-8, "Avoid zero after complete damage");
21 params.addParam<Real>("zero_tol", 1e-12, "Tolerance for numerical zero");
22 params.addParam<Real>(
23 "zero_perturb", 1e-8, "Perturbation value when strain value less than numerical zero");
24 params.addParam<Real>("perturbation_scale_factor", 1e-5, "Perturbation scale factor");
25 params.addRequiredCoupledVar("c", "Damage variable");
26 params.addParam<bool>(
27 "use_current_history_variable", false, "Use the current value of the history variable.");
28 params.addParam<MaterialPropertyName>(
29 "F_name", "E_el", "Name of material property storing the elastic energy");
31 "Computes damaged stress and energy in the intermediate configuration assuming isotropy");
32
33 return params;
34}
void addRequiredCoupledVar(const std::string &name, const std::string &doc_string)
void addParam(const std::string &name, const std::initializer_list< typename T::value_type > &value, const std::string &doc_string)
void addClassDescription(const std::string &doc_string)

Member Data Documentation

◆ _base_name

const std::string ComputeGeneralStressBase::_base_name
protectedinherited

Base name prepended to all material property names to allow for multi-material systems.

Definition at line 43 of file ComputeGeneralStressBase.h.

Referenced by ComputeCosseratLinearElasticStress::initialSetup(), and ComputeLinearElasticStress::initialSetup().

◆ _c

const VariableValue& HyperElasticPhaseFieldIsoDamage::_c
protected

Compupled damage variable.

Definition at line 58 of file HyperElasticPhaseFieldIsoDamage.h.

Referenced by computeDamageStress(), and computeQpJacobian().

◆ _ce

MaterialProperty<RankTwoTensor>& FiniteStrainHyperElasticViscoPlastic::_ce
protectedinherited

◆ _d2Fdc2

MaterialProperty<Real>& HyperElasticPhaseFieldIsoDamage::_d2Fdc2
protected

Definition at line 71 of file HyperElasticPhaseFieldIsoDamage.h.

Referenced by computeDamageStress().

◆ _d2Fdcdstrain

MaterialProperty<RankTwoTensor>& HyperElasticPhaseFieldIsoDamage::_d2Fdcdstrain
protected

Definition at line 72 of file HyperElasticPhaseFieldIsoDamage.h.

Referenced by computeQpJacobian().

◆ _dce_dfe

RankFourTensor FiniteStrainHyperElasticViscoPlastic::_dce_dfe
protectedinherited

◆ _dee_dce

RankFourTensor FiniteStrainHyperElasticViscoPlastic::_dee_dce
protectedinherited

◆ _deformation_gradient

const MaterialProperty<RankTwoTensor>& FiniteStrainHyperElasticViscoPlastic::_deformation_gradient
protectedinherited

◆ _deformation_gradient_old

const MaterialProperty<RankTwoTensor>& FiniteStrainHyperElasticViscoPlastic::_deformation_gradient_old
protectedinherited

◆ _df_dstretch_inc

RankFourTensor FiniteStrainHyperElasticViscoPlastic::_df_dstretch_inc
protectedinherited

◆ _dFdc

MaterialProperty<Real>& HyperElasticPhaseFieldIsoDamage::_dFdc
protected

Definition at line 70 of file HyperElasticPhaseFieldIsoDamage.h.

Referenced by computeDamageStress().

◆ _dfe_df

RankFourTensor FiniteStrainHyperElasticViscoPlastic::_dfe_df
protectedinherited

◆ _dfe_dfpinv

RankFourTensor FiniteStrainHyperElasticViscoPlastic::_dfe_dfpinv
protectedinherited

◆ _dfgrd_tmp

RankTwoTensor FiniteStrainHyperElasticViscoPlastic::_dfgrd_tmp
protectedinherited

◆ _dflow_rate

DenseVector<Real> FiniteStrainHyperElasticViscoPlastic::_dflow_rate
protectedinherited

◆ _dflowrate_dpk2

std::vector<RankTwoTensor> FiniteStrainHyperElasticViscoPlastic::_dflowrate_dpk2
protectedinherited

◆ _dflowrate_dstrength

DenseMatrix<Real> FiniteStrainHyperElasticViscoPlastic::_dflowrate_dstrength
protectedinherited

◆ _dfpinv_dflowrate

std::vector<RankTwoTensor> FiniteStrainHyperElasticViscoPlastic::_dfpinv_dflowrate
protectedinherited

◆ _dG0_dee

RankTwoTensor HyperElasticPhaseFieldIsoDamage::_dG0_dee
protected

Definition at line 64 of file HyperElasticPhaseFieldIsoDamage.h.

Referenced by computeDamageStress(), and computeQpJacobian().

◆ _dintvar_dflowrate

DenseMatrix<Real> FiniteStrainHyperElasticViscoPlastic::_dintvar_dflowrate
protectedinherited

◆ _dintvar_dflowrate_tmp

std::vector<DenseVector<Real> > FiniteStrainHyperElasticViscoPlastic::_dintvar_dflowrate_tmp
protectedinherited

◆ _dintvar_dintvar

DenseMatrix<Real> FiniteStrainHyperElasticViscoPlastic::_dintvar_dintvar
protectedinherited

◆ _dintvar_dintvar_x

DenseVector<Real> FiniteStrainHyperElasticViscoPlastic::_dintvar_dintvar_x
protectedinherited

◆ _dintvar_dintvarrate

DenseMatrix<Real> FiniteStrainHyperElasticViscoPlastic::_dintvar_dintvarrate
protectedinherited

◆ _dintvarrate_dflowrate

std::vector<DenseVector<Real> > FiniteStrainHyperElasticViscoPlastic::_dintvarrate_dflowrate
protectedinherited

◆ _dintvarrate_dintvar

DenseMatrix<Real> FiniteStrainHyperElasticViscoPlastic::_dintvarrate_dintvar
protectedinherited

◆ _dpk2_dc

RankTwoTensor HyperElasticPhaseFieldIsoDamage::_dpk2_dc
protected

Definition at line 64 of file HyperElasticPhaseFieldIsoDamage.h.

Referenced by computeDamageStress(), and computeQpJacobian().

◆ _dpk2_dce

RankFourTensor FiniteStrainHyperElasticViscoPlastic::_dpk2_dce
protectedinherited

◆ _dpk2_dee

RankFourTensor HyperElasticPhaseFieldIsoDamage::_dpk2_dee
protected

◆ _dpk2_dfe

RankFourTensor FiniteStrainHyperElasticViscoPlastic::_dpk2_dfe
protectedinherited

◆ _dpk2_dflowrate

std::vector<RankTwoTensor> FiniteStrainHyperElasticViscoPlastic::_dpk2_dflowrate
protectedinherited

◆ _dpk2_dfpinv

RankFourTensor FiniteStrainHyperElasticViscoPlastic::_dpk2_dfpinv
protectedinherited

◆ _dstrength_dintvar

DenseMatrix<Real> FiniteStrainHyperElasticViscoPlastic::_dstrength_dintvar
protectedinherited

◆ _dstress_dc

MaterialProperty<RankTwoTensor>& HyperElasticPhaseFieldIsoDamage::_dstress_dc
protected

Definition at line 62 of file HyperElasticPhaseFieldIsoDamage.h.

Referenced by computeQpJacobian().

◆ _dt_substep

Real FiniteStrainHyperElasticViscoPlastic::_dt_substep
protectedinherited

◆ _ee

RankTwoTensor FiniteStrainHyperElasticViscoPlastic::_ee
protectedinherited

◆ _elastic_strain

MaterialProperty<RankTwoTensor>& ComputeGeneralStressBase::_elastic_strain
protectedinherited

◆ _elasticity_tensor

const MaterialProperty<RankFourTensor>& FiniteStrainHyperElasticViscoPlastic::_elasticity_tensor
protectedinherited

◆ _elasticity_tensor_name

const std::string FiniteStrainHyperElasticViscoPlastic::_elasticity_tensor_name
protectedinherited

Name of the elasticity tensor material property.

Definition at line 197 of file FiniteStrainHyperElasticViscoPlastic.h.

◆ _etens

std::vector<RankTwoTensor> HyperElasticPhaseFieldIsoDamage::_etens
protected

Definition at line 66 of file HyperElasticPhaseFieldIsoDamage.h.

Referenced by computeDamageStress().

◆ _extra_stress

const MaterialProperty<RankTwoTensor>& ComputeGeneralStressBase::_extra_stress
protectedinherited

Extra stress tensor.

Definition at line 53 of file ComputeGeneralStressBase.h.

Referenced by ComputeGeneralStressBase::computeQpProperties().

◆ _F

MaterialProperty<Real>& HyperElasticPhaseFieldIsoDamage::_F
protected

Elastic energy and derivatives, declared in this material.

Definition at line 69 of file HyperElasticPhaseFieldIsoDamage.h.

Referenced by computeDamageStress().

◆ _fe

RankTwoTensor FiniteStrainHyperElasticViscoPlastic::_fe
protectedinherited

◆ _fe_pk2

RankTwoTensor FiniteStrainHyperElasticViscoPlastic::_fe_pk2
protectedinherited

◆ _flow_dirn

std::vector<RankTwoTensor> FiniteStrainHyperElasticViscoPlastic::_flow_dirn
protectedinherited

◆ _flow_rate

DenseVector<Real> FiniteStrainHyperElasticViscoPlastic::_flow_rate
protectedinherited

◆ _flow_rate_prop

std::vector<MaterialProperty<Real> *> FiniteStrainHyperElasticViscoPlastic::_flow_rate_prop
protectedinherited

◆ _flow_rate_uo

std::vector<const HEVPFlowRateUOBase *> FiniteStrainHyperElasticViscoPlastic::_flow_rate_uo
protectedinherited

◆ _flow_rate_uo_names

std::vector<UserObjectName> FiniteStrainHyperElasticViscoPlastic::_flow_rate_uo_names
protectedinherited

◆ _fp

MaterialProperty<RankTwoTensor>& FiniteStrainHyperElasticViscoPlastic::_fp
protectedinherited

◆ _fp_old

const MaterialProperty<RankTwoTensor>& FiniteStrainHyperElasticViscoPlastic::_fp_old
protectedinherited

◆ _fp_tmp_inv

RankTwoTensor FiniteStrainHyperElasticViscoPlastic::_fp_tmp_inv
protectedinherited

◆ _fp_tmp_old_inv

RankTwoTensor FiniteStrainHyperElasticViscoPlastic::_fp_tmp_old_inv
protectedinherited

◆ _gc

const MaterialProperty<Real>& HyperElasticPhaseFieldIsoDamage::_gc
protected

Material property defining gc parameter, declared elsewhere.

Definition at line 50 of file HyperElasticPhaseFieldIsoDamage.h.

Referenced by computeDamageStress().

◆ _hist

MaterialProperty<Real>& HyperElasticPhaseFieldIsoDamage::_hist
protected

History variable that prevents crack healing, declared in this material.

Definition at line 75 of file HyperElasticPhaseFieldIsoDamage.h.

Referenced by computeDamageStress().

◆ _hist_old

const MaterialProperty<Real>& HyperElasticPhaseFieldIsoDamage::_hist_old
protected

Old value of history variable.

Definition at line 78 of file HyperElasticPhaseFieldIsoDamage.h.

Referenced by computeDamageStress().

◆ _initial_stress_fcn

std::vector<const Function *> ComputeGeneralStressBase::_initial_stress_fcn
protectedinherited

initial stress components

Definition at line 56 of file ComputeGeneralStressBase.h.

◆ _int_var_old

std::vector<Real> FiniteStrainHyperElasticViscoPlastic::_int_var_old
protectedinherited

◆ _int_var_rate_prop

std::vector<MaterialProperty<Real> *> FiniteStrainHyperElasticViscoPlastic::_int_var_rate_prop
protectedinherited

◆ _int_var_rate_uo

std::vector<const HEVPInternalVarRateUOBase *> FiniteStrainHyperElasticViscoPlastic::_int_var_rate_uo
protectedinherited

◆ _int_var_rate_uo_names

std::vector<UserObjectName> FiniteStrainHyperElasticViscoPlastic::_int_var_rate_uo_names
protectedinherited

◆ _int_var_stateful_prop

std::vector<MaterialProperty<Real> *> FiniteStrainHyperElasticViscoPlastic::_int_var_stateful_prop
protectedinherited

◆ _int_var_stateful_prop_old

std::vector<const MaterialProperty<Real> *> FiniteStrainHyperElasticViscoPlastic::_int_var_stateful_prop_old
protectedinherited

◆ _int_var_uo

std::vector<const HEVPInternalVarUOBase *> FiniteStrainHyperElasticViscoPlastic::_int_var_uo
protectedinherited

◆ _int_var_uo_names

std::vector<UserObjectName> FiniteStrainHyperElasticViscoPlastic::_int_var_uo_names
protectedinherited

◆ _jac

DenseMatrix<Real> FiniteStrainHyperElasticViscoPlastic::_jac
protectedinherited

◆ _Jacobian_mult

MaterialProperty<RankFourTensor>& ComputeGeneralStressBase::_Jacobian_mult
protectedinherited

derivative of stress w.r.t. strain (_dstress_dstrain)

Definition at line 59 of file ComputeGeneralStressBase.h.

Referenced by ComputeStrainIncrementBasedStress::computeQpJacobian(), FiniteStrainHyperElasticViscoPlastic::computeQpJacobian(), ComputeMultipleInelasticStressBase::computeQpJacobianMult(), ComputeMultipleInelasticCosseratStress::computeQpJacobianMult(), ComputeMultiPlasticityStress::computeQpStress(), FiniteStrainPlasticMaterial::computeQpStress(), ComputeCosseratLinearElasticStress::computeQpStress(), ComputeFiniteStrainElasticStress::computeQpStress(), ComputeLinearElasticPFFractureStress::computeQpStress(), ComputeLinearElasticStress::computeQpStress(), ComputeLinearViscoelasticStress::computeQpStress(), ComputeMultipleInelasticStressBase::computeQpStress(), ComputeSmearedCrackingStress::computeQpStress(), ComputeMultipleCrystalPlasticityStress::computeQpStress(), ComputeMultipleInelasticStressBase::computeQpStressIntermediateConfiguration(), ComputeLinearElasticPFFractureStress::computeStrainSpectral(), ComputeLinearElasticPFFractureStress::computeStrainVolDev(), ComputeLinearElasticPFFractureStress::computeStressSpectral(), FiniteStrainUObasedCP::elasticTangentModuli(), FiniteStrainUObasedCP::elastoPlasticTangentModuli(), ComputeMultipleInelasticStressBase::finiteStrainRotation(), ComputeMultiPlasticityStress::postReturnMap(), FiniteStrainCrystalPlasticity::postSolveQp(), FiniteStrainCrystalPlasticity::preSolveQp(), and ComputeMultipleInelasticStressBase::updateQpStateSingleModel().

◆ _kdamage

Real HyperElasticPhaseFieldIsoDamage::_kdamage
protected

Small stiffness of completely damaged material point.

Definition at line 44 of file HyperElasticPhaseFieldIsoDamage.h.

Referenced by computeDamageStress(), and computeQpJacobian().

◆ _l

const MaterialProperty<Real>& HyperElasticPhaseFieldIsoDamage::_l
protected

Material property defining crack width, declared elsewhere.

Definition at line 48 of file HyperElasticPhaseFieldIsoDamage.h.

Referenced by computeDamageStress().

◆ _max_substep_iter

unsigned int FiniteStrainHyperElasticViscoPlastic::_max_substep_iter
protectedinherited

Maximum number of substep iterations.

Definition at line 161 of file FiniteStrainHyperElasticViscoPlastic.h.

Referenced by FiniteStrainHyperElasticViscoPlastic::computeQpStress().

◆ _maxiters

unsigned int FiniteStrainHyperElasticViscoPlastic::_maxiters
protectedinherited

Maximum number of iterations.

Definition at line 159 of file FiniteStrainHyperElasticViscoPlastic.h.

Referenced by FiniteStrainHyperElasticViscoPlastic::solveFlowrate().

◆ _mechanical_strain

const MaterialProperty<RankTwoTensor>& ComputeGeneralStressBase::_mechanical_strain
protectedinherited

◆ _num_flow_rate_uos

unsigned int FiniteStrainHyperElasticViscoPlastic::_num_flow_rate_uos
protectedinherited

◆ _num_int_var_rate_uos

unsigned int FiniteStrainHyperElasticViscoPlastic::_num_int_var_rate_uos
protectedinherited

◆ _num_int_var_uos

unsigned int FiniteStrainHyperElasticViscoPlastic::_num_int_var_uos
protectedinherited

◆ _num_stiffness

bool HyperElasticPhaseFieldIsoDamage::_num_stiffness
protected

Flag to compute numerical stiffness.

Definition at line 42 of file HyperElasticPhaseFieldIsoDamage.h.

Referenced by computePK2StressAndDerivative().

◆ _num_strength_uos

unsigned int FiniteStrainHyperElasticViscoPlastic::_num_strength_uos
protectedinherited

◆ _pert_val

Real HyperElasticPhaseFieldIsoDamage::_pert_val
protected

Perturbation value for strain components.

Definition at line 56 of file HyperElasticPhaseFieldIsoDamage.h.

Referenced by computeNumStiffness().

◆ _pk2

MaterialProperty<RankTwoTensor>& FiniteStrainHyperElasticViscoPlastic::_pk2
protectedinherited

◆ _pk2_fet

RankTwoTensor FiniteStrainHyperElasticViscoPlastic::_pk2_fet
protectedinherited

◆ _pk2_prop_name

std::string FiniteStrainHyperElasticViscoPlastic::_pk2_prop_name
protectedinherited

◆ _pk2_tmp

RankTwoTensor HyperElasticPhaseFieldIsoDamage::_pk2_tmp
protected

◆ _resid

DenseVector<Real> FiniteStrainHyperElasticViscoPlastic::_resid
protectedinherited

◆ _resid_abs_tol

Real FiniteStrainHyperElasticViscoPlastic::_resid_abs_tol
protectedinherited

Absolute tolerance for residual convergence check.

Definition at line 155 of file FiniteStrainHyperElasticViscoPlastic.h.

Referenced by FiniteStrainHyperElasticViscoPlastic::solveFlowrate().

◆ _resid_rel_tol

Real FiniteStrainHyperElasticViscoPlastic::_resid_rel_tol
protectedinherited

Relative tolerance for residual convergence check.

Definition at line 157 of file FiniteStrainHyperElasticViscoPlastic.h.

Referenced by FiniteStrainHyperElasticViscoPlastic::solveFlowrate().

◆ _rotation_increment

const MaterialProperty<RankTwoTensor>& FiniteStrainHyperElasticViscoPlastic::_rotation_increment
protectedinherited

◆ _save_state

bool HyperElasticPhaseFieldIsoDamage::_save_state
protected

Flag to save couple material properties.

Definition at line 60 of file HyperElasticPhaseFieldIsoDamage.h.

Referenced by computeDamageStress(), and computePK2StressAndDerivative().

◆ _strength_prop

std::vector<MaterialProperty<Real> *> FiniteStrainHyperElasticViscoPlastic::_strength_prop
protectedinherited

◆ _strength_uo

std::vector<const HEVPStrengthUOBase *> FiniteStrainHyperElasticViscoPlastic::_strength_uo
protectedinherited

◆ _strength_uo_names

std::vector<UserObjectName> FiniteStrainHyperElasticViscoPlastic::_strength_uo_names
protectedinherited

◆ _stress

MaterialProperty<RankTwoTensor>& ComputeGeneralStressBase::_stress
protectedinherited

Stress material property.

Definition at line 48 of file ComputeGeneralStressBase.h.

Referenced by ComputeMultipleInelasticStressBase::computeAdmissibleState(), ComputeMultipleInelasticCosseratStress::computeAdmissibleState(), ComputeGeneralStressBase::computeQpProperties(), ComputeMultiPlasticityStress::computeQpStress(), ComputeStrainIncrementBasedStress::computeQpStress(), FiniteStrainPlasticMaterial::computeQpStress(), AbaqusUMATStress::computeQpStress(), ComputeCosseratLinearElasticStress::computeQpStress(), ComputeFiniteStrainElasticStress::computeQpStress(), ComputeLinearElasticPFFractureStress::computeQpStress(), ComputeLinearElasticStress::computeQpStress(), ComputeLinearViscoelasticStress::computeQpStress(), ComputeMultipleInelasticStressBase::computeQpStress(), ComputeSmearedCrackingStress::computeQpStress(), ComputeMultipleCrystalPlasticityStress::computeQpStress(), ComputeMultipleInelasticStressBase::computeQpStressIntermediateConfiguration(), ComputeLinearElasticPFFractureStress::computeStrainSpectral(), ComputeLinearElasticPFFractureStress::computeStrainVolDev(), ComputeLinearElasticPFFractureStress::computeStressSpectral(), ComputeCreepPlasticityStress::computeTangentOperators(), ComputeMultipleInelasticStressBase::finiteStrainRotation(), FiniteStrainCrystalPlasticity::initQpStatefulProperties(), FiniteStrainUObasedCP::initQpStatefulProperties(), FiniteStrainHyperElasticViscoPlastic::initQpStatefulProperties(), ComputeGeneralStressBase::initQpStatefulProperties(), ComputeMultiPlasticityStress::postReturnMap(), FiniteStrainCrystalPlasticity::postSolveQp(), FiniteStrainUObasedCP::postSolveQp(), FiniteStrainHyperElasticViscoPlastic::postSolveQp(), ComputeSmearedCrackingStress::updateCrackingStateAndStress(), ComputeCreepPlasticityStress::updateQpState(), ComputeMultipleInelasticStress::updateQpState(), and ComputeMultipleInelasticStressBase::updateQpStateSingleModel().

◆ _tan_mod

RankFourTensor FiniteStrainHyperElasticViscoPlastic::_tan_mod
protectedinherited

◆ _use_current_hist

bool HyperElasticPhaseFieldIsoDamage::_use_current_hist
protected

Use current value of history variable.

Definition at line 46 of file HyperElasticPhaseFieldIsoDamage.h.

Referenced by computeDamageStress(), and computeQpJacobian().

◆ _zero_pert

Real HyperElasticPhaseFieldIsoDamage::_zero_pert
protected

Perturbation value for near zero or zero strain components.

Definition at line 54 of file HyperElasticPhaseFieldIsoDamage.h.

Referenced by computeNumStiffness().

◆ _zero_tol

Real HyperElasticPhaseFieldIsoDamage::_zero_tol
protected

Used in numerical stiffness calculation to check near zero values.

Definition at line 52 of file HyperElasticPhaseFieldIsoDamage.h.

Referenced by computeNumStiffness().


The documentation for this class was generated from the following files: