www.mooseframework.org
Public Member Functions | Protected Member Functions | Protected 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 Member Functions

 HyperElasticPhaseFieldIsoDamage (const InputParameters &parameters)
 

Protected Member Functions

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

Protected Attributes

bool _num_stiffness
 Flag to compute numerical stiffness. More...
 
Real _kdamage
 Small stiffness of completely damaged material point. More...
 
bool _use_current_hist
 Use current value of history variable. More...
 
const MaterialProperty< Real > & _l
 Material property defining crack width, declared elsewhere. More...
 
const MaterialProperty< Real > & _gc
 Material property defining gc parameter, declared elsewhere. More...
 
Real _zero_tol
 Used in numerical stiffness calculation to check near zero values. More...
 
Real _zero_pert
 Perturbation value for near zero or zero strain components. More...
 
Real _pert_val
 Perturbation value for strain components. More...
 
const VariableValue & _c
 Compupled damage variable. More...
 
bool _save_state
 Flag to save couple material properties. More...
 
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. More...
 
MaterialProperty< Real > & _dFdc
 
MaterialProperty< Real > & _d2Fdc2
 
MaterialProperty< RankTwoTensor > & _d2Fdcdstrain
 
MaterialProperty< Real > & _hist
 History variable that prevents crack healing, declared in this material. More...
 
const MaterialProperty< Real > & _hist_old
 Old value of history variable. More...
 
Real _resid_abs_tol
 Absolute tolerance for residual convergence check. More...
 
Real _resid_rel_tol
 Relative tolerance for residual convergence check. More...
 
unsigned int _maxiters
 Maximum number of iterations. More...
 
unsigned int _max_substep_iter
 Maximum number of substep iterations. More...
 
std::vector< UserObjectName > _flow_rate_uo_names
 Names of flow rate user objects. More...
 
std::vector< UserObjectName > _strength_uo_names
 Names of strength user objects. More...
 
std::vector< UserObjectName > _int_var_uo_names
 Names of internal variable user objects. More...
 
std::vector< UserObjectName > _int_var_rate_uo_names
 Names of internal variable rate user objects. More...
 
unsigned int _num_flow_rate_uos
 Number of flow rate user objects. More...
 
unsigned int _num_strength_uos
 Number of strength user objects. More...
 
unsigned int _num_int_var_uos
 Number of internal variable user objects. More...
 
unsigned int _num_int_var_rate_uos
 Number of internal variable rate user objects. More...
 
std::vector< const HEVPFlowRateUOBase * > _flow_rate_uo
 Flow rate user objects. More...
 
std::vector< const HEVPStrengthUOBase * > _strength_uo
 Strength user objects. More...
 
std::vector< const HEVPInternalVarUOBase * > _int_var_uo
 Internal variable user objects. More...
 
std::vector< const HEVPInternalVarRateUOBase * > _int_var_rate_uo
 Internal variable rate user objects. More...
 
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. More...
 
const MaterialProperty< RankFourTensor > & _elasticity_tensor
 Elasticity tensor material property. More...
 
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. More...
 
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. More...
 
const MaterialProperty< RankTwoTensor > & _mechanical_strain
 Mechanical strain material property. More...
 
MaterialProperty< RankTwoTensor > & _stress
 Stress material property. More...
 
MaterialProperty< RankTwoTensor > & _elastic_strain
 Elastic strain material property. More...
 
const MaterialProperty< RankTwoTensor > & _extra_stress
 Extra stress tensor. More...
 
std::vector< Function * > _initial_stress_fcn
 initial stress components More...
 
MaterialProperty< RankFourTensor > & _Jacobian_mult
 derivative of stress w.r.t. strain (_dstress_dstrain) More...
 

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 26 of file HyperElasticPhaseFieldIsoDamage.h.

Constructor & Destructor Documentation

◆ HyperElasticPhaseFieldIsoDamage()

HyperElasticPhaseFieldIsoDamage::HyperElasticPhaseFieldIsoDamage ( const InputParameters &  parameters)

Definition at line 37 of file HyperElasticPhaseFieldIsoDamage.C.

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

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 92 of file HyperElasticPhaseFieldIsoDamage.C.

Referenced by computeNumStiffness(), and computePK2StressAndDerivative().

