MultiParameterPlasticityStressUpdate performs the return-map algorithm and associated stress updates for plastic models where the yield function and flow directions depend on multiple parameters (called "stress_params" in the documentation and sp in the code) that are themselves functions of stress. More...
#include <MultiParameterPlasticityStressUpdate.h>
Classes | |
struct | yieldAndFlow |
Struct designed to hold info about a single yield function and its derivatives, as well as the flow directions. More... | |
Public Types | |
using | GR2 = GenericRankTwoTensor< is_ad > |
using | GSR2 = Moose::GenericType< R2, is_ad > |
using | GR4 = GenericRankFourTensor< is_ad > |
using | GSR4 = Moose::GenericType< R4, is_ad > |
enum | ConstantTypeEnum { ConstantTypeEnum::NONE, ConstantTypeEnum::ELEMENT, ConstantTypeEnum::SUBDOMAIN } |
enum | TEST_TYPE |
typedef DataFileName | DataFileParameterType |
Public Member Functions | |
MultiParameterPlasticityStressUpdate (const InputParameters ¶meters, unsigned num_sp, unsigned num_yf, unsigned num_intnl) | |
virtual void | updateState (GR2 &strain_increment, GR2 &inelastic_strain_increment, const GR2 &rotation_increment, GR2 &stress_new, const RankTwoTensor &stress_old, const GR4 &elasticity_tensor, const RankTwoTensor &elastic_strain_old, bool compute_full_tangent_operator=false, RankFourTensor &tangent_operator=StressUpdateBaseTempl< is_ad >::_identityTensor) |
Given a strain increment that results in a trial stress, perform some procedure (such as an iterative return-mapping process) to produce an admissible stress, an elastic strain increment and an inelastic strain increment. More... | |
virtual void | updateStateSubstep (GR2 &, GR2 &, const GR2 &, GR2 &, const RankTwoTensor &, const GR4 &, const RankTwoTensor &, bool compute_full_tangent_operator=false, RankFourTensor &tangent_operator=StressUpdateBaseTempl< is_ad >::_identityTensor) |
Similar to the updateState function, this method updates the strain and stress for one substep. More... | |
void | setQp (unsigned int qp) |
Sets the value of the global variable _qp for inheriting classes. More... | |
virtual bool | requiresIsotropicTensor ()=0 |
Does the model require the elasticity tensor to be isotropic? More... | |
virtual bool | isIsotropic () |
Is the implmented model isotropic? The safe default is 'false'. More... | |
virtual Real | computeTimeStepLimit () |
virtual bool | substeppingCapabilityEnabled () |
Does the model include the infrastructure for substep decomposition of the elastic strain initially used to calculate the trial stress guess Inheriting classes which wish to use the substepping capability should overwrite this method and set it to return true. More... | |
virtual bool | substeppingCapabilityRequested () |
Has the user requested usage of (possibly) implemented substepping capability for inelastic models. More... | |
virtual int | calculateNumberSubsteps (const GR2 &) |
Given the elastic strain increment compute the number of substeps required to bring a substepped trial stress guess distance from the yield surface into the tolerance specified in the individual child class. More... | |
virtual void | storeIncrementalMaterialProperties (const unsigned int) |
Properly set up the incremental calculation storage of the stateful material properties in the inheriting classes. More... | |
virtual void | resetIncrementalMaterialProperties () |
Reset material properties. More... | |
virtual Real | computeStrainEnergyRateDensity (const GenericMaterialProperty< RankTwoTensor, is_ad > &, const GenericMaterialProperty< RankTwoTensor, is_ad > &) |
Compute the strain energy rate density for this inelastic model for the current step. More... | |
virtual const dof_id_type & | getElementID (const std::string &id_parameter_name, unsigned int comp=0) const override |
dof_id_type | getElementID (const Elem *elem, unsigned int elem_id_index) const |
virtual const dof_id_type & | getElementIDNeighbor (const std::string &id_parameter_name, unsigned int comp=0) const override |
virtual const dof_id_type & | getElementIDByName (const std::string &id_parameter_name) const override |
virtual const dof_id_type & | getElementIDNeighborByName (const std::string &id_parameter_name) const override |
virtual void | computeProperties () override |
MaterialBase & | getMaterial (const std::string &name) |
MaterialBase & | getMaterialByName (const std::string &name, bool no_warn=false, bool no_dep=false) |
MaterialBase & | getMaterialByName (const std::string &name, bool no_warn=false) |
MaterialBase & | getMaterialByName (const std::string &name, bool no_warn=false) |
virtual bool | isBoundaryMaterial () const override |
virtual const std::unordered_set< unsigned int > & | getMatPropDependencies () const override |
virtual void | subdomainSetup () override |
bool | ghostable () const override final |
virtual void | resolveOptionalProperties () override |
const GenericMaterialProperty< T, is_ad > & | getGenericZeroMaterialProperty (const std::string &name) |
const GenericMaterialProperty< T, is_ad > & | getGenericZeroMaterialProperty () |
const GenericMaterialProperty< T, is_ad > & | getGenericZeroMaterialProperty (const std::string &name) |
const GenericMaterialProperty< T, is_ad > & | getGenericZeroMaterialProperty () |
const GenericMaterialProperty< T, is_ad > & | getGenericZeroMaterialProperty (const std::string &name) |
const GenericMaterialProperty< T, is_ad > & | getGenericZeroMaterialProperty () |
const GenericMaterialProperty< T, is_ad > & | getGenericZeroMaterialPropertyByName (const std::string &prop_name) |
const GenericMaterialProperty< T, is_ad > & | getGenericZeroMaterialPropertyByName (const std::string &prop_name) |
const GenericMaterialProperty< T, is_ad > & | getGenericZeroMaterialPropertyByName (const std::string &prop_name) |
const MaterialProperty< T > & | getZeroMaterialProperty (Ts... args) |
const MaterialProperty< T > & | getZeroMaterialProperty (Ts... args) |
const MaterialProperty< T > & | getZeroMaterialProperty (Ts... args) |
virtual void | initStatefulProperties (unsigned int n_points) |
virtual bool | isInterfaceMaterial () |
virtual void | computePropertiesAtQp (unsigned int qp) |
const MaterialProperty< T > & | getZeroMaterialPropertyByName (Ts... args) |
virtual const std::set< std::string > & | getRequestedItems () override |
virtual const std::set< std::string > & | getSuppliedItems () override |
const std::set< unsigned int > & | getSuppliedPropIDs () |
void | checkStatefulSanity () const |
std::set< OutputName > | getOutputs () |
bool | hasStatefulProperties () const |
void | setFaceInfo (const FaceInfo &fi) |
void | setActiveProperties (const std::unordered_set< unsigned int > &needed_props) |
bool | forceStatefulInit () const |
virtual bool | enabled () const |
MooseApp & | getMooseApp () const |
const std::string & | type () const |
virtual const std::string & | name () const |
std::string | typeAndName () const |
std::string | errorPrefix (const std::string &error_type) const |
void | callMooseError (std::string msg, const bool with_prefix) const |
MooseObjectParameterName | uniqueParameterName (const std::string ¶meter_name) const |
const InputParameters & | parameters () const |
MooseObjectName | uniqueName () const |
const T & | getParam (const std::string &name) const |
std::vector< std::pair< T1, T2 > > | getParam (const std::string ¶m1, const std::string ¶m2) const |
const T & | getRenamedParam (const std::string &old_name, const std::string &new_name) const |
T | getCheckedPointerParam (const std::string &name, const std::string &error_string="") const |
bool | isParamValid (const std::string &name) const |
bool | isParamSetByUser (const std::string &nm) const |
void | paramError (const std::string ¶m, Args... args) const |
void | paramWarning (const std::string ¶m, Args... args) const |
void | paramInfo (const std::string ¶m, Args... args) const |
void | connectControllableParams (const std::string ¶meter, const std::string &object_type, const std::string &object_name, const std::string &object_parameter) const |
void | mooseError (Args &&... args) const |
void | mooseErrorNonPrefixed (Args &&... args) const |
void | mooseWarning (Args &&... args) const |
void | mooseWarningNonPrefixed (Args &&... args) const |
void | mooseDeprecated (Args &&... args) const |
void | mooseInfo (Args &&... args) const |
std::string | getDataFileName (const std::string ¶m) const |
std::string | getDataFileNameByName (const std::string &name, const std::string *param=nullptr) const |
const std::vector< SubdomainName > & | blocks () const |
unsigned int | numBlocks () const |
virtual const std::set< SubdomainID > & | blockIDs () const |
unsigned int | blocksMaxDimension () const |
bool | hasBlocks (const SubdomainName &name) const |
bool | hasBlocks (const std::vector< SubdomainName > &names) const |
bool | hasBlocks (SubdomainID id) const |
bool | hasBlocks (const std::vector< SubdomainID > &ids) const |
bool | hasBlocks (const std::set< SubdomainID > &ids) const |
bool | isBlockSubset (const std::set< SubdomainID > &ids) const |
bool | isBlockSubset (const std::vector< SubdomainID > &ids) const |
bool | hasBlockMaterialProperty (const std::string &prop_name) |
const std::set< SubdomainID > & | meshBlockIDs () const |
virtual bool | blockRestricted () const |
virtual void | checkVariable (const MooseVariableFieldBase &variable) const |
virtual const std::set< BoundaryID > & | boundaryIDs () const |
const std::vector< BoundaryName > & | boundaryNames () const |
unsigned int | numBoundaryIDs () const |
bool | hasBoundary (const BoundaryName &name) const |
bool | hasBoundary (const std::vector< BoundaryName > &names) const |
bool | hasBoundary (const BoundaryID &id) const |
bool | hasBoundary (const std::vector< BoundaryID > &ids, TEST_TYPE type=ALL) const |
bool | hasBoundary (const std::set< BoundaryID > &ids, TEST_TYPE type=ALL) const |
bool | isBoundarySubset (const std::set< BoundaryID > &ids) const |
bool | isBoundarySubset (const std::vector< BoundaryID > &ids) const |
bool | hasBoundaryMaterialProperty (const std::string &prop_name) const |
virtual bool | boundaryRestricted () const |
const std::set< BoundaryID > & | meshBoundaryIDs () const |
virtual bool | checkVariableBoundaryIntegrity () const |
virtual void | initialSetup () |
virtual void | timestepSetup () |
virtual void | jacobianSetup () |
virtual void | residualSetup () |
virtual void | customSetup (const ExecFlagType &) |
const ExecFlagEnum & | getExecuteOnEnum () const |
const std::set< MooseVariableFieldBase *> & | getMooseVariableDependencies () const |
std::set< MooseVariableFieldBase *> | checkAllVariables (const DofObjectType &dof_object, const std::set< MooseVariableFieldBase * > &vars_to_omit={}) |
std::set< MooseVariableFieldBase *> | checkVariables (const DofObjectType &dof_object, const std::set< MooseVariableFieldBase * > &vars_to_check) |
const std::vector< MooseVariableScalar *> & | getCoupledMooseScalarVars () |
const std::set< TagID > & | getScalarVariableCoupleableVectorTags () const |
const std::set< TagID > & | getScalarVariableCoupleableMatrixTags () const |
const Function & | getFunction (const std::string &name) const |
const Function & | getFunctionByName (const FunctionName &name) const |
bool | hasFunction (const std::string ¶m_name) const |
bool | hasFunctionByName (const FunctionName &name) const |
UserObjectName | getUserObjectName (const std::string ¶m_name) const |
const T & | getUserObject (const std::string ¶m_name, bool is_dependency=true) const |
const T & | getUserObjectByName (const UserObjectName &object_name, bool is_dependency=true) const |
const UserObject & | getUserObjectBase (const std::string ¶m_name, bool is_dependency=true) const |
const UserObject & | getUserObjectBaseByName (const UserObjectName &object_name, bool is_dependency=true) const |
bool | isImplicit () |
bool | isDefaultPostprocessorValue (const std::string ¶m_name, const unsigned int index=0) const |
bool | hasPostprocessor (const std::string ¶m_name, const unsigned int index=0) const |
bool | hasPostprocessorByName (const PostprocessorName &name) const |
std::size_t | coupledPostprocessors (const std::string ¶m_name) const |
const PostprocessorName & | getPostprocessorName (const std::string ¶m_name, const unsigned int index=0) const |
const VectorPostprocessorValue & | getVectorPostprocessorValue (const std::string ¶m_name, const std::string &vector_name) const |
const VectorPostprocessorValue & | getVectorPostprocessorValue (const std::string ¶m_name, const std::string &vector_name, bool needs_broadcast) const |
const VectorPostprocessorValue & | getVectorPostprocessorValueByName (const VectorPostprocessorName &name, const std::string &vector_name) const |
const VectorPostprocessorValue & | getVectorPostprocessorValueByName (const VectorPostprocessorName &name, const std::string &vector_name, bool needs_broadcast) const |
const VectorPostprocessorValue & | getVectorPostprocessorValueOld (const std::string ¶m_name, const std::string &vector_name) const |
const VectorPostprocessorValue & | getVectorPostprocessorValueOld (const std::string ¶m_name, const std::string &vector_name, bool needs_broadcast) const |
const VectorPostprocessorValue & | getVectorPostprocessorValueOldByName (const VectorPostprocessorName &name, const std::string &vector_name) const |
const VectorPostprocessorValue & | getVectorPostprocessorValueOldByName (const VectorPostprocessorName &name, const std::string &vector_name, bool needs_broadcast) const |
const ScatterVectorPostprocessorValue & | getScatterVectorPostprocessorValue (const std::string ¶m_name, const std::string &vector_name) const |
const ScatterVectorPostprocessorValue & | getScatterVectorPostprocessorValueByName (const VectorPostprocessorName &name, const std::string &vector_name) const |
const ScatterVectorPostprocessorValue & | getScatterVectorPostprocessorValueOld (const std::string ¶m_name, const std::string &vector_name) const |
const ScatterVectorPostprocessorValue & | getScatterVectorPostprocessorValueOldByName (const VectorPostprocessorName &name, const std::string &vector_name) const |
bool | hasVectorPostprocessor (const std::string ¶m_name, const std::string &vector_name) const |
bool | hasVectorPostprocessor (const std::string ¶m_name) const |
bool | hasVectorPostprocessorByName (const VectorPostprocessorName &name, const std::string &vector_name) const |
bool | hasVectorPostprocessorByName (const VectorPostprocessorName &name) const |
const VectorPostprocessorName & | getVectorPostprocessorName (const std::string ¶m_name) const |
virtual void | meshChanged () |
void | buildOutputHideVariableList (std::set< std::string > variable_names) |
void | setRandomResetFrequency (ExecFlagType exec_flag) |
unsigned long | getRandomLong () const |
Real | getRandomReal () const |
unsigned int | getSeed (std::size_t id) |
unsigned int | getMasterSeed () const |
bool | isNodal () const |
ExecFlagType | getResetOnTime () const |
void | setRandomDataPointer (RandomData *random_data) |
virtual unsigned int | getElementIDIndex (const std::string &id_parameter_name, unsigned int comp=0) const |
virtual unsigned int | getElementIDIndexByName (const std::string &id_name) const |
bool | hasElementID (const std::string &id_name) const |
dof_id_type | maxElementID (unsigned int elem_id_index) const |
dof_id_type | minElementID (unsigned int elem_id_index) const |
bool | areElemIDsIdentical (const std::string &id_name1, const std::string &id_name2) const |
std::unordered_map< dof_id_type, std::set< dof_id_type > > | getElemIDMapping (const std::string &id_name1, const std::string &id_name2) const |
std::set< dof_id_type > | getAllElemIDs (unsigned int elem_id_index) const |
std::set< dof_id_type > | getElemIDsOnBlocks (unsigned int elem_id_index, const std::set< SubdomainID > &blks) const |
const std::unordered_map< std::string, std::vector< MooseVariableFieldBase *> > & | getCoupledVars () const |
const std::vector< MooseVariableFieldBase *> & | getCoupledMooseVars () const |
const std::vector< MooseVariable *> & | getCoupledStandardMooseVars () const |
const std::vector< VectorMooseVariable *> & | getCoupledVectorMooseVars () const |
const std::vector< ArrayMooseVariable *> & | getCoupledArrayMooseVars () const |
void | addFEVariableCoupleableVectorTag (TagID tag) |
void | addFEVariableCoupleableMatrixTag (TagID tag) |
std::set< TagID > & | getFEVariableCoupleableVectorTags () |
const std::set< TagID > & | getFEVariableCoupleableVectorTags () const |
std::set< TagID > & | getFEVariableCoupleableMatrixTags () |
const std::set< TagID > & | getFEVariableCoupleableMatrixTags () const |
auto & | getWritableCoupledVariables () const |
bool | hasWritableCoupledVariables () const |
const ADVariableValue * | getADDefaultValue (const std::string &var_name) const |
const ADVectorVariableValue * | getADDefaultVectorValue (const std::string &var_name) const |
const ADVariableGradient & | getADDefaultGradient () const |
const ADVectorVariableGradient & | getADDefaultVectorGradient () const |
const ADVariableSecond & | getADDefaultSecond () const |
const GenericMaterialProperty< T, is_ad > & | getGenericMaterialProperty (const std::string &name, MaterialData &material_data, const unsigned int state=0) |
const GenericMaterialProperty< T, is_ad > & | getGenericMaterialProperty (const std::string &name, const unsigned int state=0) |
const GenericMaterialProperty< T, is_ad > & | getGenericMaterialProperty (const std::string &name, const unsigned int state=0) |
const MaterialProperty< T > & | getMaterialProperty (const std::string &name, MaterialData &material_data, const unsigned int state=0) |
const MaterialProperty< T > & | getMaterialProperty (const std::string &name, const unsigned int state=0) |
const MaterialProperty< T > & | getMaterialProperty (const std::string &name, const unsigned int state=0) |
const ADMaterialProperty< T > & | getADMaterialProperty (const std::string &name, MaterialData &material_data) |
const ADMaterialProperty< T > & | getADMaterialProperty (const std::string &name) |
const ADMaterialProperty< T > & | getADMaterialProperty (const std::string &name) |
const MaterialProperty< T > & | getMaterialPropertyOld (const std::string &name, MaterialData &material_data) |
const MaterialProperty< T > & | getMaterialPropertyOld (const std::string &name) |
const MaterialProperty< T > & | getMaterialPropertyOld (const std::string &name) |
const MaterialProperty< T > & | getMaterialPropertyOlder (const std::string &name, MaterialData &material_data) |
const MaterialProperty< T > & | getMaterialPropertyOlder (const std::string &name) |
const MaterialProperty< T > & | getMaterialPropertyOlder (const std::string &name) |
const GenericMaterialProperty< T, is_ad > & | getGenericMaterialPropertyByName (const MaterialPropertyName &name, MaterialData &material_data, const unsigned int state) |
const GenericMaterialProperty< T, is_ad > & | getGenericMaterialPropertyByName (const std::string &name, const unsigned int state=0) |
const GenericMaterialProperty< T, is_ad > & | getGenericMaterialPropertyByName (const MaterialPropertyName &name, const unsigned int state=0) |
const GenericMaterialProperty< T, is_ad > & | getGenericMaterialPropertyByName (const std::string &name, const unsigned int state=0) |
const GenericMaterialProperty< T, is_ad > & | getGenericMaterialPropertyByName (const MaterialPropertyName &name, const unsigned int state=0) |
const MaterialProperty< T > & | getMaterialPropertyByName (const MaterialPropertyName &name, MaterialData &material_data, const unsigned int state=0) |
const MaterialProperty< T > & | getMaterialPropertyByName (const std::string &prop_name, const unsigned int state=0) |
const MaterialProperty< T > & | getMaterialPropertyByName (const MaterialPropertyName &name, const unsigned int state=0) |
const MaterialProperty< T > & | getMaterialPropertyByName (const std::string &prop_name, const unsigned int state=0) |
const MaterialProperty< T > & | getMaterialPropertyByName (const MaterialPropertyName &name, const unsigned int state=0) |
const ADMaterialProperty< T > & | getADMaterialPropertyByName (const MaterialPropertyName &name, MaterialData &material_data) |
const ADMaterialProperty< T > & | getADMaterialPropertyByName (const std::string &prop_name) |
const ADMaterialProperty< T > & | getADMaterialPropertyByName (const MaterialPropertyName &name) |
const ADMaterialProperty< T > & | getADMaterialPropertyByName (const std::string &prop_name) |
const ADMaterialProperty< T > & | getADMaterialPropertyByName (const MaterialPropertyName &name) |
const MaterialProperty< T > & | getMaterialPropertyOldByName (const MaterialPropertyName &name, MaterialData &material_data) |
const MaterialProperty< T > & | getMaterialPropertyOldByName (const std::string &prop_name) |
const MaterialProperty< T > & | getMaterialPropertyOldByName (const MaterialPropertyName &name) |
const MaterialProperty< T > & | getMaterialPropertyOldByName (const std::string &prop_name) |
const MaterialProperty< T > & | getMaterialPropertyOldByName (const MaterialPropertyName &name) |
const MaterialProperty< T > & | getMaterialPropertyOlderByName (const MaterialPropertyName &name, MaterialData &material_data) |
const MaterialProperty< T > & | getMaterialPropertyOlderByName (const std::string &prop_name) |
const MaterialProperty< T > & | getMaterialPropertyOlderByName (const MaterialPropertyName &name) |
const MaterialProperty< T > & | getMaterialPropertyOlderByName (const std::string &prop_name) |
const MaterialProperty< T > & | getMaterialPropertyOlderByName (const MaterialPropertyName &name) |
std::pair< const MaterialProperty< T > *, std::set< SubdomainID > > | getBlockMaterialProperty (const MaterialPropertyName &name) |
std::set< SubdomainID > | getMaterialPropertyBlocks (const std::string &name) |
std::vector< SubdomainName > | getMaterialPropertyBlockNames (const std::string &name) |
std::set< BoundaryID > | getMaterialPropertyBoundaryIDs (const std::string &name) |
std::vector< BoundaryName > | getMaterialPropertyBoundaryNames (const std::string &name) |
void | checkBlockAndBoundaryCompatibility (std::shared_ptr< MaterialBase > discrete) |
std::unordered_map< SubdomainID, std::vector< MaterialBase *> > | buildRequiredMaterials (bool allow_stateful=true) |
void | statefulPropertiesAllowed (bool) |
bool | getMaterialPropertyCalled () const |
const GenericMaterialProperty< T, is_ad > & | getPossiblyConstantGenericMaterialPropertyByName (const MaterialPropertyName &prop_name, MaterialData &material_data, const unsigned int state) |
const GenericOptionalMaterialProperty< T, is_ad > & | getGenericOptionalMaterialProperty (const std::string &name, const unsigned int state=0) |
const GenericOptionalMaterialProperty< T, is_ad > & | getGenericOptionalMaterialProperty (const std::string &name, const unsigned int state=0) |
const OptionalMaterialProperty< T > & | getOptionalMaterialProperty (const std::string &name, const unsigned int state=0) |
const OptionalMaterialProperty< T > & | getOptionalMaterialProperty (const std::string &name, const unsigned int state=0) |
const OptionalADMaterialProperty< T > & | getOptionalADMaterialProperty (const std::string &name) |
const OptionalADMaterialProperty< T > & | getOptionalADMaterialProperty (const std::string &name) |
const OptionalMaterialProperty< T > & | getOptionalMaterialPropertyOld (const std::string &name) |
const OptionalMaterialProperty< T > & | getOptionalMaterialPropertyOld (const std::string &name) |
const OptionalMaterialProperty< T > & | getOptionalMaterialPropertyOlder (const std::string &name) |
const OptionalMaterialProperty< T > & | getOptionalMaterialPropertyOlder (const std::string &name) |
MaterialProperty< T > & | declarePropertyByName (const std::string &prop_name) |
MaterialProperty< T > & | declarePropertyByName (const std::string &prop_name) |
MaterialProperty< T > & | declareProperty (const std::string &name) |
MaterialProperty< T > & | declareProperty (const std::string &name) |
ADMaterialProperty< T > & | declareADPropertyByName (const std::string &prop_name) |
ADMaterialProperty< T > & | declareADPropertyByName (const std::string &prop_name) |
ADMaterialProperty< T > & | declareADProperty (const std::string &name) |
ADMaterialProperty< T > & | declareADProperty (const std::string &name) |
auto & | declareGenericProperty (const std::string &prop_name) |
auto & | declareGenericProperty (const std::string &prop_name) |
GenericMaterialProperty< T, is_ad > & | declareGenericPropertyByName (const std::string &prop_name) |
GenericMaterialProperty< T, is_ad > & | declareGenericPropertyByName (const std::string &prop_name) |
const Distribution & | getDistribution (const std::string &name) const |
const T & | getDistribution (const std::string &name) const |
const Distribution & | getDistribution (const std::string &name) const |
const T & | getDistribution (const std::string &name) const |
const Distribution & | getDistributionByName (const DistributionName &name) const |
const T & | getDistributionByName (const std::string &name) const |
const Distribution & | getDistributionByName (const DistributionName &name) const |
const T & | getDistributionByName (const std::string &name) const |
bool | hasUserObject (const std::string ¶m_name) const |
bool | hasUserObject (const std::string ¶m_name) const |
bool | hasUserObject (const std::string ¶m_name) const |
bool | hasUserObject (const std::string ¶m_name) const |
bool | hasUserObjectByName (const UserObjectName &object_name) const |
bool | hasUserObjectByName (const UserObjectName &object_name) const |
bool | hasUserObjectByName (const UserObjectName &object_name) const |
bool | hasUserObjectByName (const UserObjectName &object_name) const |
const PostprocessorValue & | getPostprocessorValue (const std::string ¶m_name, const unsigned int index=0) const |
const PostprocessorValue & | getPostprocessorValue (const std::string ¶m_name, const unsigned int index=0) const |
const PostprocessorValue & | getPostprocessorValueOld (const std::string ¶m_name, const unsigned int index=0) const |
const PostprocessorValue & | getPostprocessorValueOld (const std::string ¶m_name, const unsigned int index=0) const |
const PostprocessorValue & | getPostprocessorValueOlder (const std::string ¶m_name, const unsigned int index=0) const |
const PostprocessorValue & | getPostprocessorValueOlder (const std::string ¶m_name, const unsigned int index=0) const |
virtual const PostprocessorValue & | getPostprocessorValueByName (const PostprocessorName &name) const |
virtual const PostprocessorValue & | getPostprocessorValueByName (const PostprocessorName &name) const |
const PostprocessorValue & | getPostprocessorValueOldByName (const PostprocessorName &name) const |
const PostprocessorValue & | getPostprocessorValueOldByName (const PostprocessorName &name) const |
const PostprocessorValue & | getPostprocessorValueOlderByName (const PostprocessorName &name) const |
const PostprocessorValue & | getPostprocessorValueOlderByName (const PostprocessorName &name) const |
bool | isVectorPostprocessorDistributed (const std::string ¶m_name) const |
bool | isVectorPostprocessorDistributed (const std::string ¶m_name) const |
bool | isVectorPostprocessorDistributedByName (const VectorPostprocessorName &name) const |
bool | isVectorPostprocessorDistributedByName (const VectorPostprocessorName &name) const |
bool | hasMaterialProperty (const std::string &name) |
bool | hasMaterialProperty (const std::string &name) |
bool | hasMaterialPropertyByName (const std::string &name) |
bool | hasMaterialPropertyByName (const std::string &name) |
bool | hasADMaterialProperty (const std::string &name) |
bool | hasADMaterialProperty (const std::string &name) |
bool | hasADMaterialPropertyByName (const std::string &name) |
bool | hasADMaterialPropertyByName (const std::string &name) |
bool | hasGenericMaterialProperty (const std::string &name) |
bool | hasGenericMaterialProperty (const std::string &name) |
bool | hasGenericMaterialPropertyByName (const std::string &name) |
bool | hasGenericMaterialPropertyByName (const std::string &name) |
PenetrationLocator & | getPenetrationLocator (const BoundaryName &primary, const BoundaryName &secondary, Order order) |
PenetrationLocator & | getQuadraturePenetrationLocator (const BoundaryName &primary, const BoundaryName &secondary, Order order) |
NearestNodeLocator & | getNearestNodeLocator (const BoundaryName &primary, const BoundaryName &secondary) |
NearestNodeLocator & | getQuadratureNearestNodeLocator (const BoundaryName &primary, const BoundaryName &secondary) |
bool | requiresGeometricSearch () const |
const Parallel::Communicator & | comm () const |
processor_id_type | n_processors () const |
processor_id_type | processor_id () const |
void | resetQpProperties () final |
Retained as empty methods to avoid a warning from Material.C in framework. These methods are unused in all inheriting classes and should not be overwritten. More... | |
void | resetProperties () final |
Static Public Member Functions | |
static InputParameters | validParams () |
static std::deque< MaterialBase *> | buildRequiredMaterials (const Consumers &mat_consumers, const std::vector< std::shared_ptr< MaterialBase >> &mats, const bool allow_stateful) |
static bool | restricted (const std::set< BoundaryID > &ids) |
static void | sort (typename std::vector< T > &vector) |
static void | sortDFS (typename std::vector< T > &vector) |
static void | cyclicDependencyError (CyclicDependencyException< T2 > &e, const std::string &header) |
static std::string | deduceFunctorName (const std::string &name, const InputParameters ¶ms) |
Public Attributes | |
const Elem *const & | _current_elem |
Real & | _dt |
const MooseArray< Point > & | _q_point |
unsigned int | _qp |
ALL | |
ANY | |
const ConsoleStream | _console |
Static Public Attributes | |
static constexpr PropertyValue::id_type | default_property_id |
static constexpr PropertyValue::id_type | zero_property_id |
Protected Types | |
enum | QP_Data_Type |
Protected Member Functions | |
virtual void | initQpStatefulProperties () override |
virtual void | updateState (RankTwoTensor &strain_increment, RankTwoTensor &inelastic_strain_increment, const RankTwoTensor &rotation_increment, RankTwoTensor &stress_new, const RankTwoTensor &stress_old, const RankFourTensor &elasticity_tensor, const RankTwoTensor &elastic_strain_old, bool compute_full_tangent_operator, RankFourTensor &tangent_operator) override |
virtual void | propagateQpStatefulProperties () override |
If updateState is not called during a timestep, this will be. More... | |
virtual TangentCalculationMethod | getTangentCalculationMethod () override |
Real | yieldF (const std::vector< Real > &stress_params, const std::vector< Real > &intnl) const |
Computes the smoothed yield function. More... | |
Real | yieldF (const std::vector< Real > &yfs) const |
Computes the smoothed yield function. More... | |
Real | ismoother (Real f_diff) const |
Smooths yield functions. More... | |
Real | smoother (Real f_diff) const |
Derivative of ismoother. More... | |
Real | dsmoother (Real f_diff) const |
Derivative of smoother. More... | |
yieldAndFlow | smoothAllQuantities (const std::vector< Real > &stress_params, const std::vector< Real > &intnl) const |
Calculates all yield functions and derivatives, and then performs the smoothing scheme. More... | |
int | lineSearch (Real &res2, std::vector< Real > &stress_params, Real &gaE, const std::vector< Real > &trial_stress_params, yieldAndFlow &smoothed_q, const std::vector< Real > &intnl_ok, std::vector< Real > &intnl, std::vector< Real > &rhs, Real &linesearch_needed) const |
Performs a line-search to find stress_params and gaE Upon entry: More... | |
int | nrStep (const yieldAndFlow &smoothed_q, const std::vector< Real > &trial_stress_params, const std::vector< Real > &stress_params, const std::vector< Real > &intnl, Real gaE, std::vector< Real > &rhs) const |
Performs a Newton-Raphson step to attempt to zero rhs Upon return, rhs will contain the solution. More... | |
Real | calculateRes2 (const std::vector< Real > &rhs) const |
Calculates the residual-squared for the Newton-Raphson + line-search. More... | |
void | calculateRHS (const std::vector< Real > &trial_stress_params, const std::vector< Real > &stress_params, Real gaE, const yieldAndFlow &smoothed_q, std::vector< Real > &rhs) const |
Calculates the RHS in the following 0 = rhs[0] = S[0] - S[0]^trial + ga * E[0, j] * dg/dS[j] 0 = rhs[1] = S[1] - S[1]^trial + ga * E[1, j] * dg/dS[j] ... More... | |
void | dnRHSdVar (const yieldAndFlow &smoothed_q, const std::vector< std::vector< Real >> &dintnl, const std::vector< Real > &stress_params, Real gaE, std::vector< double > &jac) const |
Derivative of -RHS with respect to the stress_params and gaE, placed into an array ready for solving the linear system using LAPACK gsev. More... | |
virtual void | errorHandler (const std::string &message) const |
Performs any necessary cleaning-up, then throw MooseException(message) More... | |
virtual void | yieldFunctionValuesV (const std::vector< Real > &stress_params, const std::vector< Real > &intnl, std::vector< Real > &yf) const =0 |
Computes the values of the yield functions, given stress_params and intnl parameters. More... | |
virtual void | computeAllQV (const std::vector< Real > &stress_params, const std::vector< Real > &intnl, std::vector< yieldAndFlow > &all_q) const =0 |
Completely fills all_q with correct values. More... | |
virtual void | preReturnMapV (const std::vector< Real > &trial_stress_params, const RankTwoTensor &stress_trial, const std::vector< Real > &intnl_old, const std::vector< Real > &yf, const RankFourTensor &Eijkl) |
Derived classes may employ this function to record stuff or do other computations prior to the return-mapping algorithm. More... | |
virtual void | initializeVarsV (const std::vector< Real > &trial_stress_params, const std::vector< Real > &intnl_old, std::vector< Real > &stress_params, Real &gaE, std::vector< Real > &intnl) const |
Sets (stress_params, intnl) at "good guesses" of the solution to the Return-Map algorithm. More... | |
virtual void | setIntnlValuesV (const std::vector< Real > &trial_stress_params, const std::vector< Real > ¤t_stress_params, const std::vector< Real > &intnl_old, std::vector< Real > &intnl) const =0 |
Sets the internal parameters based on the trial values of stress_params, their current values, and the old values of the internal parameters. More... | |
virtual void | setIntnlDerivativesV (const std::vector< Real > &trial_stress_params, const std::vector< Real > ¤t_stress_params, const std::vector< Real > &intnl, std::vector< std::vector< Real >> &dintnl) const =0 |
Sets the derivatives of internal parameters, based on the trial values of stress_params, their current values, and the current values of the internal parameters. More... | |
virtual void | computeStressParams (const RankTwoTensor &stress, std::vector< Real > &stress_params) const =0 |
Computes stress_params, given stress. More... | |
virtual void | initializeReturnProcess () |
Derived classes may use this to perform calculations before any return-map process is performed, for instance, to initialize variables. More... | |
virtual void | finalizeReturnProcess (const RankTwoTensor &rotation_increment) |
Derived classes may use this to perform calculations after the return-map process has completed successfully in stress_param space but before the returned stress tensor has been calculcated. More... | |
virtual void | setStressAfterReturnV (const RankTwoTensor &stress_trial, const std::vector< Real > &stress_params, Real gaE, const std::vector< Real > &intnl, const yieldAndFlow &smoothed_q, const RankFourTensor &Eijkl, RankTwoTensor &stress) const =0 |
Sets stress from the admissible parameters. More... | |
virtual void | setInelasticStrainIncrementAfterReturn (const RankTwoTensor &stress_trial, Real gaE, const yieldAndFlow &smoothed_q, const RankFourTensor &elasticity_tensor, const RankTwoTensor &returned_stress, RankTwoTensor &inelastic_strain_increment) const |
Sets inelastic strain increment from the returned configuration This is called after the return-map process has completed successfully in stress_param space, just after finalizeReturnProcess has been called. More... | |
virtual void | consistentTangentOperatorV (const RankTwoTensor &stress_trial, const std::vector< Real > &trial_stress_params, const RankTwoTensor &stress, const std::vector< Real > &stress_params, Real gaE, const yieldAndFlow &smoothed_q, const RankFourTensor &Eijkl, bool compute_full_tangent_operator, const std::vector< std::vector< Real >> &dvar_dtrial, RankFourTensor &cto) |
Calculates the consistent tangent operator. More... | |
virtual std::vector< RankTwoTensor > | dstress_param_dstress (const RankTwoTensor &stress) const =0 |
d(stress_param[i])/d(stress) at given stress More... | |
virtual std::vector< RankFourTensor > | d2stress_param_dstress (const RankTwoTensor &stress) const =0 |
d2(stress_param[i])/d(stress)/d(stress) at given stress More... | |
virtual void | setEffectiveElasticity (const RankFourTensor &Eijkl)=0 |
Sets _Eij and _En and _Cij. More... | |
void | dVardTrial (bool elastic_only, const std::vector< Real > &trial_stress_params, const std::vector< Real > &stress_params, Real gaE, const std::vector< Real > &intnl, const yieldAndFlow &smoothed_q, Real step_size, bool compute_full_tangent_operator, std::vector< std::vector< Real >> &dvar_dtrial) const |
Calculates derivatives of the stress_params and gaE with repect to the trial values of the stress_params for the (sub)strain increment. More... | |
bool | precisionLoss (const std::vector< Real > &solution, const std::vector< Real > &stress_params, Real gaE) const |
Check whether precision loss has occurred. More... | |
virtual void | updateState (GR2 &strain_increment, GR2 &inelastic_strain_increment, const GR2 &rotation_increment, GR2 &stress_new, const RankTwoTensor &stress_old, const GR4 &elasticity_tensor, const RankTwoTensor &elastic_strain_old, bool compute_full_tangent_operator=false, RankFourTensor &tangent_operator=StressUpdateBaseTempl< is_ad >::_identityTensor) |
Given a strain increment that results in a trial stress, perform some procedure (such as an iterative return-mapping process) to produce an admissible stress, an elastic strain increment and an inelastic strain increment. More... | |
virtual void | checkMaterialProperty (const std::string &name, const unsigned int state) override |
virtual const MaterialData & | materialData () const override |
virtual MaterialData & | materialData () override |
virtual const QBase & | qRule () const override |
virtual void | computeQpProperties () |
virtual const FEProblemBase & | miProblem () const |
virtual FEProblemBase & | miProblem () |
bool | isPropertyActive (const unsigned int prop_id) const |
void | registerPropName (const std::string &prop_name, bool is_get, const unsigned int state) |
void | checkExecutionStage () |
void | checkExecutionStage () |
virtual bool | hasBlockMaterialPropertyHelper (const std::string &prop_name) |
void | initializeBlockRestrictable (const MooseObject *moose_object) |
Moose::CoordinateSystemType | getBlockCoordSystem () |
bool | hasBoundaryMaterialPropertyHelper (const std::string &prop_name) const |
void | addMooseVariableDependency (MooseVariableFieldBase *var) |
void | addMooseVariableDependency (const std::vector< MooseVariableFieldBase * > &vars) |
bool | isCoupledScalar (const std::string &var_name, unsigned int i=0) const |
unsigned int | coupledScalarComponents (const std::string &var_name) const |
unsigned int | coupledScalar (const std::string &var_name, unsigned int comp=0) const |
Order | coupledScalarOrder (const std::string &var_name, unsigned int comp=0) const |
const VariableValue & | coupledScalarValue (const std::string &var_name, unsigned int comp=0) const |
const ADVariableValue & | adCoupledScalarValue (const std::string &var_name, unsigned int comp=0) const |
const GenericVariableValue< is_ad > & | coupledGenericScalarValue (const std::string &var_name, unsigned int comp=0) const |
const GenericVariableValue< false > & | coupledGenericScalarValue (const std::string &var_name, const unsigned int comp) const |
const GenericVariableValue< true > & | coupledGenericScalarValue (const std::string &var_name, const unsigned int comp) const |
const VariableValue & | coupledVectorTagScalarValue (const std::string &var_name, TagID tag, unsigned int comp=0) const |
const VariableValue & | coupledMatrixTagScalarValue (const std::string &var_name, TagID tag, unsigned int comp=0) const |
const VariableValue & | coupledScalarValueOld (const std::string &var_name, unsigned int comp=0) const |
const VariableValue & | coupledScalarValueOlder (const std::string &var_name, unsigned int comp=0) const |
const VariableValue & | coupledScalarDot (const std::string &var_name, unsigned int comp=0) const |
const ADVariableValue & | adCoupledScalarDot (const std::string &var_name, unsigned int comp=0) const |
const VariableValue & | coupledScalarDotDot (const std::string &var_name, unsigned int comp=0) const |
const VariableValue & | coupledScalarDotOld (const std::string &var_name, unsigned int comp=0) const |
const VariableValue & | coupledScalarDotDotOld (const std::string &var_name, unsigned int comp=0) const |
const VariableValue & | coupledScalarDotDu (const std::string &var_name, unsigned int comp=0) const |
const VariableValue & | coupledScalarDotDotDu (const std::string &var_name, unsigned int comp=0) const |
const MooseVariableScalar * | getScalarVar (const std::string &var_name, unsigned int comp) const |
virtual void | addUserObjectDependencyHelper (const UserObject &) const |
Moose::StateArg | determineState () const |
virtual void | addPostprocessorDependencyHelper (const PostprocessorName &) const |
virtual void | addVectorPostprocessorDependencyHelper (const VectorPostprocessorName &) const |
T & | declareRestartableData (const std::string &data_name, Args &&... args) |
ManagedValue< T > | declareManagedRestartableDataWithContext (const std::string &data_name, void *context, Args &&... args) |
const T & | getRestartableData (const std::string &data_name) const |
T & | declareRestartableDataWithContext (const std::string &data_name, void *context, Args &&... args) |
T & | declareRecoverableData (const std::string &data_name, Args &&... args) |
T & | declareRestartableDataWithObjectName (const std::string &data_name, const std::string &object_name, Args &&... args) |
T & | declareRestartableDataWithObjectNameWithContext (const std::string &data_name, const std::string &object_name, void *context, Args &&... args) |
std::string | restartableName (const std::string &data_name) const |
std::string | deduceFunctorName (const std::string &name) const |
const Moose::Functor< T > & | getFunctor (const std::string &name) |
const Moose::Functor< T > & | getFunctor (const std::string &name, THREAD_ID tid) |
const Moose::Functor< T > & | getFunctor (const std::string &name, SubProblem &subproblem) |
const Moose::Functor< T > & | getFunctor (const std::string &name, SubProblem &subproblem, THREAD_ID tid) |
bool | isFunctor (const std::string &name) const |
bool | isFunctor (const std::string &name, const SubProblem &subproblem) const |
Moose::ElemArg | makeElemArg (const Elem *elem, bool correct_skewnewss=false) const |
void | checkFunctorSupportsSideIntegration (const std::string &name, bool qp_integration) |
void | flagInvalidSolutionInternal (InvalidSolutionID _invalid_solution_id) const |
InvalidSolutionID | registerInvalidSolutionInternal (const std::string &message) const |
virtual void | coupledCallback (const std::string &, bool) const |
virtual bool | isCoupled (const std::string &var_name, unsigned int i=0) const |
virtual bool | isCoupledConstant (const std::string &var_name) const |
unsigned int | coupledComponents (const std::string &var_name) const |
VariableName | coupledName (const std::string &var_name, unsigned int comp=0) const |
std::vector< VariableName > | coupledNames (const std::string &var_name) const |
virtual unsigned int | coupled (const std::string &var_name, unsigned int comp=0) const |
std::vector< unsigned int > | coupledIndices (const std::string &var_name) const |
virtual const VariableValue & | coupledValue (const std::string &var_name, unsigned int comp=0) const |
std::vector< const VariableValue *> | coupledValues (const std::string &var_name) const |
std::vector< const VectorVariableValue *> | coupledVectorValues (const std::string &var_name) const |
const GenericVariableValue< is_ad > & | coupledGenericValue (const std::string &var_name, unsigned int comp=0) const |
const GenericVariableValue< false > & | coupledGenericValue (const std::string &var_name, unsigned int comp) const |
const GenericVariableValue< true > & | coupledGenericValue (const std::string &var_name, unsigned int comp) const |
std::vector< const GenericVariableValue< is_ad > *> | coupledGenericValues (const std::string &var_name) const |
std::vector< const GenericVariableValue< false > *> | coupledGenericValues (const std::string &var_name) const |
std::vector< const GenericVariableValue< true > *> | coupledGenericValues (const std::string &var_name) const |
const GenericVariableValue< is_ad > & | coupledGenericDofValue (const std::string &var_name, unsigned int comp=0) const |
const GenericVariableValue< false > & | coupledGenericDofValue (const std::string &var_name, unsigned int comp) const |
const GenericVariableValue< true > & | coupledGenericDofValue (const std::string &var_name, unsigned int comp) const |
virtual const VariableValue & | coupledValueLower (const std::string &var_name, unsigned int comp=0) const |
const ADVariableValue & | adCoupledValue (const std::string &var_name, unsigned int comp=0) const |
std::vector< const ADVariableValue *> | adCoupledValues (const std::string &var_name) const |
const ADVariableValue & | adCoupledLowerValue (const std::string &var_name, unsigned int comp=0) const |
const ADVectorVariableValue & | adCoupledVectorValue (const std::string &var_name, unsigned int comp=0) const |
std::vector< const ADVectorVariableValue *> | adCoupledVectorValues (const std::string &var_name) const |
virtual const VariableValue & | coupledVectorTagValue (const std::string &var_names, TagID tag, unsigned int index=0) const |
virtual const VariableValue & | coupledVectorTagValue (const std::string &var_names, const std::string &tag_name, unsigned int index=0) const |
std::vector< const VariableValue *> | coupledVectorTagValues (const std::string &var_names, TagID tag) const |
std::vector< const VariableValue *> | coupledVectorTagValues (const std::string &var_names, const std::string &tag_name) const |
virtual const ArrayVariableValue & | coupledVectorTagArrayValue (const std::string &var_names, TagID tag, unsigned int index=0) const |
virtual const ArrayVariableValue & | coupledVectorTagArrayValue (const std::string &var_names, const std::string &tag_name, unsigned int index=0) const |
std::vector< const ArrayVariableValue *> | coupledVectorTagArrayValues (const std::string &var_names, TagID tag) const |
std::vector< const ArrayVariableValue *> | coupledVectorTagArrayValues (const std::string &var_names, const std::string &tag_name) const |
virtual const VariableGradient & | coupledVectorTagGradient (const std::string &var_names, TagID tag, unsigned int index=0) const |
virtual const VariableGradient & | coupledVectorTagGradient (const std::string &var_names, const std::string &tag_name, unsigned int index=0) const |
std::vector< const VariableGradient *> | coupledVectorTagGradients (const std::string &var_names, TagID tag) const |
std::vector< const VariableGradient *> | coupledVectorTagGradients (const std::string &var_names, const std::string &tag_name) const |
virtual const ArrayVariableGradient & | coupledVectorTagArrayGradient (const std::string &var_names, TagID tag, unsigned int index=0) const |
virtual const ArrayVariableGradient & | coupledVectorTagArrayGradient (const std::string &var_names, const std::string &tag_name, unsigned int index=0) const |
std::vector< const ArrayVariableGradient *> | coupledVectorTagArrayGradients (const std::string &var_names, TagID tag) const |
std::vector< const ArrayVariableGradient *> | coupledVectorTagArrayGradients (const std::string &var_names, const std::string &tag_name) const |
virtual const VariableValue & | coupledVectorTagDofValue (const std::string &var_name, TagID tag, unsigned int index=0) const |
virtual const VariableValue & | coupledVectorTagDofValue (const std::string &var_names, const std::string &tag_name, unsigned int index=0) const |
const ArrayVariableValue & | coupledVectorTagArrayDofValue (const std::string &var_name, const std::string &tag_name, unsigned int comp=0) const |
std::vector< const VariableValue *> | coupledVectorTagDofValues (const std::string &var_names, TagID tag) const |
std::vector< const VariableValue *> | coupledVectorTagDofValues (const std::string &var_names, const std::string &tag_name) const |
virtual const VariableValue & | coupledMatrixTagValue (const std::string &var_names, TagID tag, unsigned int index=0) const |
virtual const VariableValue & | coupledMatrixTagValue (const std::string &var_names, const std::string &tag_name, unsigned int index=0) const |
std::vector< const VariableValue *> | coupledMatrixTagValues (const std::string &var_names, TagID tag) const |
std::vector< const VariableValue *> | coupledMatrixTagValues (const std::string &var_names, const std::string &tag_name) const |
virtual const VectorVariableValue & | coupledVectorValue (const std::string &var_name, unsigned int comp=0) const |
virtual const ArrayVariableValue & | coupledArrayValue (const std::string &var_name, unsigned int comp=0) const |
std::vector< const ArrayVariableValue *> | coupledArrayValues (const std::string &var_name) const |
MooseWritableVariable & | writableVariable (const std::string &var_name, unsigned int comp=0) |
virtual VariableValue & | writableCoupledValue (const std::string &var_name, unsigned int comp=0) |
void | checkWritableVar (MooseWritableVariable *var) |
virtual const VariableValue & | coupledValueOld (const std::string &var_name, unsigned int comp=0) const |
std::vector< const VariableValue *> | coupledValuesOld (const std::string &var_name) const |
virtual const VariableValue & | coupledValueOlder (const std::string &var_name, unsigned int comp=0) const |
std::vector< const VariableValue *> | coupledValuesOlder (const std::string &var_name) const |
virtual const VariableValue & | coupledValuePreviousNL (const std::string &var_name, unsigned int comp=0) const |
virtual const VectorVariableValue & | coupledVectorValueOld (const std::string &var_name, unsigned int comp=0) const |
virtual const VectorVariableValue & | coupledVectorValueOlder (const std::string &var_name, unsigned int comp=0) const |
virtual const ArrayVariableValue & | coupledArrayValueOld (const std::string &var_name, unsigned int comp=0) const |
virtual const ArrayVariableValue & | coupledArrayValueOlder (const std::string &var_name, unsigned int comp=0) const |
virtual const VariableGradient & | coupledGradient (const std::string &var_name, unsigned int comp=0) const |
std::vector< const VariableGradient *> | coupledGradients (const std::string &var_name) const |
const ADVariableGradient & | adCoupledGradient (const std::string &var_name, unsigned int comp=0) const |
const ADVariableGradient & | adCoupledGradientDot (const std::string &var_name, unsigned int comp=0) const |
std::vector< const ADVariableGradient *> | adCoupledGradients (const std::string &var_name) const |
const GenericVariableGradient< is_ad > & | coupledGenericGradient (const std::string &var_name, unsigned int comp=0) const |
const GenericVariableGradient< false > & | coupledGenericGradient (const std::string &var_name, unsigned int comp) const |
const GenericVariableGradient< true > & | coupledGenericGradient (const std::string &var_name, unsigned int comp) const |
std::vector< const GenericVariableGradient< is_ad > *> | coupledGenericGradients (const std::string &var_name) const |
std::vector< const GenericVariableGradient< false > *> | coupledGenericGradients (const std::string &var_name) const |
std::vector< const GenericVariableGradient< true > *> | coupledGenericGradients (const std::string &var_name) const |
const ADVectorVariableGradient & | adCoupledVectorGradient (const std::string &var_name, unsigned int comp=0) const |
const ADVariableSecond & | adCoupledSecond (const std::string &var_name, unsigned int comp=0) const |
const ADVectorVariableSecond & | adCoupledVectorSecond (const std::string &var_name, unsigned int comp=0) const |
virtual const VariableGradient & | coupledGradientOld (const std::string &var_name, unsigned int comp=0) const |
std::vector< const VariableGradient *> | coupledGradientsOld (const std::string &var_name) const |
virtual const VariableGradient & | coupledGradientOlder (const std::string &var_name, unsigned int comp=0) const |
virtual const VariableGradient & | coupledGradientPreviousNL (const std::string &var_name, unsigned int comp=0) const |
virtual const VariableGradient & | coupledGradientDot (const std::string &var_name, unsigned int comp=0) const |
virtual const VariableGradient & | coupledGradientDotDot (const std::string &var_name, unsigned int comp=0) const |
virtual const VectorVariableGradient & | coupledVectorGradient (const std::string &var_name, unsigned int comp=0) const |
virtual const VectorVariableGradient & | coupledVectorGradientOld (const std::string &var_name, unsigned int comp=0) const |
virtual const VectorVariableGradient & | coupledVectorGradientOlder (const std::string &var_name, unsigned int comp=0) const |
virtual const ArrayVariableGradient & | coupledArrayGradient (const std::string &var_name, unsigned int comp=0) const |
virtual const ArrayVariableGradient & | coupledArrayGradientOld (const std::string &var_name, unsigned int comp=0) const |
virtual const ArrayVariableGradient & | coupledArrayGradientOlder (const std::string &var_name, unsigned int comp=0) const |
virtual const ArrayVariableGradient & | coupledArrayGradientDot (const std::string &var_name, unsigned int comp=0) const |
virtual const VectorVariableCurl & | coupledCurl (const std::string &var_name, unsigned int comp=0) const |
virtual const VectorVariableCurl & | coupledCurlOld (const std::string &var_name, unsigned int comp=0) const |
virtual const VectorVariableCurl & | coupledCurlOlder (const std::string &var_name, unsigned int comp=0) const |
virtual const VariableSecond & | coupledSecond (const std::string &var_name, unsigned int comp=0) const |
virtual const VariableSecond & | coupledSecondOld (const std::string &var_name, unsigned int comp=0) const |
virtual const VariableSecond & | coupledSecondOlder (const std::string &var_name, unsigned int comp=0) const |
virtual const VariableSecond & | coupledSecondPreviousNL (const std::string &var_name, unsigned int comp=0) const |
virtual const VariableValue & | coupledDot (const std::string &var_name, unsigned int comp=0) const |
std::vector< const VariableValue *> | coupledDots (const std::string &var_name) const |
virtual const VariableValue & | coupledDotDot (const std::string &var_name, unsigned int comp=0) const |
virtual const VariableValue & | coupledDotOld (const std::string &var_name, unsigned int comp=0) const |
virtual const VariableValue & | coupledDotDotOld (const std::string &var_name, unsigned int comp=0) const |
const ADVariableValue & | adCoupledDot (const std::string &var_name, unsigned int comp=0) const |
std::vector< const ADVariableValue *> | adCoupledDots (const std::string &var_name) const |
const ADVariableValue & | adCoupledDotDot (const std::string &var_name, unsigned int comp=0) const |
const ADVectorVariableValue & | adCoupledVectorDot (const std::string &var_name, unsigned int comp=0) const |
virtual const VectorVariableValue & | coupledVectorDot (const std::string &var_name, unsigned int comp=0) const |
virtual const VectorVariableValue & | coupledVectorDotDot (const std::string &var_name, unsigned int comp=0) const |
virtual const VectorVariableValue & | coupledVectorDotOld (const std::string &var_name, unsigned int comp=0) const |
virtual const VectorVariableValue & | coupledVectorDotDotOld (const std::string &var_name, unsigned int comp=0) const |
virtual const VariableValue & | coupledVectorDotDu (const std::string &var_name, unsigned int comp=0) const |
virtual const VariableValue & | coupledVectorDotDotDu (const std::string &var_name, unsigned int comp=0) const |
virtual const ArrayVariableValue & | coupledArrayDot (const std::string &var_name, unsigned int comp=0) const |
virtual const ArrayVariableValue & | coupledArrayDotDot (const std::string &var_name, unsigned int comp=0) const |
virtual const ArrayVariableValue & | coupledArrayDotOld (const std::string &var_name, unsigned int comp=0) const |
virtual const ArrayVariableValue & | coupledArrayDotDotOld (const std::string &var_name, unsigned int comp=0) const |
virtual const VariableValue & | coupledDotDu (const std::string &var_name, unsigned int comp=0) const |
virtual const VariableValue & | coupledDotDotDu (const std::string &var_name, unsigned int comp=0) const |
const VariableValue & | coupledArrayDotDu (const std::string &var_name, unsigned int comp=0) const |
const T & | coupledNodalValue (const std::string &var_name, unsigned int comp=0) const |
const Moose::ADType< T >::type & | adCoupledNodalValue (const std::string &var_name, unsigned int comp=0) const |
const T & | coupledNodalValueOld (const std::string &var_name, unsigned int comp=0) const |
const T & | coupledNodalValueOlder (const std::string &var_name, unsigned int comp=0) const |
const T & | coupledNodalValuePreviousNL (const std::string &var_name, unsigned int comp=0) const |
const T & | coupledNodalDot (const std::string &var_name, unsigned int comp=0) const |
virtual const VariableValue & | coupledNodalDotDot (const std::string &var_name, unsigned int comp=0) const |
virtual const VariableValue & | coupledNodalDotOld (const std::string &var_name, unsigned int comp=0) const |
virtual const VariableValue & | coupledNodalDotDotOld (const std::string &var_name, unsigned int comp=0) const |
virtual const VariableValue & | coupledDofValues (const std::string &var_name, unsigned int comp=0) const |
std::vector< const VariableValue *> | coupledAllDofValues (const std::string &var_name) const |
virtual const VariableValue & | coupledDofValuesOld (const std::string &var_name, unsigned int comp=0) const |
std::vector< const VariableValue *> | coupledAllDofValuesOld (const std::string &var_name) const |
virtual const VariableValue & | coupledDofValuesOlder (const std::string &var_name, unsigned int comp=0) const |
std::vector< const VariableValue *> | coupledAllDofValuesOlder (const std::string &var_name) const |
virtual const ArrayVariableValue & | coupledArrayDofValues (const std::string &var_name, unsigned int comp=0) const |
virtual const ADVariableValue & | adCoupledDofValues (const std::string &var_name, unsigned int comp=0) const |
const ADVariableValue & | adZeroValue () const |
const ADVariableGradient & | adZeroGradient () const |
const ADVariableSecond & | adZeroSecond () const |
const GenericVariableValue< is_ad > & | genericZeroValue () |
const GenericVariableValue< false > & | genericZeroValue () |
const GenericVariableValue< true > & | genericZeroValue () |
const GenericVariableGradient< is_ad > & | genericZeroGradient () |
const GenericVariableGradient< false > & | genericZeroGradient () |
const GenericVariableGradient< true > & | genericZeroGradient () |
const GenericVariableSecond< is_ad > & | genericZeroSecond () |
const GenericVariableSecond< false > & | genericZeroSecond () |
const GenericVariableSecond< true > & | genericZeroSecond () |
bool | checkVar (const std::string &var_name, unsigned int comp=0, unsigned int comp_bound=0) const |
const MooseVariableFieldBase * | getFEVar (const std::string &var_name, unsigned int comp) const |
const MooseVariableFieldBase * | getFieldVar (const std::string &var_name, unsigned int comp) const |
MooseVariableFieldBase * | getFieldVar (const std::string &var_name, unsigned int comp) |
const T * | getVarHelper (const std::string &var_name, unsigned int comp) const |
T * | getVarHelper (const std::string &var_name, unsigned int comp) |
MooseVariable * | getVar (const std::string &var_name, unsigned int comp) |
const MooseVariable * | getVar (const std::string &var_name, unsigned int comp) const |
VectorMooseVariable * | getVectorVar (const std::string &var_name, unsigned int comp) |
const VectorMooseVariable * | getVectorVar (const std::string &var_name, unsigned int comp) const |
ArrayMooseVariable * | getArrayVar (const std::string &var_name, unsigned int comp) |
const ArrayMooseVariable * | getArrayVar (const std::string &var_name, unsigned int comp) const |
void | validateExecutionerType (const std::string &name, const std::string &fn_name) const |
std::vector< T > | coupledVectorHelper (const std::string &var_name, const Func &func) const |
void | markMatPropRequested (const std::string &) |
MaterialPropertyName | getMaterialPropertyName (const std::string &name) const |
const GenericMaterialProperty< T, is_ad > * | defaultGenericMaterialProperty (const std::string &name) |
const GenericMaterialProperty< T, is_ad > * | defaultGenericMaterialProperty (const std::string &name) |
const MaterialProperty< T > * | defaultMaterialProperty (const std::string &name) |
const MaterialProperty< T > * | defaultMaterialProperty (const std::string &name) |
const ADMaterialProperty< T > * | defaultADMaterialProperty (const std::string &name) |
const ADMaterialProperty< T > * | defaultADMaterialProperty (const std::string &name) |
Static Protected Attributes | |
static constexpr unsigned | _tensor_dimensionality = 3 |
Internal dimensionality of tensors (currently this is 3 throughout tensor_mechanics) More... | |
static RankFourTensor | _identityTensor |
static const std::string | _interpolated_old |
static const std::string | _interpolated_older |
Private Types | |
enum | SmootherFunctionType { SmootherFunctionType::cos, SmootherFunctionType::poly1, SmootherFunctionType::poly2, SmootherFunctionType::poly3 } |
The type of smoother function. More... | |
Private Attributes | |
std::vector< Real > | _trial_sp |
"Trial" value of stress_params that initializes the return-map process This is derived from stress = stress_old + Eijkl * strain_increment. More... | |
RankTwoTensor | _stress_trial |
"Trial" value of stress that is set at the beginning of the return-map process. More... | |
std::vector< Real > | _rhs |
0 = rhs[0] = S[0] - S[0]^trial + ga * E[0, i] * dg/dS[i] 0 = rhs[1] = S[1] - S[1]^trial + ga * E[1, i] * dg/dS[i] ... More... | |
std::vector< std::vector< Real > > | _dvar_dtrial |
d({stress_param[i], gaE})/d(trial_stress_param[j]) More... | |
std::vector< Real > | _ok_sp |
The state (ok_sp, ok_intnl) is known to be admissible, so ok_sp are stress_params that are "OK". More... | |
std::vector< Real > | _ok_intnl |
The state (ok_sp, ok_intnl) is known to be admissible. More... | |
std::vector< Real > | _del_stress_params |
_del_stress_params = trial_stress_params - ok_sp This is fixed at the beginning of the return-map process, irrespective of substepping. More... | |
std::vector< Real > | _current_sp |
The current values of the stress params during the Newton-Raphson. More... | |
std::vector< Real > | _current_intnl |
The current values of the internal params during the Newton-Raphson. More... | |
enum MultiParameterPlasticityStressUpdate::SmootherFunctionType | _smoother_function_type |
MultiParameterPlasticityStressUpdate performs the return-map algorithm and associated stress updates for plastic models where the yield function and flow directions depend on multiple parameters (called "stress_params" in the documentation and sp in the code) that are themselves functions of stress.
Let the stress_params be S = {S[0], S[1], ... S[N-1]} and define _num_sp = N.
For instance, CappedDruckerPrager plasticity has _num_sp = 2 and defines S[0] = p = stress.trace() S[1] = q = sqrt(stress.secondInvariant())
The point of the stress_params is to reduce the number of degrees of freedom involved in the return-map algorithm (for computational efficiency as all the intensive computation occurs in "stress_param space") and to allow users to write their yield functions, etc, in forms that are clear to them to avoid errors.
Derived classes can describe plasticity via multiple yield functions. The number of yield function is _num_yf. The yield function(s) and flow potential(s) must be functions of the stress_params.
Derived classes can use any number of internal parameters. The number of internal parameters is _num_intnl. The derived classes must define the evolution of these internal parameters, which are typically functions of certain "distances" in the return-mapping procedure.
For instance, CappedDruckerPrager plasticity has three yield functions (a smoothed DruckerPrager cone, a tensile failure envelope, and a compressive failure envelope) and two internal parameters (plastic shear strain and plastic tensile strain). The strength parameters (cohesion, friction angle, dilation angle, tensile strength, compressive strength) are functions of these internal parameters.
A novel smoothing procedure is used to smooth the derived class's yield functions into a single, smooth yield function. The smoothing is also performed for the flow potential. All return-mapping, etc, processes are performed on this single yield function and flow potential.
The return-map algorithm implements the updateState method of StressUpdateBase. In particular, the following system of equations is solved: 0 = _rhs[0] = S[0] - S[0]^trial + ga * E[0, j] * dg/dS[j] 0 = _rhs[1] = S[1] - S[1]^trial + ga * E[1, j] * dg/dS[j] ... 0 = _rhs[N-1] = S[N-1] - S[N-1]^trial + ga * E[N-1, j] * dg/dS[j] 0 = _rhs[N] = f(S, intnl) (here there is an implied sum over j) for the _num_sp stress_params S, and the single scalar ga (actually I solve for gaE = ga * _En, where _En is a normalising factor so that gaE is of similar magnitude to the S variables). In general E[a, b] = dS[a]/dstress(i, j) E(i, j, k, l) dS[b]/dstress(k, l), and in the code below it is assumed that the E[a, b] are independent of the stress_params, but adding a dependence would only require some Jacobian terms to be modified. There are N+1 rhs equations to solve. Here f is the smoothed yield function, so the last equation is the admissibility condition (the returned stress lies on the yield surface) and g is the flow potential so the other conditions implement the normality condition. It is up to the derived classes to defined E[i, j] so that the rhs really represents the normality condition.
For instance, CappedDruckerPrager has (with Eijkl being the elasticity tensor): E[0, 0] = _Epp = Eijkl.sum3x3() E[0, 1] = 0 E[1, 0] = 0 E[1, 1] = Eijkl(0, 1, 0, 1)
Definition at line 94 of file MultiParameterPlasticityStressUpdate.h.
|
inherited |
Definition at line 57 of file StressUpdateBase.h.
|
inherited |
Definition at line 59 of file StressUpdateBase.h.
|
inherited |
Definition at line 58 of file StressUpdateBase.h.
|
inherited |
Definition at line 60 of file StressUpdateBase.h.
|
strongprivate |
The type of smoother function.
Enumerator | |
---|---|
cos | |
poly1 | |
poly2 | |
poly3 |
Definition at line 739 of file MultiParameterPlasticityStressUpdate.h.
MultiParameterPlasticityStressUpdate::MultiParameterPlasticityStressUpdate | ( | const InputParameters & | parameters, |
unsigned | num_sp, | ||
unsigned | num_yf, | ||
unsigned | num_intnl | ||
) |
Definition at line 80 of file MultiParameterPlasticityStressUpdate.C.
|
inlinevirtualinherited |
Given the elastic strain increment compute the number of substeps required to bring a substepped trial stress guess distance from the yield surface into the tolerance specified in the individual child class.
Definition at line 160 of file StressUpdateBase.h.
|
protected |
Calculates the residual-squared for the Newton-Raphson + line-search.
rhs[in] | The RHS vector |
Definition at line 800 of file MultiParameterPlasticityStressUpdate.C.
Referenced by lineSearch(), and updateState().
|
protected |
Calculates the RHS in the following 0 = rhs[0] = S[0] - S[0]^trial + ga * E[0, j] * dg/dS[j] 0 = rhs[1] = S[1] - S[1]^trial + ga * E[1, j] * dg/dS[j] ...
0 = rhs[N-1] = S[N-1] - S[N-1]^trial + ga * E[N-1, j] * dg/dS[j] 0 = rhs[N] = f(S, intnl) where N = _num_sp
trial_stress_params[in] | The trial stress parameters for this (sub)strain increment, S[:]^trial |
stress_params[in] | The current stress parameters, S[:] |
gaE[in] | ga*_En (the normalisation with _En is so that gaE is of similar magnitude to S) |
smoothed_q[in] | Holds the current value of yield function and derivatives evaluated at the current stress parameters and the current internal parameters |
rhs[out] | The result |
Definition at line 809 of file MultiParameterPlasticityStressUpdate.C.
Referenced by lineSearch(), and updateState().
|
protectedpure virtual |
Completely fills all_q with correct values.
These values are: (1) the yield function values, yf[i] (2) d(yf[i])/d(stress_params[j]) (3) d(yf[i])/d(intnl[j]) (4) d(flowPotential[i])/d(stress_params[j]) (5) d2(flowPotential[i])/d(stress_params[j])/d(stress_params[k]) (6) d2(flowPotential[i])/d(stress_params[j])/d(intnl[k])
stress_params[in] | The stress parameters | |
intnl[in] | The internal parameters | |
[out] | all_q | All the desired quantities |
Implemented in TwoParameterPlasticityStressUpdate, CappedMohrCoulombStressUpdate, and TensileStressUpdate.
Referenced by smoothAllQuantities().
|
inlinevirtualinherited |
Compute the strain energy rate density for this inelastic model for the current step.
stress | The stress tensor at the end of the step |
strain_rate | The strain rate at the end of the step |
Reimplemented in PowerLawCreepStressUpdateTempl< is_ad >.
Definition at line 180 of file StressUpdateBase.h.
|
protectedpure virtual |
Computes stress_params, given stress.
Derived classes must override this
stress[in] | Stress tensor |
stress_params[out] | The compute stress_params |
Implemented in TwoParameterPlasticityStressUpdate, CappedMohrCoulombStressUpdate, and TensileStressUpdate.
Referenced by updateState().
|
virtualinherited |
Reimplemented in RadialReturnStressUpdateTempl< is_ad >, GeneralizedRadialReturnStressUpdateTempl< is_ad >, LAROMANCEStressUpdateBaseTempl< is_ad >, and ViscoplasticityStressUpdateBaseTempl< is_ad >.
Definition at line 61 of file StressUpdateBase.C.
|
protectedvirtual |
Calculates the consistent tangent operator.
Derived classes may choose to override this for computational efficiency. The implementation in this class is quite expensive, even though it looks compact and clean, because of all the manipulations of RankFourTensors involved.
stress_trial[in] | the trial value of the stress tensor for this strain increment | |
trial_stress_params[in] | the trial values of the stress_params for this strain increment | |
stress[in] | the returned value of the stress tensor for this strain increment | |
stress_params[in] | the returned value of the stress_params for this strain increment | |
gaE[in] | the total value of that came from this strain increment | |
smoothed_q[in] | contains the yield function and derivatives evaluated at (p, q) | |
Eijkl[in] | The elasticity tensor | |
compute_full_tangent_operator[in] | true if the full consistent tangent operator is needed, otherwise false | |
dvar_dtrial[in] | dvar_dtrial[i][j] = d({stress_param[i],gaE})/d(trial_stress_param[j]) for this strain increment | |
[out] | cto | The consistent tangent operator |
Reimplemented in TwoParameterPlasticityStressUpdate, CappedMohrCoulombStressUpdate, TensileStressUpdate, and CappedMohrCoulombCosseratStressUpdate.
Definition at line 723 of file MultiParameterPlasticityStressUpdate.C.
Referenced by updateState().
|
protectedpure virtual |
d2(stress_param[i])/d(stress)/d(stress) at given stress
stress | stress tensor |
Implemented in TwoParameterPlasticityStressUpdate, CappedMohrCoulombStressUpdate, and TensileStressUpdate.
Referenced by consistentTangentOperatorV().
|
protected |
Derivative of -RHS with respect to the stress_params and gaE, placed into an array ready for solving the linear system using LAPACK gsev.
smoothed_q[in] | Holds the current value of yield function and derivatives evaluated at the current values of the stress_params and the internal parameters |
dintnl[in] | The derivatives of the internal parameters wrt the stress_params |
stress_params[in] | The current value of the stress_params during the Newton-Raphson process |
gaE[in] | The current value of gaE |
jac[out] | The outputted derivatives |
Definition at line 826 of file MultiParameterPlasticityStressUpdate.C.
Referenced by dVardTrial(), and nrStep().
Derivative of smoother.
Definition at line 531 of file MultiParameterPlasticityStressUpdate.C.
Referenced by smoothAllQuantities().
|
protectedpure virtual |
d(stress_param[i])/d(stress) at given stress
stress | stress tensor |
Implemented in TwoParameterPlasticityStressUpdate, CappedMohrCoulombStressUpdate, and TensileStressUpdate.
Referenced by consistentTangentOperatorV(), and setInelasticStrainIncrementAfterReturn().
|
protected |
Calculates derivatives of the stress_params and gaE with repect to the trial values of the stress_params for the (sub)strain increment.
After the strain increment has been fully applied, dvar_dtrial will contain the result appropriate to the full strain increment. Before that time (if applying in sub-strain increments) it will contain the result appropriate to the amount of strain increment applied successfully.
elastic_only[in] | whether this was an elastic step: if so then the updates to dvar_dtrial are fairly trivial |
trial_stress_params[in] | Trial values of stress_params for this (sub)strain increment |
stress_params[in] | Returned values of stress_params for this (sub)strain increment |
gaE[in] | the value of gaE that came from this (sub)strain increment |
intnl[in] | the value of the internal parameters at the returned position |
smoothed_q[in] | contains the yield function and derivatives evaluated at (stress_params, intnl) |
step_size[in] | size of this (sub)strain increment |
compute_full_tangent_operator[in] | true if the full consistent tangent operator is needed, otherwise false |
dvar_dtrial[out] | dvar_dtrial[i][j] = d({stress_param[i],gaE})/d(trial_stress_param[j]) |
Definition at line 871 of file MultiParameterPlasticityStressUpdate.C.
Referenced by updateState().
|
protectedvirtual |
Performs any necessary cleaning-up, then throw MooseException(message)
message | The message to using in MooseException |
Definition at line 659 of file MultiParameterPlasticityStressUpdate.C.
Referenced by dVardTrial(), and updateState().
|
protectedvirtual |
Derived classes may use this to perform calculations after the return-map process has completed successfully in stress_param space but before the returned stress tensor has been calculcated.
rotation_increment[in] | The large-strain rotation increment |
Reimplemented in CappedDruckerPragerStressUpdate, CappedWeakPlaneStressUpdate, and CappedWeakInclinedPlaneStressUpdate.
Definition at line 670 of file MultiParameterPlasticityStressUpdate.C.
Referenced by updateState().
|
inlineoverrideprotectedvirtual |
Reimplemented from StressUpdateBaseTempl< is_ad, R2, R4 >.
Definition at line 119 of file MultiParameterPlasticityStressUpdate.h.
|
protectedvirtual |
Derived classes may use this to perform calculations before any return-map process is performed, for instance, to initialize variables.
This is called at the very start of updateState, even before any checking for admissible stresses, etc, is performed
Reimplemented in CappedDruckerPragerStressUpdate, CappedWeakPlaneStressUpdate, and CappedWeakInclinedPlaneStressUpdate.
Definition at line 665 of file MultiParameterPlasticityStressUpdate.C.
Referenced by updateState().
|
protectedvirtual |
Sets (stress_params, intnl) at "good guesses" of the solution to the Return-Map algorithm.
The purpose of these "good guesses" is to speed up the Newton-Raphson process by providing it with a good initial guess. Derived classes may choose to override this if their plastic models are easy enough to solve approximately. The default values, provided by this class, are simply gaE = 0, stress_params = trial_stress_params, that is, the "good guess" is just the trial point for this (sub)strain increment.
trial_stress_params[in] | The stress_params at the trial point |
intnl_old[in] | The internal parameters before applying the (sub)strain increment |
stress_params[out] | The "good guess" value of the stress_params |
gaE[out] | The "good guess" value of gaE |
intnl[out] | The "good guess" value of the internal parameters |
Reimplemented in TwoParameterPlasticityStressUpdate, CappedMohrCoulombStressUpdate, and TensileStressUpdate.
Definition at line 711 of file MultiParameterPlasticityStressUpdate.C.
Referenced by updateState().
|
overrideprotectedvirtual |
Reimplemented from Material.
Reimplemented in CappedWeakInclinedPlaneStressUpdate.
Definition at line 139 of file MultiParameterPlasticityStressUpdate.C.
Referenced by CappedWeakInclinedPlaneStressUpdate::initQpStatefulProperties(), and updateState().
|
inlinevirtualinherited |
Is the implmented model isotropic? The safe default is 'false'.
Reimplemented in RadialReturnStressUpdateTempl< is_ad >, CappedDruckerPragerStressUpdate, and CappedMohrCoulombStressUpdate.
Definition at line 130 of file StressUpdateBase.h.
Referenced by ComputeMultipleInelasticStressBase::initialSetup().
Smooths yield functions.
The returned value must be zero if abs(f_diff) >= _smoothing_tol and otherwise must satisfy, over -_smoothing_tol <= f_diff <= _smoothing_tol: (1) C2 (2) zero at f_diff = +/- _smoothing_tol (3) derivative is +/-0.5 at f_diff = +/- _smoothing_tol (4) derivative must be in [-0.5, 0.5] (5) second derivative is zero at f_diff = +/- _smoothing_tol (6) second derivative must be non-negative in order to ensure C2 differentiability and convexity of the smoothed yield surface.
Definition at line 482 of file MultiParameterPlasticityStressUpdate.C.
Referenced by smoothAllQuantities(), and yieldF().
|
protected |
Performs a line-search to find stress_params and gaE Upon entry:
res2[in,out] | the residual-squared, both as an input and output |
stress_params[in,out] | Upon input the value of the stress_params before the current Newton-Raphson process was initiated. Upon exit this will hold the values coming from the line search. |
trial_stress_params[in] | Trial value for the stress_params for this (sub)strain increment |
gaE[in,out] | Upon input the value of gaE before the current Newton-Raphson iteration was initiated. Upon exit this will hold the value coming from the line-search |
smoothed_q[in,out] | Upon input, the value of the smoothed yield function and derivatives at the prior-to-Newton configuration. Upon exit this is evaluated at the new (stress_params, intnl) |
intnl_ok[in] | The value of the internal parameters from the start of this (sub)strain increment |
intnl[in,out] | The value of the internal parameters after the line-search has converged |
rhs[in,out] | Upon entry this contains the solution to the Newton-Raphson. Upon exit this contains the updated rhs values |
Definition at line 551 of file MultiParameterPlasticityStressUpdate.C.
Referenced by updateState().
|
protected |
Performs a Newton-Raphson step to attempt to zero rhs Upon return, rhs will contain the solution.
smoothed_q[in] | The value of the smoothed yield function and derivatives prior to this Newton-Raphson step |
trial_stress_params[in] | Trial value for the stress_params for this (sub)strain increment |
stress_params[in] | The current value of the stress_params |
intnl[in] | The current value of the internal parameters |
gaE[in] | The current value of gaE |
rhs[in,out] | Upon entry, the rhs to zero using Newton-Raphson. Upon exit, the solution to the Newton-Raphson problem |
Definition at line 635 of file MultiParameterPlasticityStressUpdate.C.
Referenced by updateState().
|
protected |
Check whether precision loss has occurred.
[in] | solution | The solution to the Newton-Raphson system |
[in] | stress_params | The currect values of the stress_params for this (sub)strain increment |
[in] | gaE | The currenct value of gaE for this (sub)strain increment |
Definition at line 981 of file MultiParameterPlasticityStressUpdate.C.
Referenced by updateState().
|
protectedvirtual |
Derived classes may employ this function to record stuff or do other computations prior to the return-mapping algorithm.
We know that (trial_stress_params, intnl_old) is inadmissible when this is called
trial_stress_params[in] | The trial values of the stress parameters |
stress_trial[in] | Trial stress tensor |
intnl_old[in] | Old value of the internal parameters. |
yf[in] | The yield functions at (p_trial, q_trial, intnl_old) |
Eijkl[in] | The elasticity tensor |
Reimplemented in TwoParameterPlasticityStressUpdate, CappedMohrCoulombStressUpdate, TensileStressUpdate, and CappedMohrCoulombCosseratStressUpdate.
Definition at line 676 of file MultiParameterPlasticityStressUpdate.C.
Referenced by updateState().
|
overrideprotectedvirtual |
If updateState is not called during a timestep, this will be.
This method allows derived classes to set internal parameters from their Old values, for instance
Reimplemented from StressUpdateBaseTempl< is_ad, R2, R4 >.
Definition at line 150 of file MultiParameterPlasticityStressUpdate.C.
|
pure virtualinherited |
Does the model require the elasticity tensor to be isotropic?
Implemented in RadialReturnStressUpdateTempl< is_ad >, GeneralizedRadialReturnStressUpdateTempl< is_ad >, CappedDruckerPragerStressUpdate, CappedDruckerPragerCosseratStressUpdate, LinearViscoelasticStressUpdate, CappedMohrCoulombCosseratStressUpdate, CappedWeakPlaneStressUpdate, CappedWeakInclinedPlaneStressUpdate, CappedWeakPlaneCosseratStressUpdate, CappedMohrCoulombStressUpdate, TensileStressUpdate, and ViscoplasticityStressUpdateBaseTempl< is_ad >.
Referenced by ComputeMultipleInelasticStressBase::initialSetup(), and ADComputeMultipleInelasticStress::initialSetup().
|
inlinevirtualinherited |
Reset material properties.
Useful for substepping with inelastic models.
Reimplemented in PowerLawCreepStressUpdateTempl< is_ad >, and LAROMANCEStressUpdateBaseTempl< is_ad >.
Definition at line 172 of file StressUpdateBase.h.
|
inlinefinalvirtualinherited |
|
inlinefinalvirtualinherited |
Retained as empty methods to avoid a warning from Material.C in framework. These methods are unused in all inheriting classes and should not be overwritten.
Reimplemented from Material.
Definition at line 137 of file StressUpdateBase.h.
|
protectedpure virtual |
Sets _Eij and _En and _Cij.
Implemented in TwoParameterPlasticityStressUpdate, CappedMohrCoulombStressUpdate, TensileStressUpdate, and CappedMohrCoulombCosseratStressUpdate.
Referenced by updateState().
|
protectedvirtual |
Sets inelastic strain increment from the returned configuration This is called after the return-map process has completed successfully in stress_param space, just after finalizeReturnProcess has been called.
Derived classes may override this function
stress_trial[in] | The trial value of stress |
gaE[in] | The value of gaE after the return-map process has completed successfully |
smoothed_q[in] | Holds the current value of yield function and derivatives evaluated at the returned configuration |
elasticity_tensor[in] | The elasticity tensor |
returned_stress[in] | The stress after the return-map process |
inelastic_strain_increment[out] | The inelastic strain increment resulting from this return-map |
Reimplemented in TwoParameterPlasticityStressUpdate.
Definition at line 784 of file MultiParameterPlasticityStressUpdate.C.
Referenced by updateState().
|
protectedpure virtual |
Sets the derivatives of internal parameters, based on the trial values of stress_params, their current values, and the current values of the internal parameters.
Derived classes must override this.
trial_stress_params[in] | The trial stress parameters |
current_stress_params[in] | The current stress parameters |
intnl[in] | The current value of the internal parameters |
dintnl[out] | The derivatives dintnl[i][j] = d(intnl[i])/d(stress_param j) |
Implemented in TwoParameterPlasticityStressUpdate, CappedMohrCoulombStressUpdate, and TensileStressUpdate.
Referenced by dVardTrial(), and nrStep().
|
protectedpure virtual |
Sets the internal parameters based on the trial values of stress_params, their current values, and the old values of the internal parameters.
Derived classes must override this.
trial_stress_params[in] | The trial stress parameters (eg trial_p and trial_q) |
current_stress_params[in] | The current stress parameters (eg p and q) |
intnl_old[out] | Old value of internal parameters |
intnl[out] | The value of internal parameters to be set |
Implemented in TwoParameterPlasticityStressUpdate, CappedMohrCoulombStressUpdate, and TensileStressUpdate.
Referenced by lineSearch(), and updateState().
|
inherited |
Sets the value of the global variable _qp for inheriting classes.
Definition at line 46 of file StressUpdateBase.C.
Referenced by ComputeCreepPlasticityStress::updateQpState().
|
protectedpure virtual |
Sets stress from the admissible parameters.
This is called after the return-map process has completed successfully in stress_param space, just after finalizeReturnProcess has been called. Derived classes must override this function
stress_trial[in] | The trial value of stress |
stress_params[in] | The value of the stress_params after the return-map process has completed successfully |
gaE[in] | The value of gaE after the return-map process has completed successfully |
intnl[in] | The value of the internal parameters after the return-map process has completed successfully |
smoothed_q[in] | Holds the current value of yield function and derivatives evaluated at the returned state |
Eijkl[in] | The elasticity tensor |
stress[out] | The returned value of the stress tensor |
Implemented in TwoParameterPlasticityStressUpdate, CappedMohrCoulombStressUpdate, TensileStressUpdate, and CappedMohrCoulombCosseratStressUpdate.
Referenced by updateState().
|
protected |
Calculates all yield functions and derivatives, and then performs the smoothing scheme.
stress_params[in] | The stress parameters (eg stress_params[0] = stress_zz and stress_params[1] = sqrt(stress_zx^2 + stress_zy^2)) |
intnl[in] | Internal parameters |
Definition at line 398 of file MultiParameterPlasticityStressUpdate.C.
Referenced by lineSearch(), and updateState().
Derivative of ismoother.
Definition at line 508 of file MultiParameterPlasticityStressUpdate.C.
Referenced by smoothAllQuantities().
|
inlinevirtualinherited |
Properly set up the incremental calculation storage of the stateful material properties in the inheriting classes.
Reimplemented in LAROMANCEStressUpdateBaseTempl< is_ad >.
Definition at line 167 of file StressUpdateBase.h.
|
inlinevirtualinherited |
Does the model include the infrastructure for substep decomposition of the elastic strain initially used to calculate the trial stress guess Inheriting classes which wish to use the substepping capability should overwrite this method and set it to return true.
Reimplemented in ADMultiplePowerLawCreepStressUpdate, PowerLawCreepStressUpdateTempl< is_ad >, and LAROMANCEStressUpdateBaseTempl< is_ad >.
Definition at line 147 of file StressUpdateBase.h.
|
inlinevirtualinherited |
Has the user requested usage of (possibly) implemented substepping capability for inelastic models.
Reimplemented in RadialReturnStressUpdateTempl< is_ad >.
Definition at line 153 of file StressUpdateBase.h.
|
virtualinherited |
Given a strain increment that results in a trial stress, perform some procedure (such as an iterative return-mapping process) to produce an admissible stress, an elastic strain increment and an inelastic strain increment.
If _fe_problem.currentlyComputingJacobian() = true, then updateState also computes d(stress)/d(strain) (or some approximation to it).
This method is called by ComputeMultipleInelasticStress. This method is pure virutal: all inheriting classes must overwrite this method.
strain_increment | Upon input: the strain increment. Upon output: the elastic strain increment |
inelastic_strain_increment | The inelastic_strain resulting from the interative procedure |
rotation_increment | The finite-strain rotation increment |
stress_new | Upon input: the trial stress that results from applying strain_increment as an elastic strain. Upon output: the admissible stress |
stress_old | The old value of stress |
elasticity_tensor | The elasticity tensor |
compute_full_tangent_operator | The calling routine would like the full consistent tangent operator to be placed in tangent_operator, if possible. This is irrelevant if _fe_problem.currentlyComputingJacobian() = false |
tangent_operator | d(stress)/d(strain), or some approximation to it If compute_full_tangent_operator=false, then tangent_operator=elasticity_tensor is an appropriate choice. tangent_operator is only computed if _fe_problem.currentlyComputingJacobian() = true |
Definition at line 68 of file StressUpdateBase.C.
|
protected |
Given a strain increment that results in a trial stress, perform some procedure (such as an iterative return-mapping process) to produce an admissible stress, an elastic strain increment and an inelastic strain increment.
If _fe_problem.currentlyComputingJacobian() = true, then updateState also computes d(stress)/d(strain) (or some approximation to it).
This method is called by ComputeMultipleInelasticStress. This method is pure virutal: all inheriting classes must overwrite this method.
strain_increment | Upon input: the strain increment. Upon output: the elastic strain increment |
inelastic_strain_increment | The inelastic_strain resulting from the interative procedure |
rotation_increment | The finite-strain rotation increment |
stress_new | Upon input: the trial stress that results from applying strain_increment as an elastic strain. Upon output: the admissible stress |
stress_old | The old value of stress |
elasticity_tensor | The elasticity tensor |
compute_full_tangent_operator | The calling routine would like the full consistent tangent operator to be placed in tangent_operator, if possible. This is irrelevant if _fe_problem.currentlyComputingJacobian() = false |
tangent_operator | d(stress)/d(strain), or some approximation to it If compute_full_tangent_operator=false, then tangent_operator=elasticity_tensor is an appropriate choice. tangent_operator is only computed if _fe_problem.currentlyComputingJacobian() = true |
Definition at line 68 of file StressUpdateBase.C.
|
overrideprotectedvirtual |
Definition at line 158 of file MultiParameterPlasticityStressUpdate.C.
|
virtualinherited |
Similar to the updateState function, this method updates the strain and stress for one substep.
Definition at line 84 of file StressUpdateBase.C.
|
static |
Definition at line 21 of file MultiParameterPlasticityStressUpdate.C.
Referenced by CappedMohrCoulombStressUpdate::validParams(), TensileStressUpdate::validParams(), and TwoParameterPlasticityStressUpdate::validParams().
|
protected |
Computes the smoothed yield function.
stress_params | The stress parameters (eg stress_params[0] = stress_zz and stress_params[1] = sqrt(stress_zx^2 + stress_zy^2)) |
intnl | The internal parameters (eg intnl[0] is shear, intnl[1] is tensile) |
Definition at line 686 of file MultiParameterPlasticityStressUpdate.C.
Referenced by updateState().
|
protected |
Computes the smoothed yield function.
yfs | The values of the individual yield functions |
Definition at line 695 of file MultiParameterPlasticityStressUpdate.C.
|
protectedpure virtual |
Computes the values of the yield functions, given stress_params and intnl parameters.
Derived classes must override this, to provide the values of the yield functions in yf.
stress_params[in] | The stress parameters | |
intnl[in] | The internal parameters | |
[out] | yf | The yield function values |
Implemented in CappedMohrCoulombStressUpdate, TwoParameterPlasticityStressUpdate, and TensileStressUpdate.
Referenced by updateState(), and yieldF().
|
protectedinherited |
Name used as a prefix for all material properties related to the stress update model.
Definition at line 191 of file StressUpdateBase.h.
|
protected |
_Cij[i, j] * _Eij[j, k] = 1 iff j == k
Definition at line 140 of file MultiParameterPlasticityStressUpdate.h.
Referenced by consistentTangentOperatorV(), CappedMohrCoulombCosseratStressUpdate::setEffectiveElasticity(), TensileStressUpdate::setEffectiveElasticity(), CappedMohrCoulombStressUpdate::setEffectiveElasticity(), and TwoParameterPlasticityStressUpdate::setEffectiveElasticity().
|
inherited |
|
private |
The current values of the internal params during the Newton-Raphson.
Definition at line 733 of file MultiParameterPlasticityStressUpdate.h.
Referenced by updateState().
|
private |
The current values of the stress params during the Newton-Raphson.
Definition at line 728 of file MultiParameterPlasticityStressUpdate.h.
Referenced by updateState().
|
protected |
An admissible value of stress_params at the initial time.
Definition at line 131 of file MultiParameterPlasticityStressUpdate.h.
Referenced by MultiParameterPlasticityStressUpdate(), and updateState().
|
private |
_del_stress_params = trial_stress_params - ok_sp This is fixed at the beginning of the return-map process, irrespective of substepping.
The return-map problem is: apply del_stress_params to stress_prams, and then find an admissible (returned) stress_params and gaE
Definition at line 723 of file MultiParameterPlasticityStressUpdate.h.
Referenced by updateState().
|
inherited |
|
private |
d({stress_param[i], gaE})/d(trial_stress_param[j])
Definition at line 699 of file MultiParameterPlasticityStressUpdate.h.
Referenced by updateState().
|
protected |
E[i, j] in the system of equations to be solved.
Definition at line 134 of file MultiParameterPlasticityStressUpdate.h.
Referenced by calculateRHS(), dnRHSdVar(), dVardTrial(), CappedMohrCoulombStressUpdate::initializeVarsV(), CappedMohrCoulombCosseratStressUpdate::setEffectiveElasticity(), TensileStressUpdate::setEffectiveElasticity(), CappedMohrCoulombStressUpdate::setEffectiveElasticity(), TwoParameterPlasticityStressUpdate::setEffectiveElasticity(), TensileStressUpdate::setIntnlDerivativesV(), CappedMohrCoulombStressUpdate::setIntnlDerivativesV(), TensileStressUpdate::setIntnlValuesV(), and CappedMohrCoulombStressUpdate::setIntnlValuesV().
|
protected |
normalising factor
Definition at line 137 of file MultiParameterPlasticityStressUpdate.h.
Referenced by calculateRHS(), consistentTangentOperatorV(), dnRHSdVar(), dVardTrial(), CappedMohrCoulombCosseratStressUpdate::setEffectiveElasticity(), TensileStressUpdate::setEffectiveElasticity(), CappedMohrCoulombStressUpdate::setEffectiveElasticity(), TwoParameterPlasticityStressUpdate::setEffectiveElasticity(), and setInelasticStrainIncrementAfterReturn().
|
protected |
The yield-function tolerance.
Definition at line 161 of file MultiParameterPlasticityStressUpdate.h.
Referenced by CappedMohrCoulombStressUpdate::initializeVarsV(), and updateState().
|
protected |
Square of the yield-function tolerance.
Definition at line 164 of file MultiParameterPlasticityStressUpdate.h.
Referenced by updateState().
|
staticprotectedinherited |
Definition at line 193 of file StressUpdateBase.h.
|
protected |
internal parameters
Definition at line 186 of file MultiParameterPlasticityStressUpdate.h.
Referenced by CappedWeakPlaneCosseratStressUpdate::consistentTangentOperator(), CappedWeakPlaneStressUpdate::consistentTangentOperator(), initQpStatefulProperties(), propagateQpStatefulProperties(), and updateState().
|
protected |
old values of internal parameters
Definition at line 189 of file MultiParameterPlasticityStressUpdate.h.
Referenced by propagateQpStatefulProperties(), and updateState().
|
protected |
Number of Newton-Raphson iterations used in the return-map.
Definition at line 195 of file MultiParameterPlasticityStressUpdate.h.
Referenced by initQpStatefulProperties(), and updateState().
|
protected |
Whether a line-search was needed in the latest Newton-Raphson process (1 if true, 0 otherwise)
Definition at line 204 of file MultiParameterPlasticityStressUpdate.h.
Referenced by initQpStatefulProperties(), and updateState().
|
protected |
Maximum number of Newton-Raphson iterations used in the return-map during the course of the entire simulation.
Definition at line 198 of file MultiParameterPlasticityStressUpdate.h.
Referenced by initQpStatefulProperties(), propagateQpStatefulProperties(), and updateState().
|
protected |
Old value of maximum number of Newton-Raphson iterations used in the return-map during the course of the entire simulation.
Definition at line 201 of file MultiParameterPlasticityStressUpdate.h.
Referenced by propagateQpStatefulProperties(), and updateState().
|
protected |
Maximum number of Newton-Raphson iterations allowed in the return-map process.
Definition at line 149 of file MultiParameterPlasticityStressUpdate.h.
Referenced by updateState().
|
protected |
In order to help the Newton-Raphson procedure, the applied strain increment may be applied in sub-increments of size greater than this value.
Definition at line 171 of file MultiParameterPlasticityStressUpdate.h.
Referenced by updateState().
|
protected |
Number of internal parameters.
Definition at line 146 of file MultiParameterPlasticityStressUpdate.h.
Referenced by CappedMohrCoulombStressUpdate::computeAllQV(), dnRHSdVar(), dVardTrial(), initQpStatefulProperties(), nrStep(), smoothAllQuantities(), and updateState().
|
protected |
Number of stress parameters.
Definition at line 128 of file MultiParameterPlasticityStressUpdate.h.
Referenced by calculateRHS(), TensileStressUpdate::computeAllQV(), CappedMohrCoulombStressUpdate::computeAllQV(), TensileStressUpdate::consistentTangentOperatorV(), CappedMohrCoulombStressUpdate::consistentTangentOperatorV(), consistentTangentOperatorV(), dnRHSdVar(), dVardTrial(), TensileStressUpdate::initializeVarsV(), CappedMohrCoulombStressUpdate::initializeVarsV(), lineSearch(), MultiParameterPlasticityStressUpdate(), nrStep(), precisionLoss(), CappedMohrCoulombCosseratStressUpdate::setEffectiveElasticity(), TensileStressUpdate::setEffectiveElasticity(), CappedMohrCoulombStressUpdate::setEffectiveElasticity(), setInelasticStrainIncrementAfterReturn(), CappedMohrCoulombStressUpdate::setIntnlDerivativesV(), smoothAllQuantities(), and updateState().
|
protected |
Number of yield functions.
Definition at line 143 of file MultiParameterPlasticityStressUpdate.h.
Referenced by TensileStressUpdate::computeAllQV(), CappedMohrCoulombStressUpdate::computeAllQV(), initQpStatefulProperties(), smoothAllQuantities(), updateState(), and yieldF().
|
private |
The state (ok_sp, ok_intnl) is known to be admissible.
Definition at line 714 of file MultiParameterPlasticityStressUpdate.h.
Referenced by updateState().
|
private |
The state (ok_sp, ok_intnl) is known to be admissible, so ok_sp are stress_params that are "OK".
If the strain_increment is applied in substeps then ok_sp is updated after each sub strain_increment is applied and the return-map is successful. At the end of the entire return-map process _ok_sp will contain the stress_params where (_ok_sp, _intnl) is admissible.
Definition at line 709 of file MultiParameterPlasticityStressUpdate.h.
Referenced by updateState().
|
protected |
Whether to perform finite-strain rotations.
Definition at line 152 of file MultiParameterPlasticityStressUpdate.h.
Referenced by CappedWeakInclinedPlaneStressUpdate::finalizeReturnProcess(), and CappedWeakInclinedPlaneStressUpdate::initializeReturnProcess().
|
protected |
plastic strain
Definition at line 180 of file MultiParameterPlasticityStressUpdate.h.
Referenced by initQpStatefulProperties(), propagateQpStatefulProperties(), and updateState().
|
protected |
Old value of plastic strain.
Definition at line 183 of file MultiParameterPlasticityStressUpdate.h.
Referenced by propagateQpStatefulProperties(), and updateState().
|
inherited |
|
inherited |
|
private |
0 = rhs[0] = S[0] - S[0]^trial + ga * E[0, i] * dg/dS[i] 0 = rhs[1] = S[1] - S[1]^trial + ga * E[1, i] * dg/dS[i] ...
0 = rhs[N-1] = S[N-1] - S[N-1]^trial + ga * E[N-1, i] * dg/dS[i] 0 = rhs[N] = f(S, intnl) Here N = num_sp
Definition at line 694 of file MultiParameterPlasticityStressUpdate.h.
Referenced by updateState().
|
private |
Referenced by dsmoother(), ismoother(), and smoother().
|
protected |
Smoothing tolerance: edges of the yield surface get smoothed by this amount.
Definition at line 155 of file MultiParameterPlasticityStressUpdate.h.
Referenced by CappedDruckerPragerStressUpdate::CappedDruckerPragerStressUpdate(), CappedWeakPlaneStressUpdate::CappedWeakPlaneStressUpdate(), dsmoother(), ismoother(), smoothAllQuantities(), smoother(), and yieldF().
|
protected |
Square of the smoothing tolerance.
Definition at line 158 of file MultiParameterPlasticityStressUpdate.h.
Referenced by ismoother().
|
protected |
handles case of initial_stress that is inadmissible being supplied
Definition at line 174 of file MultiParameterPlasticityStressUpdate.h.
Referenced by updateState().
|
private |
"Trial" value of stress that is set at the beginning of the return-map process.
It is fixed at stress_old + Eijkl * strain_increment irrespective of any sub-stepping
Definition at line 684 of file MultiParameterPlasticityStressUpdate.h.
Referenced by updateState().
|
staticprotected |
Internal dimensionality of tensors (currently this is 3 throughout tensor_mechanics)
Definition at line 125 of file MultiParameterPlasticityStressUpdate.h.
Referenced by CappedWeakPlaneCosseratStressUpdate::consistentTangentOperator(), CappedDruckerPragerCosseratStressUpdate::consistentTangentOperator(), CappedWeakPlaneStressUpdate::consistentTangentOperator(), CappedDruckerPragerStressUpdate::consistentTangentOperator(), TwoParameterPlasticityStressUpdate::consistentTangentOperator(), CappedMohrCoulombCosseratStressUpdate::consistentTangentOperatorV(), TensileStressUpdate::consistentTangentOperatorV(), CappedMohrCoulombStressUpdate::consistentTangentOperatorV(), and CappedWeakPlaneStressUpdate::d2qdstress2().
|
private |
"Trial" value of stress_params that initializes the return-map process This is derived from stress = stress_old + Eijkl * strain_increment.
However, since the return-map process can fail and be restarted by applying strain_increment in multiple substeps, _trial_sp can vary from substep to substep.
Definition at line 677 of file MultiParameterPlasticityStressUpdate.h.
Referenced by updateState().
|
protected |
Output a warning message if precision loss is encountered during the return-map process.
Definition at line 177 of file MultiParameterPlasticityStressUpdate.h.
Referenced by updateState().
|
protected |
yield functions
Definition at line 192 of file MultiParameterPlasticityStressUpdate.h.
Referenced by initQpStatefulProperties(), and updateState().