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

Static Public Member Functions

static InputParameters validParams ()
 

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

Constructor & Destructor Documentation

◆ HyperElasticPhaseFieldIsoDamage()

HyperElasticPhaseFieldIsoDamage::HyperElasticPhaseFieldIsoDamage ( const InputParameters &  parameters)

Definition at line 38 of file HyperElasticPhaseFieldIsoDamage.C.

40  _num_stiffness(getParam<bool>("numerical_stiffness")),
41  _kdamage(getParam<Real>("damage_stiffness")),
42  _use_current_hist(getParam<bool>("use_current_history_variable")),
43  _l(getMaterialProperty<Real>("l")),
44  _gc(getMaterialProperty<Real>("gc_prop")),
45  _zero_tol(getParam<Real>("zero_tol")),
46  _zero_pert(getParam<Real>("zero_perturb")),
47  _pert_val(getParam<Real>("perturbation_scale_factor")),
48  _c(coupledValue("c")),
49  _save_state(false),
51  declarePropertyDerivative<RankTwoTensor>(_base_name + "stress", getVar("c", 0)->name())),
52  _etens(LIBMESH_DIM),
53  _F(declareProperty<Real>(getParam<MaterialPropertyName>("F_name"))),
54  _dFdc(declarePropertyDerivative<Real>(getParam<MaterialPropertyName>("F_name"),
55  getVar("c", 0)->name())),
56  _d2Fdc2(declarePropertyDerivative<Real>(
57  getParam<MaterialPropertyName>("F_name"), getVar("c", 0)->name(), getVar("c", 0)->name())),
58  _d2Fdcdstrain(declareProperty<RankTwoTensor>("d2Fdcdstrain")),
59  _hist(declareProperty<Real>("hist")),
60  _hist_old(getMaterialPropertyOld<Real>("hist"))
61 {
62 }

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

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

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

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

Referenced by FiniteStrainHyperElasticViscoPlastic::initJacobianVariables().

◆ computeDpk2Dfpinv()

void FiniteStrainHyperElasticViscoPlastic::computeDpk2Dfpinv ( )
protectedvirtualinherited

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

Definition at line 519 of file FiniteStrainHyperElasticViscoPlastic.C.

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

Referenced by FiniteStrainHyperElasticViscoPlastic::computeFlowRateJacobian().

◆ computeElasticPlasticDeformGrad()

void FiniteStrainHyperElasticViscoPlastic::computeElasticPlasticDeformGrad ( )
protectedvirtualinherited

Computes elastic and plastic deformation gradients.

Definition at line 505 of file FiniteStrainHyperElasticViscoPlastic.C.

506 {
507  RankTwoTensor iden(RankTwoTensor::initIdentity);
508 
509  RankTwoTensor val;
510  for (unsigned int i = 0; i < _num_flow_rate_uos; ++i)
511  val += _flow_rate(i) * _flow_dirn[i] * _dt_substep;
512 
513  _fp_tmp_inv = _fp_tmp_old_inv * (iden - val);
514  _fp_tmp_inv = std::pow(_fp_tmp_inv.det(), -1.0 / 3.0) * _fp_tmp_inv;
516 }

Referenced by FiniteStrainHyperElasticViscoPlastic::solveFlowrate().

◆ computeElasticRightCauchyGreenTensor()

void FiniteStrainHyperElasticViscoPlastic::computeElasticRightCauchyGreenTensor ( )
protectedvirtualinherited

Computes elastic Right Cauchy Green Tensor.

Definition at line 499 of file FiniteStrainHyperElasticViscoPlastic.C.

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

Referenced by FiniteStrainHyperElasticViscoPlastic::computeFlowRateResidual().

◆ computeElasticStrain()

void FiniteStrainHyperElasticViscoPlastic::computeElasticStrain ( )
protectedvirtualinherited

Computes elastic Lagrangian strain.

Definition at line 482 of file FiniteStrainHyperElasticViscoPlastic.C.

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

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

◆ computeFlowDirection()

bool FiniteStrainHyperElasticViscoPlastic::computeFlowDirection ( )
protectedvirtualinherited

Calls user objects to compute flow directions.

Definition at line 439 of file FiniteStrainHyperElasticViscoPlastic.C.

440 {
441  for (unsigned i = 0; i < _num_flow_rate_uos; ++i)
442  {
443  if (!_flow_rate_uo[i]->computeDirection(_qp, _flow_dirn[i]))
444  return false;
445  }
446  return true;
447 }

Referenced by FiniteStrainHyperElasticViscoPlastic::computeFlowRateResidual().

◆ computeFlowRateFunction()

bool FiniteStrainHyperElasticViscoPlastic::computeFlowRateFunction ( )
protectedvirtualinherited

Calls user objects to compute flow rates.

Definition at line 450 of file FiniteStrainHyperElasticViscoPlastic.C.

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

Referenced by FiniteStrainHyperElasticViscoPlastic::computeFlowRateResidual().

◆ computeFlowRateJacobian()

void FiniteStrainHyperElasticViscoPlastic::computeFlowRateJacobian ( )
protectedvirtualinherited

Computes flow rate Jacobian matrix.

Definition at line 401 of file FiniteStrainHyperElasticViscoPlastic.C.

402 {
406 
407  for (unsigned int i = 0; i < _num_flow_rate_uos; ++i)
408  for (unsigned int j = 0; j < _num_strength_uos; ++j)
409  _flow_rate_uo[i]->computeDerivative(_qp, _strength_uo_names[j], _dflowrate_dstrength(i, j));
410 
411  for (unsigned int i = 0; i < _num_flow_rate_uos; ++i)
412  _flow_rate_uo[i]->computeTensorDerivative(_qp, _pk2_prop_name, _dflowrate_dpk2[i]);
413 
415 
416  for (unsigned int i = 0; i < _num_flow_rate_uos; ++i)
417  {
420  }
421 
422  DenseMatrix<Real> dflowrate_dflowrate;
423  dflowrate_dflowrate = _dflowrate_dstrength;
424  dflowrate_dflowrate.right_multiply(_dstrength_dintvar);
425  dflowrate_dflowrate.right_multiply(_dintvar_dflowrate);
426 
427  _jac.zero();
428  for (unsigned int i = 0; i < _num_flow_rate_uos; ++i)
429  for (unsigned int j = 0; j < _num_flow_rate_uos; ++j)
430  {
431  if (i == j)
432  _jac(i, j) = 1;
433  _jac(i, j) -= dflowrate_dflowrate(i, j);
434  _jac(i, j) -= _dflowrate_dpk2[i].doubleContraction(_dpk2_dflowrate[j]);
435  }
436 }