93 {
94  Real lambda = _elasticity_tensor[_qp](0, 0, 1, 1);
95  Real mu = _elasticity_tensor[_qp](0, 1, 0, 1);
96 
97  Real c = _c[_qp];
98  Real xfac = Utility::pow<2>(1.0 - c) + _kdamage;
99 
100  std::vector<Real> eigval;
101  RankTwoTensor evec;
102  _ee.symmetricEigenvaluesEigenvectors(eigval, evec);
103 
104  for (unsigned int i = 0; i < LIBMESH_DIM; ++i)
105  _etens[i].vectorOuterProduct(evec.column(i), evec.column(i));
106 
107  Real etr = 0.0;
108  for (unsigned int i = 0; i < LIBMESH_DIM; ++i)
109  etr += eigval[i];
110 
111  Real etrpos = (std::abs(etr) + etr) / 2.0;
112  Real etrneg = (std::abs(etr) - etr) / 2.0;
113 
114  RankTwoTensor pk2pos, pk2neg;
115 
116  for (unsigned int i = 0; i < LIBMESH_DIM; ++i)
117  {
118  pk2pos += _etens[i] * (lambda * etrpos + 2.0 * mu * (std::abs(eigval[i]) + eigval[i]) / 2.0);
119  pk2neg += _etens[i] * (lambda * etrneg + 2.0 * mu * (std::abs(eigval[i]) - eigval[i]) / 2.0);
120  }
121 
122  _pk2_tmp = pk2pos * xfac - pk2neg;
123 
124  if (_save_state)
125  {
126  std::vector<Real> epos(LIBMESH_DIM), eneg(LIBMESH_DIM);
127  for (unsigned int i = 0; i < LIBMESH_DIM; ++i)
128  {
129  epos[i] = (std::abs(eigval[i]) + eigval[i]) / 2.0;
130  eneg[i] = (std::abs(eigval[i]) - eigval[i]) / 2.0;
131  }
132 
133  // sum squares of epos and eneg
134  Real pval(0.0), nval(0.0);
135  for (unsigned int i = 0; i < LIBMESH_DIM; ++i)
136  {
137  pval += epos[i] * epos[i];
138  nval += eneg[i] * eneg[i];
139  }
140 
141  // Energy with positive principal strains
142  const Real G0_pos = lambda * etrpos * etrpos / 2.0 + mu * pval;
143  const Real G0_neg = lambda * etrneg * etrneg / 2.0 + mu * nval;
144 
145  // Assign history variable and derivative
146  if (G0_pos > _hist_old[_qp])
147  _hist[_qp] = G0_pos;
148  else
149  _hist[_qp] = _hist_old[_qp];
150 
151  Real hist_variable = _hist_old[_qp];
152  if (_use_current_hist)
153  hist_variable = _hist[_qp];
154 
155  // Elastic free energy density
156  _F[_qp] = hist_variable * xfac - G0_neg + _gc[_qp] / (2 * _l[_qp]) * c * c;
157 
158  // derivative of elastic free energy density wrt c
159  _dFdc[_qp] = -hist_variable * 2.0 * (1.0 - c) * (1 - _kdamage) + _gc[_qp] / _l[_qp] * c;
160 
161  // 2nd derivative of elastic free energy density wrt c
162  _d2Fdc2[_qp] = hist_variable * 2.0 * (1 - _kdamage) + _gc[_qp] / _l[_qp];
163 
164  _dG0_dee = pk2pos;
165 
166  _dpk2_dc = -pk2pos * 2.0 * (1.0 - c);
167  }
168 }
const MaterialProperty< Real > & _hist_old
Old value of history variable.
bool _use_current_hist
Use current value of history variable.
bool _save_state
Flag to save couple material properties.
const VariableValue & _c
Compupled damage variable.
const MaterialProperty< Real > & _l
Material property defining crack width, declared elsewhere.
MaterialProperty< Real > & _F
Elastic energy and derivatives, declared in this material.
Real _kdamage
Small stiffness of completely damaged material point.
const MaterialProperty< RankFourTensor > & _elasticity_tensor
Elasticity tensor material property.
MaterialProperty< Real > & _hist
History variable that prevents crack healing, declared in this material.
const MaterialProperty< Real > & _gc
Material property defining gc parameter, declared elsewhere.

◆ computeDeeDce()

void FiniteStrainHyperElasticViscoPlastic::computeDeeDce ( )
protectedvirtualinherited

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

Definition at line 488 of file FiniteStrainHyperElasticViscoPlastic.C.

Referenced by FiniteStrainHyperElasticViscoPlastic::initJacobianVariables().

489 {
490  _dee_dce.zero();
491 
492  for (unsigned int i = 0; i < LIBMESH_DIM; ++i)
493  for (unsigned int j = 0; j < LIBMESH_DIM; ++j)
494  _dee_dce(i, j, i, j) = 0.5;
495 }

◆ computeDpk2Dfpinv()

void FiniteStrainHyperElasticViscoPlastic::computeDpk2Dfpinv ( )
protectedvirtualinherited

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

Definition at line 518 of file FiniteStrainHyperElasticViscoPlastic.C.

Referenced by FiniteStrainHyperElasticViscoPlastic::computeFlowRateJacobian().

519 {
520  for (unsigned int i = 0; i < LIBMESH_DIM; ++i)
521  for (unsigned int j = 0; j < LIBMESH_DIM; ++j)
522  for (unsigned int k = 0; k < LIBMESH_DIM; ++k)
523  _dfe_dfpinv(i, j, k, j) = _dfgrd_tmp(i, k);
524 
526 }

◆ computeElasticPlasticDeformGrad()

void FiniteStrainHyperElasticViscoPlastic::computeElasticPlasticDeformGrad ( )
protectedvirtualinherited

Computes elastic and plastic deformation gradients.

Definition at line 504 of file FiniteStrainHyperElasticViscoPlastic.C.

Referenced by FiniteStrainHyperElasticViscoPlastic::solveFlowrate().

505 {
506  RankTwoTensor iden(RankTwoTensor::initIdentity);
507 
508  RankTwoTensor val;
509  for (unsigned int i = 0; i < _num_flow_rate_uos; ++i)
510  val += _flow_rate(i) * _flow_dirn[i] * _dt_substep;
511 
512  _fp_tmp_inv = _fp_tmp_old_inv * (iden - val);
513  _fp_tmp_inv = std::pow(_fp_tmp_inv.det(), -1.0 / 3.0) * _fp_tmp_inv;
515 }
unsigned int _num_flow_rate_uos
Number of flow rate user objects.
ExpressionBuilder::EBTerm pow(const ExpressionBuilder::EBTerm &left, T exponent)

