#include <ComputeSimoHughesJ2PlasticityStress.h>
Public Types | |
typedef DerivativeMaterialPropertyNameInterface::SymbolName | SymbolName |
Public Member Functions | |
ComputeSimoHughesJ2PlasticityStress (const InputParameters ¶meters) | |
virtual void | initialSetup () override |
const GenericMaterialProperty< U, is_ad > & | getDefaultMaterialProperty (const std::string &name) |
const GenericMaterialProperty< U, is_ad > & | getDefaultMaterialPropertyByName (const std::string &name) |
void | validateDerivativeMaterialPropertyBase (const std::string &base) |
const MaterialPropertyName | derivativePropertyName (const MaterialPropertyName &base, const std::vector< SymbolName > &c) const |
const MaterialPropertyName | derivativePropertyNameFirst (const MaterialPropertyName &base, const SymbolName &c1) const |
const MaterialPropertyName | derivativePropertyNameSecond (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2) const |
const MaterialPropertyName | derivativePropertyNameThird (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2, const SymbolName &c3) const |
GenericMaterialProperty< U, is_ad > & | declarePropertyDerivative (const std::string &base, const std::vector< VariableName > &c) |
GenericMaterialProperty< U, is_ad > & | declarePropertyDerivative (const std::string &base, const std::vector< SymbolName > &c) |
GenericMaterialProperty< U, is_ad > & | declarePropertyDerivative (const std::string &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="") |
GenericMaterialProperty< U, is_ad > & | declarePropertyDerivative (const std::string &base, const std::vector< VariableName > &c) |
GenericMaterialProperty< U, is_ad > & | declarePropertyDerivative (const std::string &base, const std::vector< SymbolName > &c) |
GenericMaterialProperty< U, is_ad > & | declarePropertyDerivative (const std::string &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="") |
const GenericMaterialProperty< U, is_ad > & | getMaterialPropertyDerivative (const std::string &base, const std::vector< VariableName > &c) |
const GenericMaterialProperty< U, is_ad > & | getMaterialPropertyDerivative (const std::string &base, const std::vector< SymbolName > &c) |
const GenericMaterialProperty< U, is_ad > & | getMaterialPropertyDerivative (const std::string &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="") |
const GenericMaterialProperty< U, is_ad > & | getMaterialPropertyDerivative (const std::string &base, const SymbolName &c1, unsigned int v2, unsigned int v3=libMesh::invalid_uint) |
const GenericMaterialProperty< U, is_ad > & | getMaterialPropertyDerivative (const std::string &base, unsigned int v1, unsigned int v2=libMesh::invalid_uint, unsigned int v3=libMesh::invalid_uint) |
const GenericMaterialProperty< U, is_ad > & | getMaterialPropertyDerivative (const std::string &base, const std::vector< VariableName > &c) |
const GenericMaterialProperty< U, is_ad > & | getMaterialPropertyDerivative (const std::string &base, const std::vector< SymbolName > &c) |
const GenericMaterialProperty< U, is_ad > & | getMaterialPropertyDerivative (const std::string &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="") |
const GenericMaterialProperty< U, is_ad > & | getMaterialPropertyDerivative (const std::string &base, const SymbolName &c1, unsigned int v2, unsigned int v3=libMesh::invalid_uint) |
const GenericMaterialProperty< U, is_ad > & | getMaterialPropertyDerivative (const std::string &base, unsigned int v1, unsigned int v2=libMesh::invalid_uint, unsigned int v3=libMesh::invalid_uint) |
const GenericMaterialProperty< U, is_ad > & | getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const std::vector< VariableName > &c) |
const GenericMaterialProperty< U, is_ad > & | getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const std::vector< SymbolName > &c) |
const GenericMaterialProperty< U, is_ad > & | getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="") |
const GenericMaterialProperty< U, is_ad > & | getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const std::vector< VariableName > &c) |
const GenericMaterialProperty< U, is_ad > & | getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const std::vector< SymbolName > &c) |
const GenericMaterialProperty< U, is_ad > & | getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="") |
void | validateCoupling (const MaterialPropertyName &base, const std::vector< VariableName > &c, bool validate_aux=true) |
void | validateCoupling (const MaterialPropertyName &base, const VariableName &c1="", const VariableName &c2="", const VariableName &c3="") |
void | validateCoupling (const MaterialPropertyName &base, const std::vector< VariableName > &c, bool validate_aux=true) |
void | validateCoupling (const MaterialPropertyName &base, const VariableName &c1="", const VariableName &c2="", const VariableName &c3="") |
void | validateNonlinearCoupling (const MaterialPropertyName &base, const VariableName &c1="", const VariableName &c2="", const VariableName &c3="") |
void | validateNonlinearCoupling (const MaterialPropertyName &base, const VariableName &c1="", const VariableName &c2="", const VariableName &c3="") |
const MaterialPropertyName | propertyName (const MaterialPropertyName &base, const std::vector< SymbolName > &c) const |
const MaterialPropertyName | propertyName (const MaterialPropertyName &base, const std::vector< SymbolName > &c) const |
const MaterialPropertyName | propertyNameFirst (const MaterialPropertyName &base, const SymbolName &c1) const |
const MaterialPropertyName | propertyNameFirst (const MaterialPropertyName &base, const SymbolName &c1) const |
const MaterialPropertyName | propertyNameSecond (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2) const |
const MaterialPropertyName | propertyNameSecond (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2) const |
const MaterialPropertyName | propertyNameThird (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2, const SymbolName &c3) const |
const MaterialPropertyName | propertyNameThird (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2, const SymbolName &c3) const |
Static Public Member Functions | |
static InputParameters | validParams () |
Protected Member Functions | |
virtual void | initQpStatefulProperties () override |
virtual void | computeQpPK1Stress () override |
bool | hasGuaranteedMaterialProperty (const MaterialPropertyName &prop, Guarantee guarantee) |
void | returnMappingSolve (const GenericReal< is_ad > &effective_trial_stress, GenericReal< is_ad > &scalar, const ConsoleStream &console) |
Perform the return mapping iterations. More... | |
virtual GenericReal< is_ad > | minimumPermissibleValue (const GenericReal< is_ad > &effective_trial_stress) const |
Compute the minimum permissible value of the scalar. More... | |
virtual GenericReal< is_ad > | maximumPermissibleValue (const GenericReal< is_ad > &effective_trial_stress) const |
Compute the maximum permissible value of the scalar. More... | |
virtual GenericReal< is_ad > | initialGuess (const GenericReal< is_ad > &) |
Compute an initial guess for the value of the scalar. More... | |
virtual GenericReal< is_ad > | computeResidual (const GenericReal< is_ad > &, const GenericReal< is_ad > &)=0 |
Compute the residual for a predicted value of the scalar. More... | |
virtual GenericReal< is_ad > | computeDerivative (const GenericReal< is_ad > &, const GenericReal< is_ad > &)=0 |
Compute the derivative of the residual as a function of the scalar variable. More... | |
virtual GenericChainedReal< is_ad > | computeResidualAndDerivative (const GenericReal< is_ad > &, const GenericChainedReal< is_ad > &) |
Compute the residual and the derivative for a predicted value of the scalar. More... | |
virtual Real | computeReferenceResidual (const GenericReal< is_ad > &effective_trial_stress, const GenericReal< is_ad > &scalar)=0 |
Compute a reference quantity to be used for checking relative convergence. More... | |
virtual void | preStep (const GenericReal< is_ad > &, const GenericReal< is_ad > &, const GenericReal< is_ad > &) |
This method is called before taking a step in the return mapping algorithm. More... | |
virtual void | iterationFinalize (const GenericReal< is_ad > &) |
Finalize internal state variables for a model for a given iteration. More... | |
virtual void | outputIterationSummary (std::stringstream *iter_output, const unsigned int total_it) |
Output summary information for the convergence history of the model. More... | |
virtual void | outputIterationStep (std::stringstream *iter_output, const GenericReal< is_ad > &effective_trial_stress, const GenericReal< is_ad > &scalar, const Real reference_residual) |
Output information for a single iteration step to build the convergence history of the model. More... | |
bool | converged (const GenericReal< is_ad > &residual, const Real reference) |
Check to see whether the residual is within the convergence limits. More... | |
virtual Real | computeReferenceResidual (const Real &effective_trial_stress, const Real &scalar) override |
The return mapping residual and derivative. More... | |
virtual Real | computeResidual (const Real &effective_trial_stress, const Real &scalar) override |
virtual Real | computeDerivative (const Real &effective_trial_stress, const Real &scalar) override |
virtual void | preStep (const Real &scalar_old, const Real &residual, const Real &jacobian) override |
Protected Attributes | |
const MaterialPropertyName | _elasticity_tensor_name |
const MaterialProperty< RankFourTensor > & | _elasticity_tensor |
const MaterialProperty< RankTwoTensor > & | _F_old |
const std::string | _ep_name |
MaterialProperty< Real > & | _ep |
const MaterialProperty< Real > & | _ep_old |
MaterialProperty< RankTwoTensor > & | _be |
const MaterialProperty< RankTwoTensor > & | _be_old |
MaterialProperty< RankTwoTensor > & | _Np |
MaterialBase * | _flow_stress_material |
const std::string | _flow_stress_name |
const MaterialProperty< Real > & | _H |
const MaterialProperty< Real > & | _dH |
const MaterialProperty< Real > & | _d2H |
bool | _check_range |
Whether to check to see whether iterative solution is within admissible range, and set within that range if outside. More... | |
bool | _line_search |
Whether to use line searches to improve convergence. More... | |
bool | _bracket_solution |
Whether to save upper and lower bounds of root for scalar, and set solution to the midpoint between those bounds if outside them. More... | |
Private Attributes | |
RankFourTensor | _d_be_d_F |
Helper (dummy) variables for iteratively updating the consistant tangent during return mapping. More... | |
RankFourTensor | _d_n_d_be |
RankTwoTensor | _d_deltaep_d_betr |
RankTwoTensor | _d_R_d_betr |
RankTwoTensor | _d_J_d_betr |
Definition at line 20 of file ComputeSimoHughesJ2PlasticityStress.h.
ComputeSimoHughesJ2PlasticityStress::ComputeSimoHughesJ2PlasticityStress | ( | const InputParameters & | parameters | ) |
Definition at line 27 of file ComputeSimoHughesJ2PlasticityStress.C.
|
overrideprotectedvirtual |
Definition at line 166 of file ComputeSimoHughesJ2PlasticityStress.C.
|
protectedpure virtualinherited |
Compute the derivative of the residual as a function of the scalar variable.
The residual should be in strain increment units for all models for consistency.
effective_trial_stress | Effective trial stress |
scalar | Inelastic strain increment magnitude being solved for |
Implemented in LAROMANCEStressUpdateBaseTempl< is_ad >, CompositePowerLawCreepStressUpdateTempl< is_ad >, IsotropicPlasticityStressUpdateTempl< is_ad >, PowerLawCreepStressUpdateTempl< is_ad >, PowerLawCreepTestTempl< is_ad >, and CombinedNonlinearHardeningPlasticityTempl< is_ad >.
|
overrideprotectedvirtual |
Definition at line 72 of file ComputeSimoHughesJ2PlasticityStress.C.
|
overrideprotectedvirtual |
The return mapping residual and derivative.
Definition at line 145 of file ComputeSimoHughesJ2PlasticityStress.C.
|
protectedpure virtualinherited |
Compute a reference quantity to be used for checking relative convergence.
This should be in strain increment units for all models for consistency.
effective_trial_stress | Effective trial stress |
scalar | Inelastic strain increment magnitude being solved for |
Implemented in RadialReturnStressUpdateTempl< is_ad >.
|
overrideprotectedvirtual |
Definition at line 153 of file ComputeSimoHughesJ2PlasticityStress.C.
Referenced by computeQpPK1Stress().
|
protectedpure virtualinherited |
Compute the residual for a predicted value of the scalar.
This residual should be in strain increment units for all models for consistency.
effective_trial_stress | Effective trial stress |
scalar | Inelastic strain increment magnitude being solved for |
Implemented in LAROMANCEStressUpdateBaseTempl< is_ad >, IsotropicPlasticityStressUpdateTempl< is_ad >, CompositePowerLawCreepStressUpdateTempl< is_ad >, PowerLawCreepStressUpdateTempl< is_ad >, PowerLawCreepTestTempl< is_ad >, and CombinedNonlinearHardeningPlasticityTempl< is_ad >.
|
inlineprotectedvirtualinherited |
Compute the residual and the derivative for a predicted value of the scalar.
This residual should be in strain increment units for all models for consistency.
effective_trial_stress | Effective trial stress |
scalar | Inelastic strain increment magnitude being solved for |
Reimplemented in CompositePowerLawCreepStressUpdateTempl< is_ad >, and PowerLawCreepStressUpdateTempl< is_ad >.
Definition at line 97 of file SingleVariableReturnMappingSolution.h.
|
protectedinherited |
Check to see whether the residual is within the convergence limits.
residual | Current value of the residual |
reference | Current value of the reference quantity |
Definition at line 326 of file SingleVariableReturnMappingSolution.C.
|
protectedinherited |
Definition at line 28 of file GuaranteeConsumer.C.
Referenced by ComputeFiniteStrainElasticStress::computeQpStress(), ADComputeSmearedCrackingStress::initialSetup(), ComputeSmearedCrackingStress::initialSetup(), ComputeLinearElasticPFFractureStress::initialSetup(), initialSetup(), CriticalTimeStep::initialSetup(), ComputeStVenantKirchhoffStress::initialSetup(), ComputeMultipleInelasticStressBase::initialSetup(), and ADComputeMultipleInelasticStress::initialSetup().
|
inlineprotectedvirtualinherited |
Compute an initial guess for the value of the scalar.
For some cases, an intellegent starting point can provide enhanced robustness in the Newton iterations. This is also an opportunity for classes that derive from this to perform initialization tasks.
effective_trial_stress | Effective trial stress |
Reimplemented in PowerLawCreepTestTempl< is_ad >.
Definition at line 66 of file SingleVariableReturnMappingSolution.h.
|
overridevirtual |
Definition at line 54 of file ComputeSimoHughesJ2PlasticityStress.C.
|
overrideprotectedvirtual |
Definition at line 64 of file ComputeSimoHughesJ2PlasticityStress.C.
|
inlineprotectedvirtualinherited |
Finalize internal state variables for a model for a given iteration.
scalar | Inelastic strain increment magnitude being solved for |
Reimplemented in IsotropicPlasticityStressUpdateTempl< is_ad >, and CombinedNonlinearHardeningPlasticityTempl< is_ad >.
Definition at line 128 of file SingleVariableReturnMappingSolution.h.
|
protectedvirtualinherited |
Compute the maximum permissible value of the scalar.
For some models, the magnitude of this may be known.
effective_trial_stress | Effective trial stress |
Reimplemented in RadialReturnStressUpdateTempl< is_ad >, LAROMANCEStressUpdateBaseTempl< is_ad >, and PowerLawCreepTestTempl< is_ad >.
Definition at line 92 of file SingleVariableReturnMappingSolution.C.
|
protectedvirtualinherited |
Compute the minimum permissible value of the scalar.
For some models, the magnitude of this may be known.
effective_trial_stress | Effective trial stress |
Reimplemented in RadialReturnStressUpdateTempl< is_ad >, and PowerLawCreepTestTempl< is_ad >.
Definition at line 84 of file SingleVariableReturnMappingSolution.C.
|
protectedvirtualinherited |
Output information for a single iteration step to build the convergence history of the model.
iter_output | Output stream |
effective_trial_stress | Effective trial stress |
residual | Current value of the residual |
reference | Current value of the reference quantity |
Reimplemented in LAROMANCEStressUpdateBaseTempl< is_ad >.
Definition at line 419 of file SingleVariableReturnMappingSolution.C.
Referenced by LAROMANCEStressUpdateBaseTempl< is_ad >::outputIterationStep().
|
protectedvirtualinherited |
Output summary information for the convergence history of the model.
iter_output | Output stream |
total_it | Total iteration count |
Reimplemented in RadialReturnStressUpdateTempl< is_ad >, LAROMANCEStressUpdateBaseTempl< is_ad >, and ADViscoplasticityStressUpdate.
Definition at line 442 of file SingleVariableReturnMappingSolution.C.
Referenced by ADViscoplasticityStressUpdate::outputIterationSummary(), LAROMANCEStressUpdateBaseTempl< is_ad >::outputIterationSummary(), and RadialReturnStressUpdateTempl< is_ad >::outputIterationSummary().
|
overrideprotectedvirtual |
Definition at line 179 of file ComputeSimoHughesJ2PlasticityStress.C.
|
inlineprotectedvirtualinherited |
This method is called before taking a step in the return mapping algorithm.
A typical use case is to accumulate the exact algorithmic tangent during return mapping.
Definition at line 118 of file SingleVariableReturnMappingSolution.h.
|
protectedinherited |
Perform the return mapping iterations.
effective_trial_stress | Effective trial stress |
scalar | Inelastic strain increment magnitude being solved for |
console | Console output |
Definition at line 100 of file SingleVariableReturnMappingSolution.C.
Referenced by ADViscoplasticityStressUpdate::computeInelasticStrainIncrement(), and computeQpPK1Stress().
|
static |
Definition at line 15 of file ComputeSimoHughesJ2PlasticityStress.C.
|
protected |
Definition at line 53 of file ComputeSimoHughesJ2PlasticityStress.h.
Referenced by computeDerivative(), computeQpPK1Stress(), computeReferenceResidual(), computeResidual(), initQpStatefulProperties(), and preStep().
|
protected |
Definition at line 54 of file ComputeSimoHughesJ2PlasticityStress.h.
Referenced by computeQpPK1Stress().
|
protectedinherited |
Whether to save upper and lower bounds of root for scalar, and set solution to the midpoint between those bounds if outside them.
Definition at line 145 of file SingleVariableReturnMappingSolution.h.
|
protectedinherited |
Whether to check to see whether iterative solution is within admissible range, and set within that range if outside.
Definition at line 138 of file SingleVariableReturnMappingSolution.h.
Referenced by ADViscoplasticityStressUpdate::ADViscoplasticityStressUpdate(), LAROMANCEStressUpdateBaseTempl< is_ad >::LAROMANCEStressUpdateBaseTempl(), and PowerLawCreepTestTempl< is_ad >::PowerLawCreepTestTempl().
|
protected |
Definition at line 61 of file ComputeSimoHughesJ2PlasticityStress.h.
Referenced by preStep().
|
private |
Helper (dummy) variables for iteratively updating the consistant tangent during return mapping.
Definition at line 65 of file ComputeSimoHughesJ2PlasticityStress.h.
Referenced by computeQpPK1Stress().
|
private |
Definition at line 67 of file ComputeSimoHughesJ2PlasticityStress.h.
Referenced by computeQpPK1Stress(), and preStep().
|
private |
Definition at line 69 of file ComputeSimoHughesJ2PlasticityStress.h.
Referenced by preStep().
|
private |
Definition at line 66 of file ComputeSimoHughesJ2PlasticityStress.h.
Referenced by computeQpPK1Stress().
|
private |
Definition at line 68 of file ComputeSimoHughesJ2PlasticityStress.h.
Referenced by preStep().
|
protected |
Definition at line 60 of file ComputeSimoHughesJ2PlasticityStress.h.
Referenced by computeDerivative(), and preStep().
|
protected |
Definition at line 47 of file ComputeSimoHughesJ2PlasticityStress.h.
Referenced by computeDerivative(), computeQpPK1Stress(), computeReferenceResidual(), computeResidual(), and preStep().
|
protected |
Definition at line 46 of file ComputeSimoHughesJ2PlasticityStress.h.
Referenced by initialSetup().
|
protected |
Definition at line 51 of file ComputeSimoHughesJ2PlasticityStress.h.
Referenced by computeDerivative(), computeQpPK1Stress(), computeResidual(), initQpStatefulProperties(), and preStep().
|
protected |
Definition at line 50 of file ComputeSimoHughesJ2PlasticityStress.h.
Referenced by ComputeSimoHughesJ2PlasticityStress().
|
protected |
Definition at line 52 of file ComputeSimoHughesJ2PlasticityStress.h.
Referenced by computeDerivative(), computeQpPK1Stress(), computeResidual(), and preStep().
|
protected |
Definition at line 49 of file ComputeSimoHughesJ2PlasticityStress.h.
Referenced by computeQpPK1Stress().
|
protected |
Definition at line 57 of file ComputeSimoHughesJ2PlasticityStress.h.
Referenced by computeDerivative(), computeResidual(), initialSetup(), and preStep().
|
protected |
Definition at line 58 of file ComputeSimoHughesJ2PlasticityStress.h.
|
protected |
Definition at line 59 of file ComputeSimoHughesJ2PlasticityStress.h.
Referenced by computeResidual().
|
protectedinherited |
Whether to use line searches to improve convergence.
Definition at line 141 of file SingleVariableReturnMappingSolution.h.
|
protected |
Definition at line 55 of file ComputeSimoHughesJ2PlasticityStress.h.
Referenced by computeQpPK1Stress(), and preStep().