Referenced by FiniteStrainHyperElasticViscoPlastic::solveFlowrate().

◆ computeFlowRateResidual()

bool FiniteStrainHyperElasticViscoPlastic::computeFlowRateResidual ( )
protectedvirtualinherited

Computes flow rate residual vector.

Definition at line 375 of file FiniteStrainHyperElasticViscoPlastic.C.

376 {
377  if (!computeIntVarRates())
378  return false;
379 
380  if (!computeIntVar())
381  return false;
382 
383  if (!computeStrength())
384  return false;
385 
388 
390  return false;
391 
392  if (!computeFlowDirection())
393  return false;
394 
395  _resid += _flow_rate;
396 
397  return true;
398 }

Referenced by FiniteStrainHyperElasticViscoPlastic::solveFlowrate().

◆ computeIntVar()

bool FiniteStrainHyperElasticViscoPlastic::computeIntVar ( )
protectedvirtualinherited

This function call user objects to integrate internal variables.

Definition at line 595 of file FiniteStrainHyperElasticViscoPlastic.C.

596 {
597  Real val = 0;
598  for (unsigned int i = 0; i < _num_int_var_uos; ++i)
599  {
600  if (_int_var_uo[i]->computeValue(_qp, _dt_substep, val))
601  (*_int_var_stateful_prop[i])[_qp] = val;
602  else
603  return false;
604  }
605  return true;
606 }

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

637 {
638  Real val = 0;
639 
640  for (unsigned int i = 0; i < _num_int_var_uos; ++i)
641  for (unsigned int j = 0; j < _num_int_var_rate_uos; ++j)
642  {
643  _int_var_uo[i]->computeDerivative(_qp, _dt_substep, _int_var_rate_uo_names[j], val);
644  _dintvar_dintvarrate(i, j) = val;
645  }
646 
647  _dintvar_dintvar.zero();
648 
649  for (unsigned int i = 0; i < _num_int_var_uos; ++i)
650  for (unsigned int j = 0; j < _num_int_var_uos; ++j)
651  {
652  if (i == j)
653  _dintvar_dintvar(i, j) = 1;
654  for (unsigned int k = 0; k < _num_int_var_rate_uos; ++k)
656  }
657 
658  for (unsigned int i = 0; i < _num_flow_rate_uos; ++i)
660 
661  for (unsigned int i = 0; i < _num_flow_rate_uos; ++i)
662  {
663  _dintvar_dintvar_x.zero();
665  for (unsigned int j = 0; j < _num_int_var_uos; ++j)
667  }
668 }

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

624 {
625  Real val = 0;
626 
627  for (unsigned int i = 0; i < _num_int_var_rate_uos; ++i)
628  for (unsigned int j = 0; j < _num_flow_rate_uos; ++j)
629  {
630  _int_var_rate_uo[i]->computeDerivative(_qp, _flow_rate_uo_names[j], val);
631  _dintvarrate_dflowrate[j](i) = val;
632  }
633 }

Referenced by FiniteStrainHyperElasticViscoPlastic::computeFlowRateJacobian().

◆ computeIntVarRates()

bool FiniteStrainHyperElasticViscoPlastic::computeIntVarRates ( )
protectedvirtualinherited

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

Definition at line 581 of file FiniteStrainHyperElasticViscoPlastic.C.

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

Referenced by FiniteStrainHyperElasticViscoPlastic::computeFlowRateResidual().

◆ computeNorm()

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

Computes norm of residual vector.

Definition at line 530 of file FiniteStrainHyperElasticViscoPlastic.C.

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

Referenced by FiniteStrainHyperElasticViscoPlastic::solveFlowrate().

◆ computeNumStiffness()

void HyperElasticPhaseFieldIsoDamage::computeNumStiffness ( )
protectedvirtual

This function computes numerical stiffness.

Definition at line 172 of file HyperElasticPhaseFieldIsoDamage.C.

173 {
174  RankTwoTensor ee_tmp;
175 
176  for (unsigned int i = 0; i < LIBMESH_DIM; ++i)
177  for (unsigned int j = i; j < LIBMESH_DIM; ++j)
178  {
179  Real ee_pert = _zero_pert;
180  if (std::abs(_ee(i, j)) > _zero_tol)
181  ee_pert = _pert_val * std::abs(_ee(i, j));
182 
183  ee_tmp = _ee;
184  _ee(i, j) += ee_pert;
185 
187 
188  for (unsigned int k = 0; k < LIBMESH_DIM; ++k)
189  for (unsigned int l = 0; l < LIBMESH_DIM; ++l)
190  {
191  _dpk2_dee(k, l, i, j) = (_pk2_tmp(k, l) - _pk2[_qp](k, l)) / ee_pert;
192  _dpk2_dee(k, l, j, i) = (_pk2_tmp(k, l) - _pk2[_qp](k, l)) / ee_pert;
193  }
194  _ee = ee_tmp;
195  }
196 }

Referenced by computePK2StressAndDerivative().

◆ computePK2StressAndDerivative()

void HyperElasticPhaseFieldIsoDamage::computePK2StressAndDerivative ( )
protectedvirtual

This function computes PK2 stress.

Reimplemented from FiniteStrainHyperElasticViscoPlastic.

Definition at line 65 of file HyperElasticPhaseFieldIsoDamage.C.

66 {
68 
69  _save_state = true;
71  _pk2[_qp] = _pk2_tmp;
72 
73  _save_state = false;
74  if (_num_stiffness)
76 
77  if (_num_stiffness)
79 
80  _dce_dfe.zero();
81  for (unsigned int i = 0; i < LIBMESH_DIM; ++i)
82  for (unsigned int j = 0; j < LIBMESH_DIM; ++j)
83  for (unsigned int k = 0; k < LIBMESH_DIM; ++k)
84  {
85  _dce_dfe(i, j, k, i) = _dce_dfe(i, j, k, i) + _fe(k, j);
86  _dce_dfe(i, j, k, j) = _dce_dfe(i, j, k, j) + _fe(k, i);
87  }
88 
90 }

◆ computeQpJacobian()

void HyperElasticPhaseFieldIsoDamage::computeQpJacobian ( )
protectedvirtual

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

Reimplemented from FiniteStrainHyperElasticViscoPlastic.

Definition at line 199 of file HyperElasticPhaseFieldIsoDamage.C.