◆ computeElasticRightCauchyGreenTensor()

void FiniteStrainHyperElasticViscoPlastic::computeElasticRightCauchyGreenTensor ( )
protectedvirtualinherited

Computes elastic Right Cauchy Green Tensor.

Definition at line 498 of file FiniteStrainHyperElasticViscoPlastic.C.

Referenced by FiniteStrainHyperElasticViscoPlastic::computeFlowRateResidual().

499 {
500  _ce[_qp] = _fe.transpose() * _fe;
501 }

◆ computeElasticStrain()

void FiniteStrainHyperElasticViscoPlastic::computeElasticStrain ( )
protectedvirtualinherited

Computes elastic Lagrangian strain.

Definition at line 481 of file FiniteStrainHyperElasticViscoPlastic.C.

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

482 {
483  RankTwoTensor iden(RankTwoTensor::initIdentity);
484  _ee = 0.5 * (_ce[_qp] - iden);
485 }

◆ computeFlowDirection()

bool FiniteStrainHyperElasticViscoPlastic::computeFlowDirection ( )
protectedvirtualinherited

Calls user objects to compute flow directions.

Definition at line 438 of file FiniteStrainHyperElasticViscoPlastic.C.

Referenced by FiniteStrainHyperElasticViscoPlastic::computeFlowRateResidual().

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

◆ computeFlowRateFunction()

bool FiniteStrainHyperElasticViscoPlastic::computeFlowRateFunction ( )
protectedvirtualinherited

Calls user objects to compute flow rates.

Definition at line 449 of file FiniteStrainHyperElasticViscoPlastic.C.

Referenced by FiniteStrainHyperElasticViscoPlastic::computeFlowRateResidual().

450 {
451  Real val = 0;
452  for (unsigned i = 0; i < _num_flow_rate_uos; ++i)
453  {
454  if (_flow_rate_uo[i]->computeValue(_qp, val))
455  _resid(i) = -val;
456  else
457  return false;
458  }
459  return true;
460 }
unsigned int _num_flow_rate_uos
Number of flow rate user objects.
std::vector< const HEVPFlowRateUOBase * > _flow_rate_uo
Flow rate user objects.

◆ computeFlowRateJacobian()

void FiniteStrainHyperElasticViscoPlastic::computeFlowRateJacobian ( )
protectedvirtualinherited

Computes flow rate Jacobian matrix.

Definition at line 400 of file FiniteStrainHyperElasticViscoPlastic.C.

Referenced by FiniteStrainHyperElasticViscoPlastic::solveFlowrate().

401 {
405 
406  for (unsigned int i = 0; i < _num_flow_rate_uos; ++i)
407  for (unsigned int j = 0; j < _num_strength_uos; ++j)
408  _flow_rate_uo[i]->computeDerivative(_qp, _strength_uo_names[j], _dflowrate_dstrength(i, j));
409 
410  for (unsigned int i = 0; i < _num_flow_rate_uos; ++i)
411  _flow_rate_uo[i]->computeTensorDerivative(_qp, _pk2_prop_name, _dflowrate_dpk2[i]);
412 
414 
415  for (unsigned int i = 0; i < _num_flow_rate_uos; ++i)
416  {
419  }
420 
421  DenseMatrix<Real> dflowrate_dflowrate;
422  dflowrate_dflowrate = _dflowrate_dstrength;
423  dflowrate_dflowrate.right_multiply(_dstrength_dintvar);
424  dflowrate_dflowrate.right_multiply(_dintvar_dflowrate);
425 
426  _jac.zero();
427  for (unsigned int i = 0; i < _num_flow_rate_uos; ++i)
428  for (unsigned int j = 0; j < _num_flow_rate_uos; ++j)
429  {
430  if (i == j)
431  _jac(i, j) = 1;
432  _jac(i, j) -= dflowrate_dflowrate(i, j);
433  _jac(i, j) -= _dflowrate_dpk2[i].doubleContraction(_dpk2_dflowrate[j]);
434  }
435 }
unsigned int _num_flow_rate_uos
Number of flow rate user objects.
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.
void computeStrengthDerivatives()
This function call user objects to compute dstrength/dintvar.
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.
unsigned int _num_strength_uos
Number of strength user objects.
std::vector< const HEVPFlowRateUOBase * > _flow_rate_uo
Flow rate user objects.

◆ computeFlowRateResidual()

bool FiniteStrainHyperElasticViscoPlastic::computeFlowRateResidual ( )
protectedvirtualinherited

Computes flow rate residual vector.

Definition at line 374 of file FiniteStrainHyperElasticViscoPlastic.C.

Referenced by FiniteStrainHyperElasticViscoPlastic::solveFlowrate().

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

◆ computeIntVar()

bool FiniteStrainHyperElasticViscoPlastic::computeIntVar ( )
protectedvirtualinherited

This function call user objects to integrate internal variables.

Definition at line 594 of file FiniteStrainHyperElasticViscoPlastic.C.