200 {
202 
203  RankTwoTensor dG0_dce = _dee_dce.innerProductTranspose(_dG0_dee);
204  RankTwoTensor dG0_dfe = _dce_dfe.innerProductTranspose(dG0_dce);
205  RankTwoTensor dG0_df = _dfe_df.innerProductTranspose(dG0_dfe);
206 
207  // 2nd derivative wrt c and strain = 0.0 if we used the previous step's history varible
208  if (_use_current_hist)
209  _d2Fdcdstrain[_qp] =
210  -_df_dstretch_inc.innerProductTranspose(dG0_df) * 2.0 * (1.0 - _c[_qp]) * (1 - _kdamage);
211 
212  _dstress_dc[_qp] = _fe.mixedProductIkJl(_fe) * _dpk2_dc;
213 }

◆ computeQpProperties()

void ComputeStressBase::computeQpProperties ( )
overrideprotectedvirtualinherited

Definition at line 50 of file ComputeStressBase.C.

51 {
53 
54  // Add in extra stress
55  _stress[_qp] += _extra_stress[_qp];
56 }

◆ computeQpStress()

void FiniteStrainHyperElasticViscoPlastic::computeQpStress ( )
protectedvirtualinherited

This function computes the Cauchy stress.

Implements ComputeStressBase.

Definition at line 210 of file FiniteStrainHyperElasticViscoPlastic.C.

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

◆ computeStrength()

bool FiniteStrainHyperElasticViscoPlastic::computeStrength ( )
protectedvirtualinherited

This function call user objects to compute strength.

Definition at line 609 of file FiniteStrainHyperElasticViscoPlastic.C.

610 {
611  Real val = 0;
612  for (unsigned int i = 0; i < _num_strength_uos; ++i)
613  {
614  if (_strength_uo[i]->computeValue(_qp, val))
615  (*_strength_prop[i])[_qp] = val;
616  else
617  return false;
618  }
619  return true;
620 }

Referenced by FiniteStrainHyperElasticViscoPlastic::computeFlowRateResidual().

◆ computeStrengthDerivatives()

void FiniteStrainHyperElasticViscoPlastic::computeStrengthDerivatives ( )
protectedinherited

This function call user objects to compute dstrength/dintvar.

Definition at line 671 of file FiniteStrainHyperElasticViscoPlastic.C.

672 {
673  Real val = 0;
674 
675  for (unsigned int i = 0; i < _num_strength_uos; ++i)
676  for (unsigned int j = 0; j < _num_int_var_uos; ++j)
677  {
678  _strength_uo[i]->computeDerivative(_qp, _int_var_uo_names[j], val);
679  _dstrength_dintvar(i, j) = val;
680  }
681 }

Referenced by FiniteStrainHyperElasticViscoPlastic::computeFlowRateJacobian().

◆ initJacobianVariables()

void FiniteStrainHyperElasticViscoPlastic::initJacobianVariables ( )
protectedvirtualinherited

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

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

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

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

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

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

Referenced by FiniteStrainHyperElasticViscoPlastic::initUOVariables().

◆ initQpStatefulProperties()

void FiniteStrainHyperElasticViscoPlastic::initQpStatefulProperties ( )
protectedvirtualinherited

Initializes state.

Reimplemented from ComputeStressBase.

Definition at line 185 of file FiniteStrainHyperElasticViscoPlastic.C.

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

◆ initUOVariables()

void FiniteStrainHyperElasticViscoPlastic::initUOVariables ( )
protectedvirtualinherited

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

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

Referenced by FiniteStrainHyperElasticViscoPlastic::initUOVariables().

◆ postSolveFlowrate()

void FiniteStrainHyperElasticViscoPlastic::postSolveFlowrate ( )
protectedvirtualinherited

Update state for output (Inside substepping)

Definition at line 364 of file FiniteStrainHyperElasticViscoPlastic.C.

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

Referenced by FiniteStrainHyperElasticViscoPlastic::solveQp().

◆ postSolveQp()

void FiniteStrainHyperElasticViscoPlastic::postSolveQp ( )
protectedvirtualinherited

Update state for output (Outside substepping)

Definition at line 282 of file FiniteStrainHyperElasticViscoPlastic.C.

283 {
284  recoverOldState();
285 
286  _stress[_qp] = _fe * _pk2[_qp] * _fe.transpose() / _fe.det();
287  _fp[_qp] = _fp_tmp_inv.inverse();
288 
290 }

Referenced by FiniteStrainHyperElasticViscoPlastic::computeQpStress().

◆ preSolveFlowrate()

void FiniteStrainHyperElasticViscoPlastic::preSolveFlowrate ( )
protectedvirtualinherited

Sets state for solve (Inside substepping)

Definition at line 301 of file FiniteStrainHyperElasticViscoPlastic.C.

302 {
303  for (unsigned int i = 0; i < _num_flow_rate_uos; ++i)
304  {
305  _flow_rate(i) = 0.0;
306  (*_flow_rate_prop[i])[_qp] = 0.0;
307  }
308 
309  for (unsigned int i = 0; i < _num_int_var_uos; ++i)
310  (*_int_var_stateful_prop[i])[_qp] = (*_int_var_stateful_prop_old[i])[_qp];
311 
314 }

Referenced by FiniteStrainHyperElasticViscoPlastic::solveQp().

◆ preSolveQp()

void FiniteStrainHyperElasticViscoPlastic::preSolveQp ( )
protectedvirtualinherited

Sets state for solve.

Definition at line 258 of file FiniteStrainHyperElasticViscoPlastic.C.

259 {
260  _fp_tmp_old_inv = _fp_old[_qp].inverse();
261 
262  // TODO: remove this nasty const_cast if you can figure out how
263  for (unsigned int i = 0; i < _num_int_var_uos; ++i)
264  (*_int_var_stateful_prop[i])[_qp] =
265  const_cast<MaterialProperty<Real> &>(*_int_var_stateful_prop_old[i])[_qp] = _int_var_old[i];
266 
268 }

Referenced by FiniteStrainHyperElasticViscoPlastic::computeQpStress().

◆ recoverOldState()

void FiniteStrainHyperElasticViscoPlastic::recoverOldState ( )
protectedvirtualinherited

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

Definition at line 293 of file FiniteStrainHyperElasticViscoPlastic.C.

294 {
295  // TODO: remove this nasty const_cast if you can figure out how
296  for (unsigned int i = 0; i < _num_int_var_uos; ++i)
297  const_cast<MaterialProperty<Real> &>(*_int_var_stateful_prop_old[i])[_qp] = _int_var_old[i];
298 }

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