Referenced by FiniteStrainHyperElasticViscoPlastic::computeFlowRateResidual().

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 }
unsigned int _num_int_var_uos
Number of internal variable user objects.
std::vector< const HEVPInternalVarUOBase * > _int_var_uo
Internal variable user objects.
std::vector< MaterialProperty< Real > * > _int_var_stateful_prop

◆ 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.

Referenced by FiniteStrainHyperElasticViscoPlastic::computeFlowRateJacobian().

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 
646  _dintvar_dintvar.zero();
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 }
unsigned int _num_flow_rate_uos
Number of flow rate user objects.
unsigned int _num_int_var_rate_uos
Number of internal variable rate user objects.
std::vector< DenseVector< Real > > _dintvar_dflowrate_tmp
unsigned int _num_int_var_uos
Number of internal variable user objects.
std::vector< DenseVector< Real > > _dintvarrate_dflowrate
Jacobian variables.
std::vector< const HEVPInternalVarUOBase * > _int_var_uo
Internal variable user objects.
std::vector< UserObjectName > _int_var_rate_uo_names
Names of internal variable rate user objects.

◆ 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.

Referenced by FiniteStrainHyperElasticViscoPlastic::computeFlowRateJacobian().

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 }
unsigned int _num_flow_rate_uos
Number of flow rate user objects.
unsigned int _num_int_var_rate_uos
Number of internal variable rate user objects.
std::vector< DenseVector< Real > > _dintvarrate_dflowrate
Jacobian variables.
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.

◆ computeIntVarRates()

bool FiniteStrainHyperElasticViscoPlastic::computeIntVarRates ( )
protectedvirtualinherited

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

Definition at line 580 of file FiniteStrainHyperElasticViscoPlastic.C.

Referenced by FiniteStrainHyperElasticViscoPlastic::computeFlowRateResidual().

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 }
unsigned int _num_int_var_rate_uos
Number of internal variable rate user objects.
std::vector< const HEVPInternalVarRateUOBase * > _int_var_rate_uo
Internal variable rate user objects.
std::vector< MaterialProperty< Real > * > _int_var_rate_prop

◆ computeNorm()

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

Computes norm of residual vector.

Definition at line 529 of file FiniteStrainHyperElasticViscoPlastic.C.

Referenced by FiniteStrainHyperElasticViscoPlastic::solveFlowrate().

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

◆ computeNumStiffness()

void HyperElasticPhaseFieldIsoDamage::computeNumStiffness ( )
protectedvirtual

This function computes numerical stiffness.

Definition at line 171 of file HyperElasticPhaseFieldIsoDamage.C.

Referenced by computePK2StressAndDerivative().

172 {
173  RankTwoTensor ee_tmp;
174 
175  for (unsigned int i = 0; i < LIBMESH_DIM; ++i)
176  for (unsigned int j = i; j < LIBMESH_DIM; ++j)
177  {
178  Real ee_pert = _zero_pert;
179  if (std::abs(_ee(i, j)) > _zero_tol)
180  ee_pert = _pert_val * std::abs(_ee(i, j));
181 
182  ee_tmp = _ee;
183  _ee(i, j) += ee_pert;
184 
186 
187  for (unsigned int k = 0; k < LIBMESH_DIM; ++k)
188  for (unsigned int l = 0; l < LIBMESH_DIM; ++l)
189  {
190  _dpk2_dee(k, l, i, j) = (_pk2_tmp(k, l) - _pk2[_qp](k, l)) / ee_pert;
191  _dpk2_dee(k, l, j, i) = (_pk2_tmp(k, l) - _pk2[_qp](k, l)) / ee_pert;
192  }
193  _ee = ee_tmp;
194  }
195 }
virtual void computeDamageStress()
This function computes PK2 stress modified to account for damage Computes numerical stiffness if flag...
Real _zero_pert
Perturbation value for near zero or zero strain components.
Real _pert_val
Perturbation value for strain components.
Real _zero_tol
Used in numerical stiffness calculation to check near zero values.

◆ computePK2StressAndDerivative()

void HyperElasticPhaseFieldIsoDamage::computePK2StressAndDerivative ( )
protectedvirtual

This function computes PK2 stress.

Reimplemented from FiniteStrainHyperElasticViscoPlastic.

Definition at line 64 of file HyperElasticPhaseFieldIsoDamage.C.

65 {
67 
68  _save_state = true;
70  _pk2[_qp] = _pk2_tmp;
71 
72  _save_state = false;
73  if (_num_stiffness)
75 
76  if (_num_stiffness)
78 
79  _dce_dfe.zero();
80  for (unsigned int i = 0; i < LIBMESH_DIM; ++i)
81  for (unsigned int j = 0; j < LIBMESH_DIM; ++j)
82  for (unsigned int k = 0; k < LIBMESH_DIM; ++k)
83  {
84  _dce_dfe(i, j, k, i) = _dce_dfe(i, j, k, i) + _fe(k, j);
85  _dce_dfe(i, j, k, j) = _dce_dfe(i, j, k, j) + _fe(k, i);
86  }
87 
89 }
virtual void computeElasticStrain()
Computes elastic Lagrangian strain.
virtual void computeDamageStress()
This function computes PK2 stress modified to account for damage Computes numerical stiffness if flag...
virtual void computeNumStiffness()
This function computes numerical stiffness.
bool _save_state
Flag to save couple material properties.
bool _num_stiffness
Flag to compute 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 198 of file HyperElasticPhaseFieldIsoDamage.C.

199 {
201 
202  RankTwoTensor dG0_dce = _dee_dce.innerProductTranspose(_dG0_dee);
203  RankTwoTensor dG0_dfe = _dce_dfe.innerProductTranspose(dG0_dce);
204  RankTwoTensor dG0_df = _dfe_df.innerProductTranspose(dG0_dfe);
205 
206  // 2nd derivative wrt c and strain = 0.0 if we used the previous step's history varible
207  if (_use_current_hist)
208  _d2Fdcdstrain[_qp] =
209  -_df_dstretch_inc.innerProductTranspose(dG0_df) * 2.0 * (1.0 - _c[_qp]) * (1 - _kdamage);
210 
211  _dstress_dc[_qp] = _fe.mixedProductIkJl(_fe) * _dpk2_dc;
212 }
bool _use_current_hist
Use current value of history variable.
virtual void computeQpJacobian()
This function computes the Jacobian.
const VariableValue & _c
Compupled damage variable.
MaterialProperty< RankTwoTensor > & _dstress_dc
MaterialProperty< RankTwoTensor > & _d2Fdcdstrain
Real _kdamage
Small stiffness of completely damaged material point.

◆ computeQpProperties()

void ComputeStressBase::computeQpProperties ( )
overrideprotectedvirtualinherited

Definition at line 49 of file ComputeStressBase.C.

50 {
52 
53  // Add in extra stress
54  _stress[_qp] += _extra_stress[_qp];
55 }
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.
const MaterialProperty< RankTwoTensor > & _extra_stress
Extra stress tensor.

◆ computeQpStress()

void FiniteStrainHyperElasticViscoPlastic::computeQpStress ( )
protectedvirtualinherited

This function computes the Cauchy stress.

Implements ComputeStressBase.

Definition at line 209 of file FiniteStrainHyperElasticViscoPlastic.C.

210 {
211  bool converge;
213  unsigned int num_substep = 1;
214  unsigned int substep_iter = 1;
215 
216  saveOldState();
217 
218  do
219  {
220  preSolveQp();
221 
222  converge = true;
223  _dt_substep = _dt / num_substep;
224 
225  for (unsigned int istep = 0; istep < num_substep; ++istep)
226  {
227  _dfgrd_tmp = (istep + 1.0) * delta_dfgrd / num_substep + _deformation_gradient_old[_qp];
228  if (!solveQp())
229  {
230  converge = false;
231  substep_iter++;
232  num_substep *= 2;
233  break;
234  }
235  }
236 
237  if (substep_iter > _max_substep_iter)
238  mooseError("Constitutive failure with substepping at quadrature point ",
239  _q_point[_qp](0),
240  " ",
241  _q_point[_qp](1),
242  " ",
243  _q_point[_qp](2));
244  } while (!converge);
245 
246  postSolveQp();
247 }
const MaterialProperty< RankTwoTensor > & _deformation_gradient_old
unsigned int _max_substep_iter
Maximum number of substep iterations.
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

◆ computeStrength()

bool FiniteStrainHyperElasticViscoPlastic::computeStrength ( )
protectedvirtualinherited

This function call user objects to compute strength.

Definition at line 608 of file FiniteStrainHyperElasticViscoPlastic.C.

Referenced by FiniteStrainHyperElasticViscoPlastic::computeFlowRateResidual().

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< const HEVPStrengthUOBase * > _strength_uo
Strength user objects.
unsigned int _num_strength_uos
Number of strength user objects.
std::vector< MaterialProperty< Real > * > _strength_prop

◆ computeStrengthDerivatives()

void FiniteStrainHyperElasticViscoPlastic::computeStrengthDerivatives ( )
protectedinherited

This function call user objects to compute dstrength/dintvar.

Definition at line 670 of file FiniteStrainHyperElasticViscoPlastic.C.

Referenced by FiniteStrainHyperElasticViscoPlastic::computeFlowRateJacobian().

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 }
unsigned int _num_int_var_uos
Number of internal variable user objects.
std::vector< UserObjectName > _int_var_uo_names
Names of internal variable user objects.
std::vector< const HEVPStrengthUOBase * > _strength_uo
Strength user objects.
unsigned int _num_strength_uos
Number of strength user objects.

◆ initJacobianVariables()

void FiniteStrainHyperElasticViscoPlastic::initJacobianVariables ( )
protectedvirtualinherited

This function initialize variables required for Jacobian calculation.

Definition at line 156 of file FiniteStrainHyperElasticViscoPlastic.C.

Referenced by FiniteStrainHyperElasticViscoPlastic::FiniteStrainHyperElasticViscoPlastic().

157 {
159  for (unsigned int i = 0; i < _num_flow_rate_uos; ++i)
161 
163  for (unsigned int i = 0; i < _num_flow_rate_uos; ++i)
165 
173 
177 
179 
180  computeDeeDce();
181 }
unsigned int _num_flow_rate_uos
Number of flow rate user objects.
unsigned int _num_int_var_rate_uos
Number of internal variable rate user objects.
std::vector< DenseVector< Real > > _dintvar_dflowrate_tmp
virtual void computeDeeDce()
Computes derivative of elastic strain w.r.t elastic Right Cauchy Green Tensor.
unsigned int _num_int_var_uos
Number of internal variable user objects.
std::vector< DenseVector< Real > > _dintvarrate_dflowrate
Jacobian variables.
unsigned int _num_strength_uos
Number of strength user objects.