252 {
253  for (unsigned int i = 0; i < _num_int_var_uos; ++i)
255 }

Referenced by FiniteStrainHyperElasticViscoPlastic::computeQpStress().

◆ solveFlowrate()

bool FiniteStrainHyperElasticViscoPlastic::solveFlowrate ( )
protectedvirtualinherited

Solve for flow rate and state.

Definition at line 317 of file FiniteStrainHyperElasticViscoPlastic.C.

318 {
319  Real resid0, rnorm;
320  unsigned int iter = 0;
321 
322 #ifdef DEBUG
323  std::vector<Real> rnormst(_maxiters + 1), flowratest(_maxiters + 1);
324 #endif
325 
327  return false;
328 
329  rnorm = computeNorm(_resid.get_values());
330  resid0 = rnorm;
331 
332 #ifdef DEBUG
333  rnormst[iter] = rnorm;
334  flowratest[iter] = computeNorm(_flow_rate.get_values());
335 #endif
336 
337  while (rnorm > _resid_abs_tol && rnorm > _resid_rel_tol * resid0 && iter < _maxiters)
338  {
340 
341  updateFlowRate();
342 
344 
346  return false;
347 
348  rnorm = computeNorm(_resid.get_values());
349  iter++;
350 
351 #ifdef DEBUG
352  rnormst[iter] = rnorm;
353  flowratest[iter] = computeNorm(_flow_rate.get_values());
354 #endif
355  }
356 
357  if (iter == _maxiters && rnorm > _resid_abs_tol && rnorm > _resid_rel_tol * resid0)
358  return false;
359 
360  return true;
361 }

Referenced by FiniteStrainHyperElasticViscoPlastic::solveQp().

◆ solveQp()

bool FiniteStrainHyperElasticViscoPlastic::solveQp ( )
protectedvirtualinherited

Solve state.

Definition at line 271 of file FiniteStrainHyperElasticViscoPlastic.C.

272 {
274  if (!solveFlowrate())
275  return false;
277 
278  return true;
279 }

Referenced by FiniteStrainHyperElasticViscoPlastic::computeQpStress().

◆ updateFlowRate()

void FiniteStrainHyperElasticViscoPlastic::updateFlowRate ( )
protectedvirtualinherited

Update flow rate.

Definition at line 539 of file FiniteStrainHyperElasticViscoPlastic.C.

540 {
541  _jac.lu_solve(_resid, _dflow_rate);
543 
544  for (unsigned int i = 0; i < _num_flow_rate_uos; ++i)
545  (*_flow_rate_prop[i])[_qp] = _flow_rate(i);
546 }

Referenced by FiniteStrainHyperElasticViscoPlastic::solveFlowrate().

◆ validParams()

InputParameters HyperElasticPhaseFieldIsoDamage::validParams ( )
static

Definition at line 18 of file HyperElasticPhaseFieldIsoDamage.C.

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

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 45 of file ComputeStressBase.h.

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

◆ _c

const VariableValue& HyperElasticPhaseFieldIsoDamage::_c
protected

Compupled damage variable.

Definition at line 63 of file HyperElasticPhaseFieldIsoDamage.h.

Referenced by computeDamageStress(), and computeQpJacobian().

◆ _ce

MaterialProperty<RankTwoTensor>& FiniteStrainHyperElasticViscoPlastic::_ce
protectedinherited

◆ _d2Fdc2

MaterialProperty<Real>& HyperElasticPhaseFieldIsoDamage::_d2Fdc2
protected

Definition at line 76 of file HyperElasticPhaseFieldIsoDamage.h.

Referenced by computeDamageStress().

◆ _d2Fdcdstrain

MaterialProperty<RankTwoTensor>& HyperElasticPhaseFieldIsoDamage::_d2Fdcdstrain
protected

Definition at line 77 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 75 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 69 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 69 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 67 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 202 of file FiniteStrainHyperElasticViscoPlastic.h.

◆ _etens

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

Definition at line 71 of file HyperElasticPhaseFieldIsoDamage.h.

Referenced by computeDamageStress().

◆ _extra_stress

const MaterialProperty<RankTwoTensor>& ComputeStressBase::_extra_stress
protectedinherited

Extra stress tensor.

Definition at line 55 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 74 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 55 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 80 of file HyperElasticPhaseFieldIsoDamage.h.

Referenced by computeDamageStress().

◆ _hist_old

const MaterialProperty<Real>& HyperElasticPhaseFieldIsoDamage::_hist_old
protected

Old value of history variable.

Definition at line 83 of file HyperElasticPhaseFieldIsoDamage.h.

Referenced by computeDamageStress().

◆ _initial_stress_fcn

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

initial stress components

Definition at line 58 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 49 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 53 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 166 of file FiniteStrainHyperElasticViscoPlastic.h.

Referenced by FiniteStrainHyperElasticViscoPlastic::computeQpStress().

◆ _maxiters

unsigned int FiniteStrainHyperElasticViscoPlastic::_maxiters
protectedinherited

Maximum number of iterations.

Definition at line 164 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 47 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 61 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 160 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 162 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 65 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 50 of file ComputeStressBase.h.

Referenced by ComputeMultipleInelasticCosseratStress::computeAdmissibleState(), ComputeMultipleInelasticStress::computeAdmissibleState(), ComputeStressBase::computeQpProperties(), ComputeStrainIncrementBasedStress::computeQpStress(), ComputeLinearElasticStress::computeQpStress(), ComputeDamageStress::computeQpStress(), ComputeFiniteStrainElasticStress::computeQpStress(), ComputeCosseratLinearElasticStress::computeQpStress(), ComputeSmearedCrackingStress::computeQpStress(), ComputeLinearElasticPFFractureStress::computeQpStress(), FiniteStrainPlasticMaterial::computeQpStress(), ComputeMultiPlasticityStress::computeQpStress(), ComputeLinearViscoelasticStress::computeQpStress(), ComputeMultipleInelasticStress::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 51 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 59 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 57 of file HyperElasticPhaseFieldIsoDamage.h.

Referenced by computeNumStiffness().