◆ 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 111 of file FiniteStrainHyperElasticViscoPlastic.C.

Referenced by FiniteStrainHyperElasticViscoPlastic::initUOVariables().

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

◆ 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 119 of file FiniteStrainHyperElasticViscoPlastic.C.

Referenced by FiniteStrainHyperElasticViscoPlastic::initUOVariables().

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

◆ 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 130 of file FiniteStrainHyperElasticViscoPlastic.C.

Referenced by FiniteStrainHyperElasticViscoPlastic::initUOVariables().

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

◆ initQpStatefulProperties()

void FiniteStrainHyperElasticViscoPlastic::initQpStatefulProperties ( )
protectedvirtualinherited

Initializes state.

Reimplemented from ComputeStressBase.

Definition at line 184 of file FiniteStrainHyperElasticViscoPlastic.C.

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

◆ 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 88 of file FiniteStrainHyperElasticViscoPlastic.C.

Referenced by FiniteStrainHyperElasticViscoPlastic::FiniteStrainHyperElasticViscoPlastic().

89 {
94 
99 
101 
106 
107  _int_var_old.resize(_num_int_var_uos, 0.0);
108 }
unsigned int _num_flow_rate_uos
Number of flow rate user objects.
std::vector< MaterialProperty< Real > * > _flow_rate_prop
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...
unsigned int _num_int_var_rate_uos
Number of internal variable rate user objects.
void initNumUserObjects(const std::vector< UserObjectName > &, unsigned int &)
This function calculates the number of each user object type.
std::vector< UserObjectName > _strength_uo_names
Names of strength user objects.
unsigned int _num_int_var_uos
Number of internal variable user objects.
std::vector< UserObjectName > _flow_rate_uo_names
Names of flow rate user objects.
std::vector< const MaterialProperty< Real > * > _int_var_stateful_prop_old
std::vector< UserObjectName > _int_var_uo_names
Names of internal variable user objects.
std::vector< const HEVPInternalVarUOBase * > _int_var_uo
Internal variable user objects.
std::vector< const HEVPStrengthUOBase * > _strength_uo
Strength user objects.
unsigned int _num_strength_uos
Number of strength user objects.
std::vector< UserObjectName > _int_var_rate_uo_names
Names of internal variable rate user objects.
std::vector< const HEVPInternalVarRateUOBase * > _int_var_rate_uo
Internal variable rate user objects.
void initProp(const std::vector< UserObjectName > &, unsigned int, std::vector< MaterialProperty< T > *> &)
This function initializes properties for each user object.
std::vector< MaterialProperty< Real > * > _int_var_stateful_prop
std::vector< const HEVPFlowRateUOBase * > _flow_rate_uo
Flow rate user objects.
void initUserObjects(const std::vector< UserObjectName > &, unsigned int, std::vector< const T *> &)
This function initializes user objects.
std::vector< MaterialProperty< Real > * > _int_var_rate_prop
std::vector< MaterialProperty< Real > * > _strength_prop

◆ 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 142 of file FiniteStrainHyperElasticViscoPlastic.C.

Referenced by FiniteStrainHyperElasticViscoPlastic::initUOVariables().

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

◆ postSolveFlowrate()

void FiniteStrainHyperElasticViscoPlastic::postSolveFlowrate ( )
protectedvirtualinherited

Update state for output (Inside substepping)

Definition at line 363 of file FiniteStrainHyperElasticViscoPlastic.C.

Referenced by FiniteStrainHyperElasticViscoPlastic::solveQp().

364 {
366 
367  // TODO: remove this nasty const_cast if you can figure out how
368  for (unsigned int i = 0; i < _num_int_var_uos; ++i)
369  const_cast<MaterialProperty<Real> &>(*_int_var_stateful_prop_old[i])[_qp] =
370  (*_int_var_stateful_prop[i])[_qp];
371 }
unsigned int _num_int_var_uos
Number of internal variable user objects.
std::vector< const MaterialProperty< Real > * > _int_var_stateful_prop_old
std::vector< MaterialProperty< Real > * > _int_var_stateful_prop

◆ postSolveQp()

void FiniteStrainHyperElasticViscoPlastic::postSolveQp ( )
protectedvirtualinherited

Update state for output (Outside substepping)

Definition at line 281 of file FiniteStrainHyperElasticViscoPlastic.C.

Referenced by FiniteStrainHyperElasticViscoPlastic::computeQpStress().

282 {
283  recoverOldState();
284 
285  _stress[_qp] = _fe * _pk2[_qp] * _fe.transpose() / _fe.det();
286  _fp[_qp] = _fp_tmp_inv.inverse();
287 
289 }
virtual void recoverOldState()
This function restores the the old stateful properties after a successful solve.
MaterialProperty< RankTwoTensor > & _stress
Stress material property.
virtual void computeQpJacobian()
This function computes the Jacobian.

◆ preSolveFlowrate()

void FiniteStrainHyperElasticViscoPlastic::preSolveFlowrate ( )
protectedvirtualinherited