The documentation for this class was generated from the following files:
FiniteStrainHyperElasticViscoPlastic::_int_var_uo
std::vector< const HEVPInternalVarUOBase * > _int_var_uo
Internal variable user objects.
Definition: FiniteStrainHyperElasticViscoPlastic.h:191
FiniteStrainHyperElasticViscoPlastic::solveFlowrate
virtual bool solveFlowrate()
Solve for flow rate and state.
Definition: FiniteStrainHyperElasticViscoPlastic.C:317
FiniteStrainHyperElasticViscoPlastic::_ce
MaterialProperty< RankTwoTensor > & _ce
Definition: FiniteStrainHyperElasticViscoPlastic.h:199
HyperElasticPhaseFieldIsoDamage::_num_stiffness
bool _num_stiffness
Flag to compute numerical stiffness.
Definition: HyperElasticPhaseFieldIsoDamage.h:47
FiniteStrainHyperElasticViscoPlastic::_fp_tmp_inv
RankTwoTensor _fp_tmp_inv
Definition: FiniteStrainHyperElasticViscoPlastic.h:217
FiniteStrainHyperElasticViscoPlastic::computeNorm
virtual Real computeNorm(const std::vector< Real > &)
Computes norm of residual vector.
Definition: FiniteStrainHyperElasticViscoPlastic.C:530
FiniteStrainHyperElasticViscoPlastic::_dflowrate_dstrength
DenseMatrix< Real > _dflowrate_dstrength
Definition: FiniteStrainHyperElasticViscoPlastic.h:242
FiniteStrainHyperElasticViscoPlastic::_fp_old
const MaterialProperty< RankTwoTensor > & _fp_old
Definition: FiniteStrainHyperElasticViscoPlastic.h:198
HyperElasticPhaseFieldIsoDamage::_hist
MaterialProperty< Real > & _hist
History variable that prevents crack healing, declared in this material.
Definition: HyperElasticPhaseFieldIsoDamage.h:80
FiniteStrainHyperElasticViscoPlastic::updateFlowRate
virtual void updateFlowRate()
Update flow rate.
Definition: FiniteStrainHyperElasticViscoPlastic.C:539
FiniteStrainHyperElasticViscoPlastic::_dintvar_dintvar_x
DenseVector< Real > _dintvar_dintvar_x
Definition: FiniteStrainHyperElasticViscoPlastic.h:243
FiniteStrainHyperElasticViscoPlastic::postSolveQp
virtual void postSolveQp()
Update state for output (Outside substepping)
Definition: FiniteStrainHyperElasticViscoPlastic.C:282
ComputeStressBase::_stress
MaterialProperty< RankTwoTensor > & _stress
Stress material property.
Definition: ComputeStressBase.h:50
FiniteStrainHyperElasticViscoPlastic::_fp_tmp_old_inv
RankTwoTensor _fp_tmp_old_inv
Definition: FiniteStrainHyperElasticViscoPlastic.h:217
FiniteStrainHyperElasticViscoPlastic::_dflow_rate
DenseVector< Real > _dflow_rate
Definition: FiniteStrainHyperElasticViscoPlastic.h:229
FiniteStrainHyperElasticViscoPlastic::_dfe_df
RankFourTensor _dfe_df
Definition: FiniteStrainHyperElasticViscoPlastic.h:221
FiniteStrainHyperElasticViscoPlastic::computeFlowDirection
virtual bool computeFlowDirection()
Calls user objects to compute flow directions.
Definition: FiniteStrainHyperElasticViscoPlastic.C:439
FiniteStrainHyperElasticViscoPlastic::_num_int_var_rate_uos
unsigned int _num_int_var_rate_uos
Number of internal variable rate user objects.
Definition: FiniteStrainHyperElasticViscoPlastic.h:184
FiniteStrainHyperElasticViscoPlastic::_dintvarrate_dflowrate
std::vector< DenseVector< Real > > _dintvarrate_dflowrate
Jacobian variables.
Definition: FiniteStrainHyperElasticViscoPlastic.h:234
ComputeStressBase::_extra_stress
const MaterialProperty< RankTwoTensor > & _extra_stress
Extra stress tensor.
Definition: ComputeStressBase.h:55
FiniteStrainHyperElasticViscoPlastic::_strength_uo
std::vector< const HEVPStrengthUOBase * > _strength_uo
Strength user objects.
Definition: FiniteStrainHyperElasticViscoPlastic.h:189
FiniteStrainHyperElasticViscoPlastic::computeElasticStrain
virtual void computeElasticStrain()
Computes elastic Lagrangian strain.
Definition: FiniteStrainHyperElasticViscoPlastic.C:482
FiniteStrainHyperElasticViscoPlastic::computeIntVarRateDerivatives
virtual void computeIntVarRateDerivatives()
This function call user objects to compute dintvar_rate/dintvar and dintvarrate/dflowrate.
Definition: FiniteStrainHyperElasticViscoPlastic.C:623
FiniteStrainHyperElasticViscoPlastic::_dstrength_dintvar
DenseMatrix< Real > _dstrength_dintvar
Definition: FiniteStrainHyperElasticViscoPlastic.h:241
FiniteStrainHyperElasticViscoPlastic::preSolveFlowrate
virtual void preSolveFlowrate()
Sets state for solve (Inside substepping)
Definition: FiniteStrainHyperElasticViscoPlastic.C:301
pow
ExpressionBuilder::EBTerm pow(const ExpressionBuilder::EBTerm &left, T exponent)
Definition: ExpressionBuilder.h:673
FiniteStrainHyperElasticViscoPlastic::_df_dstretch_inc
RankFourTensor _df_dstretch_inc
Definition: FiniteStrainHyperElasticViscoPlastic.h:222
FiniteStrainHyperElasticViscoPlastic::computeQpJacobian
virtual void computeQpJacobian()
This function computes the Jacobian.
Definition: FiniteStrainHyperElasticViscoPlastic.C:549
FiniteStrainHyperElasticViscoPlastic::_dintvar_dflowrate_tmp
std::vector< DenseVector< Real > > _dintvar_dflowrate_tmp
Definition: FiniteStrainHyperElasticViscoPlastic.h:235
HyperElasticPhaseFieldIsoDamage::_dG0_dee
RankTwoTensor _dG0_dee
Definition: HyperElasticPhaseFieldIsoDamage.h:69
FiniteStrainHyperElasticViscoPlastic::saveOldState
virtual void saveOldState()
This function saves the old stateful properties that is modified during sub stepping.
Definition: FiniteStrainHyperElasticViscoPlastic.C:251
FiniteStrainHyperElasticViscoPlastic::_dintvar_dflowrate
DenseMatrix< Real > _dintvar_dflowrate
Definition: FiniteStrainHyperElasticViscoPlastic.h:240
FiniteStrainHyperElasticViscoPlastic::_dpk2_dflowrate
std::vector< RankTwoTensor > _dpk2_dflowrate
Definition: FiniteStrainHyperElasticViscoPlastic.h:226
HyperElasticPhaseFieldIsoDamage::_pk2_tmp
RankTwoTensor _pk2_tmp
Definition: HyperElasticPhaseFieldIsoDamage.h:69
FiniteStrainHyperElasticViscoPlastic::_dpk2_dce
RankFourTensor _dpk2_dce
Definition: FiniteStrainHyperElasticViscoPlastic.h:220
FiniteStrainHyperElasticViscoPlastic::computeIntVarRates
virtual bool computeIntVarRates()
This function call user objects to calculate rate of internal variables.
Definition: FiniteStrainHyperElasticViscoPlastic.C:581
FiniteStrainHyperElasticViscoPlastic::validParams
static InputParameters validParams()
Definition: FiniteStrainHyperElasticViscoPlastic.C:18
FiniteStrainHyperElasticViscoPlastic::_dintvar_dintvar
DenseMatrix< Real > _dintvar_dintvar
Definition: FiniteStrainHyperElasticViscoPlastic.h:239
FiniteStrainHyperElasticViscoPlastic::_flow_rate_uo
std::vector< const HEVPFlowRateUOBase * > _flow_rate_uo
Flow rate user objects.
Definition: FiniteStrainHyperElasticViscoPlastic.h:187
FiniteStrainHyperElasticViscoPlastic::FiniteStrainHyperElasticViscoPlastic
FiniteStrainHyperElasticViscoPlastic(const InputParameters &parameters)
Definition: FiniteStrainHyperElasticViscoPlastic.C:45
FiniteStrainHyperElasticViscoPlastic::_flow_rate_prop
std::vector< MaterialProperty< Real > * > _flow_rate_prop
Definition: FiniteStrainHyperElasticViscoPlastic.h:209
HyperElasticPhaseFieldIsoDamage::_hist_old
const MaterialProperty< Real > & _hist_old
Old value of history variable.
Definition: HyperElasticPhaseFieldIsoDamage.h:83
FiniteStrainHyperElasticViscoPlastic::_jac
DenseMatrix< Real > _jac
Definition: FiniteStrainHyperElasticViscoPlastic.h:244
ComputeStressBase::computeQpStress
virtual void computeQpStress()=0
Compute the stress and store it in the _stress material property for the current quadrature point.
FiniteStrainHyperElasticViscoPlastic::_elasticity_tensor
const MaterialProperty< RankFourTensor > & _elasticity_tensor
Elasticity tensor material property.
Definition: FiniteStrainHyperElasticViscoPlastic.h:204
FiniteStrainHyperElasticViscoPlastic::_maxiters
unsigned int _maxiters
Maximum number of iterations.
Definition: FiniteStrainHyperElasticViscoPlastic.h:164
FiniteStrainHyperElasticViscoPlastic::initNumUserObjects
void initNumUserObjects(const std::vector< UserObjectName > &, unsigned int &)
This function calculates the number of each user object type.
Definition: FiniteStrainHyperElasticViscoPlastic.C:112
FiniteStrainHyperElasticViscoPlastic::computeFlowRateResidual
virtual bool computeFlowRateResidual()
Computes flow rate residual vector.
Definition: FiniteStrainHyperElasticViscoPlastic.C:375
HyperElasticPhaseFieldIsoDamage::_use_current_hist
bool _use_current_hist
Use current value of history variable.
Definition: HyperElasticPhaseFieldIsoDamage.h:51
HyperElasticPhaseFieldIsoDamage::_save_state
bool _save_state
Flag to save couple material properties.
Definition: HyperElasticPhaseFieldIsoDamage.h:65
HyperElasticPhaseFieldIsoDamage::_dstress_dc
MaterialProperty< RankTwoTensor > & _dstress_dc
Definition: HyperElasticPhaseFieldIsoDamage.h:67
FiniteStrainHyperElasticViscoPlastic::preSolveQp
virtual void preSolveQp()
Sets state for solve.
Definition: FiniteStrainHyperElasticViscoPlastic.C:258
FiniteStrainHyperElasticViscoPlastic::postSolveFlowrate
virtual void postSolveFlowrate()
Update state for output (Inside substepping)
Definition: FiniteStrainHyperElasticViscoPlastic.C:364
FiniteStrainHyperElasticViscoPlastic::_dee_dce
RankFourTensor _dee_dce
Definition: FiniteStrainHyperElasticViscoPlastic.h:221
HyperElasticPhaseFieldIsoDamage::_zero_pert
Real _zero_pert
Perturbation value for near zero or zero strain components.
Definition: HyperElasticPhaseFieldIsoDamage.h:59
HyperElasticPhaseFieldIsoDamage::_d2Fdcdstrain
MaterialProperty< RankTwoTensor > & _d2Fdcdstrain
Definition: HyperElasticPhaseFieldIsoDamage.h:77
FiniteStrainHyperElasticViscoPlastic::_flow_rate
DenseVector< Real > _flow_rate
Definition: FiniteStrainHyperElasticViscoPlastic.h:230
FiniteStrainHyperElasticViscoPlastic::computeIntVar
virtual bool computeIntVar()
This function call user objects to integrate internal variables.
Definition: FiniteStrainHyperElasticViscoPlastic.C:595
FiniteStrainHyperElasticViscoPlastic::_dpk2_dfpinv
RankFourTensor _dpk2_dfpinv
Definition: FiniteStrainHyperElasticViscoPlastic.h:220
FiniteStrainHyperElasticViscoPlastic::_int_var_rate_uo
std::vector< const HEVPInternalVarRateUOBase * > _int_var_rate_uo
Internal variable rate user objects.
Definition: FiniteStrainHyperElasticViscoPlastic.h:193
FiniteStrainHyperElasticViscoPlastic::_int_var_uo_names
std::vector< UserObjectName > _int_var_uo_names
Names of internal variable user objects.
Definition: FiniteStrainHyperElasticViscoPlastic.h:173
FiniteStrainHyperElasticViscoPlastic::_flow_rate_uo_names
std::vector< UserObjectName > _flow_rate_uo_names
Names of flow rate user objects.
Definition: FiniteStrainHyperElasticViscoPlastic.h:169
HyperElasticPhaseFieldIsoDamage::computeNumStiffness
virtual void computeNumStiffness()
This function computes numerical stiffness.
Definition: HyperElasticPhaseFieldIsoDamage.C:172
FiniteStrainHyperElasticViscoPlastic::_pk2_prop_name
std::string _pk2_prop_name
Definition: FiniteStrainHyperElasticViscoPlastic.h:195
ComputeStressBase::_base_name
const std::string _base_name
Base name prepended to all material property names to allow for multi-material systems.
Definition: ComputeStressBase.h:45
FiniteStrainHyperElasticViscoPlastic::_dce_dfe
RankFourTensor _dce_dfe
Definition: FiniteStrainHyperElasticViscoPlastic.h:221
FiniteStrainHyperElasticViscoPlastic::computeStrength
virtual bool computeStrength()
This function call user objects to compute strength.
Definition: FiniteStrainHyperElasticViscoPlastic.C:609
FiniteStrainHyperElasticViscoPlastic::computeDeeDce
virtual void computeDeeDce()
Computes derivative of elastic strain w.r.t elastic Right Cauchy Green Tensor.
Definition: FiniteStrainHyperElasticViscoPlastic.C:489
FiniteStrainHyperElasticViscoPlastic::_num_strength_uos
unsigned int _num_strength_uos
Number of strength user objects.
Definition: FiniteStrainHyperElasticViscoPlastic.h:180
FiniteStrainHyperElasticViscoPlastic::_dfgrd_tmp
RankTwoTensor _dfgrd_tmp
Definition: FiniteStrainHyperElasticViscoPlastic.h:216
name
const std::string name
Definition: Setup.h:21
FiniteStrainHyperElasticViscoPlastic::_int_var_old
std::vector< Real > _int_var_old
Definition: FiniteStrainHyperElasticViscoPlastic.h:214
HyperElasticPhaseFieldIsoDamage::_dpk2_dc
RankTwoTensor _dpk2_dc
Definition: HyperElasticPhaseFieldIsoDamage.h:69
FiniteStrainHyperElasticViscoPlastic::recoverOldState
virtual void recoverOldState()
This function restores the the old stateful properties after a successful solve.
Definition: FiniteStrainHyperElasticViscoPlastic.C:293
FiniteStrainHyperElasticViscoPlastic::_dpk2_dfe
RankFourTensor _dpk2_dfe
Definition: FiniteStrainHyperElasticViscoPlastic.h:220
HyperElasticPhaseFieldIsoDamage::_dFdc
MaterialProperty< Real > & _dFdc
Definition: HyperElasticPhaseFieldIsoDamage.h:75
FiniteStrainHyperElasticViscoPlastic::_dflowrate_dpk2
std::vector< RankTwoTensor > _dflowrate_dpk2
Definition: FiniteStrainHyperElasticViscoPlastic.h:225
FiniteStrainHyperElasticViscoPlastic::_deformation_gradient
const MaterialProperty< RankTwoTensor > & _deformation_gradient
Definition: FiniteStrainHyperElasticViscoPlastic.h:205
FiniteStrainHyperElasticViscoPlastic::solveQp
virtual bool solveQp()
Solve state.
Definition: FiniteStrainHyperElasticViscoPlastic.C:271
FiniteStrainHyperElasticViscoPlastic::_num_int_var_uos
unsigned int _num_int_var_uos
Number of internal variable user objects.
Definition: FiniteStrainHyperElasticViscoPlastic.h:182
FiniteStrainHyperElasticViscoPlastic::computeIntVarDerivatives
virtual void computeIntVarDerivatives()
This function call user objects to compute dintvar/dintvar_rate and dintvar/dflowrate.
Definition: FiniteStrainHyperElasticViscoPlastic.C:636
FiniteStrainHyperElasticViscoPlastic::_dfe_dfpinv
RankFourTensor _dfe_dfpinv
Definition: FiniteStrainHyperElasticViscoPlastic.h:220
FiniteStrainHyperElasticViscoPlastic::initPropOld
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...
Definition: FiniteStrainHyperElasticViscoPlastic.C:131
FiniteStrainHyperElasticViscoPlastic::_strength_prop
std::vector< MaterialProperty< Real > * > _strength_prop
Definition: FiniteStrainHyperElasticViscoPlastic.h:210
FiniteStrainHyperElasticViscoPlastic::_int_var_stateful_prop_old
std::vector< const MaterialProperty< Real > * > _int_var_stateful_prop_old
Definition: FiniteStrainHyperElasticViscoPlastic.h:212
FiniteStrainHyperElasticViscoPlastic::_max_substep_iter
unsigned int _max_substep_iter
Maximum number of substep iterations.
Definition: FiniteStrainHyperElasticViscoPlastic.h:166
HyperElasticPhaseFieldIsoDamage::_pert_val
Real _pert_val
Perturbation value for strain components.
Definition: HyperElasticPhaseFieldIsoDamage.h:61
HyperElasticPhaseFieldIsoDamage::_etens
std::vector< RankTwoTensor > _etens
Definition: HyperElasticPhaseFieldIsoDamage.h:71
FiniteStrainHyperElasticViscoPlastic::_ee
RankTwoTensor _ee
Definition: FiniteStrainHyperElasticViscoPlastic.h:218
FiniteStrainHyperElasticViscoPlastic::initUserObjects
void initUserObjects(const std::vector< UserObjectName > &, unsigned int, std::vector< const T * > &)
This function initializes user objects.
Definition: FiniteStrainHyperElasticViscoPlastic.C:143
HyperElasticPhaseFieldIsoDamage::_l
const MaterialProperty< Real > & _l
Material property defining crack width, declared elsewhere.
Definition: HyperElasticPhaseFieldIsoDamage.h:53
FiniteStrainHyperElasticViscoPlastic::computePK2StressAndDerivative
virtual void computePK2StressAndDerivative()
Computes PK2 stress and derivative w.r.t elastic Right Cauchy Green Tensor.
Definition: FiniteStrainHyperElasticViscoPlastic.C:464
FiniteStrainHyperElasticViscoPlastic::_flow_dirn
std::vector< RankTwoTensor > _flow_dirn
Definition: FiniteStrainHyperElasticViscoPlastic.h:224
FiniteStrainHyperElasticViscoPlastic::_num_flow_rate_uos
unsigned int _num_flow_rate_uos
Number of flow rate user objects.
Definition: FiniteStrainHyperElasticViscoPlastic.h:178
FiniteStrainHyperElasticViscoPlastic::_dfpinv_dflowrate
std::vector< RankTwoTensor > _dfpinv_dflowrate
Definition: FiniteStrainHyperElasticViscoPlastic.h:227
FiniteStrainHyperElasticViscoPlastic::_fe
RankTwoTensor _fe
Definition: FiniteStrainHyperElasticViscoPlastic.h:218
FiniteStrainHyperElasticViscoPlastic::computeElasticRightCauchyGreenTensor
virtual void computeElasticRightCauchyGreenTensor()
Computes elastic Right Cauchy Green Tensor.
Definition: FiniteStrainHyperElasticViscoPlastic.C:499
HyperElasticPhaseFieldIsoDamage::_gc
const MaterialProperty< Real > & _gc
Material property defining gc parameter, declared elsewhere.
Definition: HyperElasticPhaseFieldIsoDamage.h:55
HyperElasticPhaseFieldIsoDamage::_F
MaterialProperty< Real > & _F
Elastic energy and derivatives, declared in this material.
Definition: HyperElasticPhaseFieldIsoDamage.h:74
FiniteStrainHyperElasticViscoPlastic::initProp
void initProp(const std::vector< UserObjectName > &, unsigned int, std::vector< MaterialProperty< T > * > &)
This function initializes properties for each user object.
Definition: FiniteStrainHyperElasticViscoPlastic.C:120
FiniteStrainHyperElasticViscoPlastic::_strength_uo_names
std::vector< UserObjectName > _strength_uo_names
Names of strength user objects.
Definition: FiniteStrainHyperElasticViscoPlastic.h:171
FiniteStrainHyperElasticViscoPlastic::_deformation_gradient_old
const MaterialProperty< RankTwoTensor > & _deformation_gradient_old
Definition: FiniteStrainHyperElasticViscoPlastic.h:206
FiniteStrainHyperElasticViscoPlastic::computeFlowRateJacobian
virtual void computeFlowRateJacobian()
Computes flow rate Jacobian matrix.
Definition: FiniteStrainHyperElasticViscoPlastic.C:401
FiniteStrainHyperElasticViscoPlastic::_resid
DenseVector< Real > _resid
Definition: FiniteStrainHyperElasticViscoPlastic.h:231
FiniteStrainHyperElasticViscoPlastic::computeDpk2Dfpinv
virtual void computeDpk2Dfpinv()
Computes derivative of PK2 stress wrt inverse of plastic deformation gradient.
Definition: FiniteStrainHyperElasticViscoPlastic.C:519
RankTwoTensorTempl< Real >
HyperElasticPhaseFieldIsoDamage::_dpk2_dee
RankFourTensor _dpk2_dee
Definition: HyperElasticPhaseFieldIsoDamage.h:70
FiniteStrainHyperElasticViscoPlastic::computeElasticPlasticDeformGrad
virtual void computeElasticPlasticDeformGrad()
Computes elastic and plastic deformation gradients.
Definition: FiniteStrainHyperElasticViscoPlastic.C:505
HyperElasticPhaseFieldIsoDamage::_c
const VariableValue & _c
Compupled damage variable.
Definition: HyperElasticPhaseFieldIsoDamage.h:63
FiniteStrainHyperElasticViscoPlastic::_resid_abs_tol
Real _resid_abs_tol
Absolute tolerance for residual convergence check.
Definition: FiniteStrainHyperElasticViscoPlastic.h:160
FiniteStrainHyperElasticViscoPlastic::computeFlowRateFunction
virtual bool computeFlowRateFunction()
Calls user objects to compute flow rates.
Definition: FiniteStrainHyperElasticViscoPlastic.C:450
FiniteStrainHyperElasticViscoPlastic::_dt_substep
Real _dt_substep
Definition: FiniteStrainHyperElasticViscoPlastic.h:246
FiniteStrainHyperElasticViscoPlastic::_int_var_rate_uo_names
std::vector< UserObjectName > _int_var_rate_uo_names
Names of internal variable rate user objects.
Definition: FiniteStrainHyperElasticViscoPlastic.h:175
FiniteStrainHyperElasticViscoPlastic::_dintvarrate_dintvar
DenseMatrix< Real > _dintvarrate_dintvar
Definition: FiniteStrainHyperElasticViscoPlastic.h:237
FiniteStrainHyperElasticViscoPlastic::_pk2
MaterialProperty< RankTwoTensor > & _pk2
Definition: FiniteStrainHyperElasticViscoPlastic.h:196
FiniteStrainHyperElasticViscoPlastic::_resid_rel_tol
Real _resid_rel_tol
Relative tolerance for residual convergence check.
Definition: FiniteStrainHyperElasticViscoPlastic.h:162
HyperElasticPhaseFieldIsoDamage::computeDamageStress
virtual void computeDamageStress()
This function computes PK2 stress modified to account for damage Computes numerical stiffness if flag...
Definition: HyperElasticPhaseFieldIsoDamage.C:93
FiniteStrainHyperElasticViscoPlastic::_fp
MaterialProperty< RankTwoTensor > & _fp
Definition: FiniteStrainHyperElasticViscoPlastic.h:197
HyperElasticPhaseFieldIsoDamage::_zero_tol
Real _zero_tol
Used in numerical stiffness calculation to check near zero values.
Definition: HyperElasticPhaseFieldIsoDamage.h:57
HyperElasticPhaseFieldIsoDamage::_kdamage
Real _kdamage
Small stiffness of completely damaged material point.
Definition: HyperElasticPhaseFieldIsoDamage.h:49
FiniteStrainHyperElasticViscoPlastic::_dintvar_dintvarrate
DenseMatrix< Real > _dintvar_dintvarrate
Definition: FiniteStrainHyperElasticViscoPlastic.h:238
FiniteStrainHyperElasticViscoPlastic::computeStrengthDerivatives
void computeStrengthDerivatives()
This function call user objects to compute dstrength/dintvar.
Definition: FiniteStrainHyperElasticViscoPlastic.C:671
HyperElasticPhaseFieldIsoDamage::_d2Fdc2
MaterialProperty< Real > & _d2Fdc2
Definition: HyperElasticPhaseFieldIsoDamage.h:76
FiniteStrainHyperElasticViscoPlastic::_int_var_stateful_prop
std::vector< MaterialProperty< Real > * > _int_var_stateful_prop
Definition: FiniteStrainHyperElasticViscoPlastic.h:211
FiniteStrainHyperElasticViscoPlastic::_int_var_rate_prop
std::vector< MaterialProperty< Real > * > _int_var_rate_prop
Definition: FiniteStrainHyperElasticViscoPlastic.h:213