Sets state for solve (Inside substepping)

Definition at line 300 of file FiniteStrainHyperElasticViscoPlastic.C.

Referenced by FiniteStrainHyperElasticViscoPlastic::solveQp().

301 {
302  for (unsigned int i = 0; i < _num_flow_rate_uos; ++i)
303  {
304  _flow_rate(i) = 0.0;
305  (*_flow_rate_prop[i])[_qp] = 0.0;
306  }
307 
308  for (unsigned int i = 0; i < _num_int_var_uos; ++i)
309  (*_int_var_stateful_prop[i])[_qp] = (*_int_var_stateful_prop_old[i])[_qp];
310 
313 }
unsigned int _num_flow_rate_uos
Number of flow rate user objects.
std::vector< MaterialProperty< Real > * > _flow_rate_prop
unsigned int _num_int_var_uos
Number of internal variable user objects.
std::vector< const MaterialProperty< Real > * > _int_var_stateful_prop_old
std::vector< MaterialProperty< Real > * > _int_var_stateful_prop

◆ preSolveQp()

void FiniteStrainHyperElasticViscoPlastic::preSolveQp ( )
protectedvirtualinherited

Sets state for solve.

Definition at line 257 of file FiniteStrainHyperElasticViscoPlastic.C.

Referenced by FiniteStrainHyperElasticViscoPlastic::computeQpStress().

258 {
259  _fp_tmp_old_inv = _fp_old[_qp].inverse();
260 
261  // TODO: remove this nasty const_cast if you can figure out how
262  for (unsigned int i = 0; i < _num_int_var_uos; ++i)
263  (*_int_var_stateful_prop[i])[_qp] =
264  const_cast<MaterialProperty<Real> &>(*_int_var_stateful_prop_old[i])[_qp] = _int_var_old[i];
265 
267 }
const MaterialProperty< RankTwoTensor > & _fp_old
unsigned int _num_int_var_uos
Number of internal variable user objects.
std::vector< const MaterialProperty< Real > * > _int_var_stateful_prop_old
std::vector< MaterialProperty< Real > * > _int_var_stateful_prop
const MaterialProperty< RankFourTensor > & _elasticity_tensor
Elasticity tensor material property.

◆ recoverOldState()

void FiniteStrainHyperElasticViscoPlastic::recoverOldState ( )
protectedvirtualinherited

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

Definition at line 292 of file FiniteStrainHyperElasticViscoPlastic.C.

Referenced by FiniteStrainHyperElasticViscoPlastic::postSolveQp().

293 {
294  // TODO: remove this nasty const_cast if you can figure out how
295  for (unsigned int i = 0; i < _num_int_var_uos; ++i)
296  const_cast<MaterialProperty<Real> &>(*_int_var_stateful_prop_old[i])[_qp] = _int_var_old[i];
297 }
unsigned int _num_int_var_uos
Number of internal variable user objects.
std::vector< const MaterialProperty< Real > * > _int_var_stateful_prop_old

◆ saveOldState()

void FiniteStrainHyperElasticViscoPlastic::saveOldState ( )
protectedvirtualinherited

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

Definition at line 250 of file FiniteStrainHyperElasticViscoPlastic.C.

Referenced by FiniteStrainHyperElasticViscoPlastic::computeQpStress().

251 {
252  for (unsigned int i = 0; i < _num_int_var_uos; ++i)
254 }
unsigned int _num_int_var_uos
Number of internal variable user objects.
std::vector< const MaterialProperty< Real > * > _int_var_stateful_prop_old

◆ solveFlowrate()

bool FiniteStrainHyperElasticViscoPlastic::solveFlowrate ( )
protectedvirtualinherited

Solve for flow rate and state.

Definition at line 316 of file FiniteStrainHyperElasticViscoPlastic.C.

Referenced by FiniteStrainHyperElasticViscoPlastic::solveQp().

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

◆ solveQp()

bool FiniteStrainHyperElasticViscoPlastic::solveQp ( )
protectedvirtualinherited

Solve state.

Definition at line 270 of file FiniteStrainHyperElasticViscoPlastic.C.

Referenced by FiniteStrainHyperElasticViscoPlastic::computeQpStress().

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

◆ updateFlowRate()

void FiniteStrainHyperElasticViscoPlastic::updateFlowRate ( )
protectedvirtualinherited

Update flow rate.

Definition at line 538 of file FiniteStrainHyperElasticViscoPlastic.C.

Referenced by FiniteStrainHyperElasticViscoPlastic::solveFlowrate().

539 {
540  _jac.lu_solve(_resid, _dflow_rate);
542 
543  for (unsigned int i = 0; i < _num_flow_rate_uos; ++i)
544  (*_flow_rate_prop[i])[_qp] = _flow_rate(i);
545 }
unsigned int _num_flow_rate_uos
Number of flow rate user objects.
std::vector< MaterialProperty< Real > * > _flow_rate_prop

Member Data Documentation

◆ _base_name

const std::string ComputeStressBase::_base_name
protectedinherited

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

Definition at line 44 of file ComputeStressBase.h.

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

◆ _c

const VariableValue& HyperElasticPhaseFieldIsoDamage::_c
protected

Compupled damage variable.

Definition at line 62 of file HyperElasticPhaseFieldIsoDamage.h.

Referenced by computeDamageStress(), and computeQpJacobian().

◆ _ce

MaterialProperty<RankTwoTensor>& FiniteStrainHyperElasticViscoPlastic::_ce
protectedinherited

◆ _d2Fdc2

MaterialProperty<Real>& HyperElasticPhaseFieldIsoDamage::_d2Fdc2
protected

Definition at line 75 of file HyperElasticPhaseFieldIsoDamage.h.

Referenced by computeDamageStress().

◆ _d2Fdcdstrain

MaterialProperty<RankTwoTensor>& HyperElasticPhaseFieldIsoDamage::_d2Fdcdstrain
protected

Definition at line 76 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 74 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 68 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 68 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 66 of file HyperElasticPhaseFieldIsoDamage.h.

Referenced by computeQpJacobian().

◆ _dt_substep

Real FiniteStrainHyperElasticViscoPlastic::_dt_substep
protectedinherited

◆ _ee

RankTwoTensor FiniteStrainHyperElasticViscoPlastic::_ee
protectedinherited

◆ _elastic_strain

MaterialProperty<RankTwoTensor>& ComputeStressBase::_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 201 of file FiniteStrainHyperElasticViscoPlastic.h.

◆ _etens

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

Definition at line 70 of file HyperElasticPhaseFieldIsoDamage.h.

Referenced by computeDamageStress().

◆ _extra_stress

const MaterialProperty<RankTwoTensor>& ComputeStressBase::_extra_stress
protectedinherited

Extra stress tensor.

Definition at line 54 of file ComputeStressBase.h.

Referenced by ComputeStressBase::computeQpProperties().

◆ _F

MaterialProperty<Real>& HyperElasticPhaseFieldIsoDamage::_F
protected

Elastic energy and derivatives, declared in this material.

Definition at line 73 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 54 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 79 of file HyperElasticPhaseFieldIsoDamage.h.

Referenced by computeDamageStress().

◆ _hist_old

const MaterialProperty<Real>& HyperElasticPhaseFieldIsoDamage::_hist_old
protected

Old value of history variable.

Definition at line 82 of file HyperElasticPhaseFieldIsoDamage.h.

Referenced by computeDamageStress().

◆ _initial_stress_fcn

std::vector<Function *> ComputeStressBase::_initial_stress_fcn
protectedinherited

initial stress components

Definition at line 57 of file ComputeStressBase.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>& ComputeStressBase::_Jacobian_mult
protectedinherited

◆ _kdamage

Real HyperElasticPhaseFieldIsoDamage::_kdamage
protected

Small stiffness of completely damaged material point.

Definition at line 48 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 52 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 165 of file FiniteStrainHyperElasticViscoPlastic.h.

Referenced by FiniteStrainHyperElasticViscoPlastic::computeQpStress().

◆ _maxiters

unsigned int FiniteStrainHyperElasticViscoPlastic::_maxiters
protectedinherited

Maximum number of iterations.

Definition at line 163 of file FiniteStrainHyperElasticViscoPlastic.h.

Referenced by FiniteStrainHyperElasticViscoPlastic::solveFlowrate().

◆ _mechanical_strain

const MaterialProperty<RankTwoTensor>& ComputeStressBase::_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 46 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 60 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 159 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 161 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 64 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>& ComputeStressBase::_stress
protectedinherited

Stress material property.

Definition at line 49 of file ComputeStressBase.h.

Referenced by ComputeMultipleInelasticCosseratStress::computeAdmissibleState(), ComputeMultipleInelasticStress::computeAdmissibleState(), ComputeStressBase::computeQpProperties(), ComputeStrainIncrementBasedStress::computeQpStress(), ComputeLinearElasticStress::computeQpStress(), ComputeFiniteStrainElasticStress::computeQpStress(), ComputeCosseratLinearElasticStress::computeQpStress(), ComputeDamageStress::computeQpStress(), ComputeSmearedCrackingStress::computeQpStress(), FiniteStrainPlasticMaterial::computeQpStress(), ComputeLinearElasticPFFractureStress::computeQpStress(), ComputeMultiPlasticityStress::computeQpStress(), ComputeLinearViscoelasticStress::computeQpStress(), ComputeMultipleInelasticStress::computeQpStressIntermediateConfiguration(), ComputeLinearElasticPFFractureStress::computeStrainSpectral(), ComputeLinearElasticPFFractureStress::computeStrainVolDev(), ComputeLinearElasticPFFractureStress::computeStressSpectral(), ComputeMultipleInelasticStress::finiteStrainRotation(), ComputeStressBase::initQpStatefulProperties(), FiniteStrainCrystalPlasticity::initQpStatefulProperties(), FiniteStrainUObasedCP::initQpStatefulProperties(), FiniteStrainHyperElasticViscoPlastic::initQpStatefulProperties(), ComputeMultiPlasticityStress::postReturnMap(), FiniteStrainUObasedCP::postSolveQp(), FiniteStrainHyperElasticViscoPlastic::postSolveQp(), FiniteStrainCrystalPlasticity::postSolveQp(), ComputeSmearedCrackingStress::updateCrackingStateAndStress(), ComputeMultipleInelasticStress::updateQpState(), and ComputeMultipleInelasticStress::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 50 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 58 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 56 of file HyperElasticPhaseFieldIsoDamage.h.

Referenced by computeNumStiffness().


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