https://mooseframework.inl.gov
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Protected Types | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
FiniteStrainCPSlipRateRes Class Reference

#include <FiniteStrainCPSlipRateRes.h>

Inheritance diagram for FiniteStrainCPSlipRateRes:
[legend]

Public Types

enum  ConstantTypeEnum { ConstantTypeEnum::NONE, ConstantTypeEnum::ELEMENT, ConstantTypeEnum::SUBDOMAIN }
 
enum  TEST_TYPE
 
typedef DerivativeMaterialPropertyNameInterface::SymbolName SymbolName
 
typedef DataFileName DataFileParameterType
 

Public Member Functions

 FiniteStrainCPSlipRateRes (const InputParameters &parameters)
 
const GenericMaterialProperty< U, is_ad > & getDefaultMaterialProperty (const std::string &name)
 
const GenericMaterialProperty< U, is_ad > & getDefaultMaterialPropertyByName (const std::string &name)
 
void validateDerivativeMaterialPropertyBase (const std::string &base)
 
virtual const dof_id_typegetElementID (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_typegetElementIDNeighbor (const std::string &id_parameter_name, unsigned int comp=0) const override
 
virtual const dof_id_typegetElementIDByName (const std::string &id_parameter_name) const override
 
virtual const dof_id_typegetElementIDNeighborByName (const std::string &id_parameter_name) const override
 
virtual void computeProperties () override
 
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)
 
MaterialBasegetMaterial (const std::string &name)
 
MaterialBasegetMaterialByName (const std::string &name, bool no_warn=false, bool no_dep=false)
 
MaterialBasegetMaterialByName (const std::string &name, bool no_warn=false)
 
MaterialBasegetMaterialByName (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 resetProperties ()
 
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)
 
std::unordered_map< SubdomainID, std::vector< MaterialBase *> > buildRequiredMaterials (bool allow_stateful=true)
 
void setActiveProperties (const std::unordered_set< unsigned int > &needed_props)
 
bool forceStatefulInit () const
 
virtual bool enabled () const
 
std::shared_ptr< MooseObjectgetSharedPtr ()
 
std::shared_ptr< const MooseObjectgetSharedPtr () const
 
MooseAppgetMooseApp () 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 &parameter_name) const
 
const InputParametersparameters () const
 
MooseObjectName uniqueName () const
 
const T & getParam (const std::string &name) const
 
std::vector< std::pair< T1, T2 > > getParam (const std::string &param1, const std::string &param2) const
 
const T * queryParam (const std::string &name) const
 
const T & getRenamedParam (const std::string &old_name, const std::string &new_name) const
 
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 &param, Args... args) const
 
void paramWarning (const std::string &param, Args... args) const
 
void paramInfo (const std::string &param, Args... args) const
 
void connectControllableParams (const std::string &parameter, 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 mooseDocumentedError (const std::string &repo_name, const unsigned int issue_num, 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 &param) const
 
std::string getDataFileNameByName (const std::string &relative_path) const
 
std::string getDataFilePath (const std::string &relative_path) 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 (const std::set< 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 ExecFlagEnumgetExecuteOnEnum () 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)
 
void addMooseVariableDependency (MooseVariableFieldBase *var)
 
void addMooseVariableDependency (const std::vector< MooseVariableFieldBase * > &vars)
 
const std::vector< MooseVariableScalar *> & getCoupledMooseScalarVars ()
 
const std::set< TagID > & getScalarVariableCoupleableVectorTags () const
 
const std::set< TagID > & getScalarVariableCoupleableMatrixTags () const
 
const ADVariableValuegetADDefaultValue (const std::string &var_name) const
 
const FunctiongetFunction (const std::string &name) const
 
const FunctiongetFunctionByName (const FunctionName &name) const
 
bool hasFunction (const std::string &param_name) const
 
bool hasFunctionByName (const FunctionName &name) const
 
UserObjectName getUserObjectName (const std::string &param_name) const
 
const T & getUserObject (const std::string &param_name, bool is_dependency=true) const
 
const T & getUserObjectByName (const UserObjectName &object_name, bool is_dependency=true) const
 
const UserObjectgetUserObjectBase (const std::string &param_name, bool is_dependency=true) const
 
const UserObjectgetUserObjectBaseByName (const UserObjectName &object_name, bool is_dependency=true) const
 
bool isImplicit ()
 
Moose::StateArg determineState () const
 
bool isDefaultPostprocessorValue (const std::string &param_name, const unsigned int index=0) const
 
bool hasPostprocessor (const std::string &param_name, const unsigned int index=0) const
 
bool hasPostprocessorByName (const PostprocessorName &name) const
 
std::size_t coupledPostprocessors (const std::string &param_name) const
 
const PostprocessorName & getPostprocessorName (const std::string &param_name, const unsigned int index=0) const
 
const VectorPostprocessorValuegetVectorPostprocessorValue (const std::string &param_name, const std::string &vector_name) const
 
const VectorPostprocessorValuegetVectorPostprocessorValue (const std::string &param_name, const std::string &vector_name, bool needs_broadcast) const
 
const VectorPostprocessorValuegetVectorPostprocessorValueByName (const VectorPostprocessorName &name, const std::string &vector_name) const
 
const VectorPostprocessorValuegetVectorPostprocessorValueByName (const VectorPostprocessorName &name, const std::string &vector_name, bool needs_broadcast) const
 
const VectorPostprocessorValuegetVectorPostprocessorValueOld (const std::string &param_name, const std::string &vector_name) const
 
const VectorPostprocessorValuegetVectorPostprocessorValueOld (const std::string &param_name, const std::string &vector_name, bool needs_broadcast) const
 
const VectorPostprocessorValuegetVectorPostprocessorValueOldByName (const VectorPostprocessorName &name, const std::string &vector_name) const
 
const VectorPostprocessorValuegetVectorPostprocessorValueOldByName (const VectorPostprocessorName &name, const std::string &vector_name, bool needs_broadcast) const
 
const ScatterVectorPostprocessorValuegetScatterVectorPostprocessorValue (const std::string &param_name, const std::string &vector_name) const
 
const ScatterVectorPostprocessorValuegetScatterVectorPostprocessorValueByName (const VectorPostprocessorName &name, const std::string &vector_name) const
 
const ScatterVectorPostprocessorValuegetScatterVectorPostprocessorValueOld (const std::string &param_name, const std::string &vector_name) const
 
const ScatterVectorPostprocessorValuegetScatterVectorPostprocessorValueOldByName (const VectorPostprocessorName &name, const std::string &vector_name) const
 
bool hasVectorPostprocessor (const std::string &param_name, const std::string &vector_name) const
 
bool hasVectorPostprocessor (const std::string &param_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 &param_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_typegetAllElemIDs (unsigned int elem_id_index) const
 
std::set< dof_id_typegetElemIDsOnBlocks (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 ADVectorVariableValuegetADDefaultVectorValue (const std::string &var_name) const
 
const ADVariableGradientgetADDefaultGradient () const
 
const ADVectorVariableGradientgetADDefaultVectorGradient () const
 
const ADVariableSecondgetADDefaultSecond () const
 
const ADVectorVariableCurlgetADDefaultCurl () const
 
std::pair< const MaterialProperty< T > *, std::set< SubdomainID > > getBlockMaterialProperty (const MaterialPropertyName &name)
 
std::set< SubdomainIDgetMaterialPropertyBlocks (const std::string &name)
 
std::vector< SubdomainName > getMaterialPropertyBlockNames (const std::string &name)
 
std::set< BoundaryIDgetMaterialPropertyBoundaryIDs (const std::string &name)
 
std::vector< BoundaryName > getMaterialPropertyBoundaryNames (const std::string &name)
 
void checkBlockAndBoundaryCompatibility (std::shared_ptr< MaterialBase > discrete)
 
void statefulPropertiesAllowed (bool)
 
bool getMaterialPropertyCalled () const
 
const GenericMaterialProperty< T, is_ad > & getPossiblyConstantGenericMaterialPropertyByName (const MaterialPropertyName &prop_name, MaterialData &material_data, const unsigned int state)
 
const MaterialPropertyName derivativePropertyName (const MaterialPropertyName &base, const std::vector< SymbolName > &c) const
 
const MaterialPropertyName derivativePropertyNameFirst (const MaterialPropertyName &base, const SymbolName &c1) const
 
const MaterialPropertyName derivativePropertyNameSecond (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2) const
 
const MaterialPropertyName derivativePropertyNameThird (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2, const SymbolName &c3) const
 
GenericMaterialProperty< U, is_ad > & declarePropertyDerivative (const std::string &base, const std::vector< VariableName > &c)
 
GenericMaterialProperty< U, is_ad > & declarePropertyDerivative (const std::string &base, const std::vector< SymbolName > &c)
 
GenericMaterialProperty< U, is_ad > & declarePropertyDerivative (const std::string &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="")
 
GenericMaterialProperty< U, is_ad > & declarePropertyDerivative (const std::string &base, const std::vector< VariableName > &c)
 
GenericMaterialProperty< U, is_ad > & declarePropertyDerivative (const std::string &base, const std::vector< SymbolName > &c)
 
GenericMaterialProperty< U, is_ad > & declarePropertyDerivative (const std::string &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="")
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const std::vector< VariableName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const std::vector< SymbolName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="")
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const SymbolName &c1, unsigned int v2, unsigned int v3=libMesh::invalid_uint)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, unsigned int v1, unsigned int v2=libMesh::invalid_uint, unsigned int v3=libMesh::invalid_uint)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const std::vector< VariableName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const std::vector< SymbolName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="")
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const SymbolName &c1, unsigned int v2, unsigned int v3=libMesh::invalid_uint)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, unsigned int v1, unsigned int v2=libMesh::invalid_uint, unsigned int v3=libMesh::invalid_uint)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const std::vector< VariableName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const std::vector< SymbolName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="")
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const std::vector< VariableName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const std::vector< SymbolName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="")
 
void validateCoupling (const MaterialPropertyName &base, const std::vector< VariableName > &c, bool validate_aux=true)
 
void validateCoupling (const MaterialPropertyName &base, const VariableName &c1="", const VariableName &c2="", const VariableName &c3="")
 
void validateCoupling (const MaterialPropertyName &base, const std::vector< VariableName > &c, bool validate_aux=true)
 
void validateCoupling (const MaterialPropertyName &base, const VariableName &c1="", const VariableName &c2="", const VariableName &c3="")
 
void validateNonlinearCoupling (const MaterialPropertyName &base, const VariableName &c1="", const VariableName &c2="", const VariableName &c3="")
 
void validateNonlinearCoupling (const MaterialPropertyName &base, const VariableName &c1="", const VariableName &c2="", const VariableName &c3="")
 
const 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 DistributiongetDistribution (const std::string &name) const
 
const T & getDistribution (const std::string &name) const
 
const DistributiongetDistribution (const std::string &name) const
 
const T & getDistribution (const std::string &name) const
 
const DistributiongetDistributionByName (const DistributionName &name) const
 
const T & getDistributionByName (const std::string &name) const
 
const DistributiongetDistributionByName (const DistributionName &name) const
 
const T & getDistributionByName (const std::string &name) const
 
bool hasUserObject (const std::string &param_name) const
 
bool hasUserObject (const std::string &param_name) const
 
bool hasUserObject (const std::string &param_name) const
 
bool hasUserObject (const std::string &param_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 PostprocessorValuegetPostprocessorValue (const std::string &param_name, const unsigned int index=0) const
 
const PostprocessorValuegetPostprocessorValue (const std::string &param_name, const unsigned int index=0) const
 
const PostprocessorValuegetPostprocessorValueOld (const std::string &param_name, const unsigned int index=0) const
 
const PostprocessorValuegetPostprocessorValueOld (const std::string &param_name, const unsigned int index=0) const
 
const PostprocessorValuegetPostprocessorValueOlder (const std::string &param_name, const unsigned int index=0) const
 
const PostprocessorValuegetPostprocessorValueOlder (const std::string &param_name, const unsigned int index=0) const
 
virtual const PostprocessorValuegetPostprocessorValueByName (const PostprocessorName &name) const
 
virtual const PostprocessorValuegetPostprocessorValueByName (const PostprocessorName &name) const
 
const PostprocessorValuegetPostprocessorValueOldByName (const PostprocessorName &name) const
 
const PostprocessorValuegetPostprocessorValueOldByName (const PostprocessorName &name) const
 
const PostprocessorValuegetPostprocessorValueOlderByName (const PostprocessorName &name) const
 
const PostprocessorValuegetPostprocessorValueOlderByName (const PostprocessorName &name) const
 
bool isVectorPostprocessorDistributed (const std::string &param_name) const
 
bool isVectorPostprocessorDistributed (const std::string &param_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)
 
const MaterialPropertyName propertyName (const MaterialPropertyName &base, const std::vector< SymbolName > &c) const
 
const MaterialPropertyName propertyName (const MaterialPropertyName &base, const std::vector< SymbolName > &c) const
 
const MaterialPropertyName propertyNameFirst (const MaterialPropertyName &base, const SymbolName &c1) const
 
const MaterialPropertyName propertyNameFirst (const MaterialPropertyName &base, const SymbolName &c1) const
 
const MaterialPropertyName propertyNameSecond (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2) const
 
const MaterialPropertyName propertyNameSecond (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2) const
 
const MaterialPropertyName propertyNameThird (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2, const SymbolName &c3) const
 
const MaterialPropertyName propertyNameThird (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2, const SymbolName &c3) const
 
PenetrationLocatorgetPenetrationLocator (const BoundaryName &primary, const BoundaryName &secondary, Order order)
 
PenetrationLocatorgetQuadraturePenetrationLocator (const BoundaryName &primary, const BoundaryName &secondary, Order order)
 
NearestNodeLocatorgetNearestNodeLocator (const BoundaryName &primary, const BoundaryName &secondary)
 
NearestNodeLocatorgetQuadratureNearestNodeLocator (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
 

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 &params)
 

Public Attributes

 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 solveStatevar ()
 This function solves internal variables. More...
 
virtual void preSolveStress ()
 This function sets variable for internal variable solve. More...
 
virtual void solveStress ()
 This function solves for stress, updates plastic deformation gradient. More...
 
virtual void calcResidJacobSlipRate ()
 This function calculates residual and jacobian of slip rate. More...
 
virtual void calcResidualSlipRate ()
 This function calculates residual of slip rate. More...
 
virtual void calcJacobianSlipRate ()
 This function calculates jacobian of slip rate. More...
 
virtual void getSlipIncrements ()
 This function updates the slip system resistances. More...
 
virtual void calcDtauDsliprate ()
 This function calculates partial derivative of resolved shear stress with respect to split rate. More...
 
virtual void calcDgssDsliprate ()
 This function calculates partial derivative of slip system resistances with respect to split rate. More...
 
void calcUpdate ()
 This function calculates and updates the residual of slip rate. More...
 
virtual Real calcResidNorm ()
 This function calculates the residual norm. More...
 
bool lineSearchUpdateSlipRate (const Real, const DenseVector< Real > &)
 This function performs the line search update. More...
 
Real calcResidDotProdUpdate (const DenseVector< Real > &)
 This function calculates the dot product of residual and update. More...
 
virtual void computeQpStress ()
 This function updates the stress at a quadrature point. More...
 
virtual void computeQpElasticityTensor ()
 This function updates the elasticity tensor at a quadrature point. More...
 
virtual void initQpStatefulProperties ()
 This function initializes the stateful properties such as stress, plastic deformation gradient, slip system resistances, etc. More...
 
virtual void calc_resid_jacob (RankTwoTensor &, RankFourTensor &)
 This function calls the residual and jacobian functions used in the stress update algorithm. More...
 
virtual void update_slip_system_resistance ()
 This function updates the slip system resistances. More...
 
virtual void updateGss ()
 This function updates the slip system resistances. More...
 
virtual void getSlipSystems ()
 This function reads slip system from file - see test. More...
 
virtual void assignSlipSysRes ()
 This function assign initial values of slip system resistances/internal variables read from getSlipSystems(). More...
 
virtual void readFileInitSlipSysRes ()
 This function read slip system resistances from file - see test. More...
 
virtual void getInitSlipSysRes ()
 This function assign slip system resistances - see test. More...
 
virtual void readFileFlowRateParams ()
 This function read flow rate parameters from file - see test. More...
 
virtual void getFlowRateParams ()
 This function assign flow rate parameters - see test. More...
 
virtual void readFileHardnessParams ()
 This function read hardness parameters from file. More...
 
virtual void getHardnessParams ()
 This function assign flow rate parameters from .i file - see test. More...
 
virtual void initSlipSysProps ()
 This function initializes slip system resistances. More...
 
virtual void initAdditionalProps ()
 This function initializes additional parameters. More...
 
virtual void preSolveQp ()
 This function set variables for stress and internal variable solve. More...
 
virtual void solveQp ()
 This function solves stress and internal variables. More...
 
virtual void postSolveQp ()
 This function update stress and internal variable after solve. More...
 
virtual void preSolveStatevar ()
 This function set variables for internal variable solve. More...
 
virtual void postSolveStatevar ()
 This function update internal variable after solve. More...
 
virtual void postSolveStress ()
 This function update stress and plastic deformation gradient after solve. More...
 
virtual void calcResidual (RankTwoTensor &)
 This function calculate stress residual. More...
 
virtual void calcJacobian (RankFourTensor &)
 This function calculate jacobian. More...
 
virtual RankFourTensor calcTangentModuli ()
 This function calculate the tangent moduli for preconditioner. More...
 
virtual RankFourTensor elasticTangentModuli ()
 This function calculate the elastic tangent moduli for preconditioner. More...
 
virtual RankFourTensor elastoPlasticTangentModuli ()
 This function calculate the exact tangent moduli for preconditioner. More...
 
RankTwoTensor get_current_rotation (const RankTwoTensor &a)
 This function perform RU decomposition to obtain the rotation tensor. More...
 
RankTwoTensor getMatRot (const RankTwoTensor &a)
 This function perform RU decomposition to obtain the rotation tensor. More...
 
void calc_schmid_tensor ()
 This function calculate the Schmid tensor. More...
 
bool line_search_update (const Real rnorm_prev, const RankTwoTensor)
 This function performs the line search update. More...
 
void internalVariableUpdateNRiteration ()
 This function updates internal variables after each NewTon Raphson iteration (_fp_inv) More...
 
virtual void computeQpProperties () override
 
virtual void checkMaterialProperty (const std::string &name, const unsigned int state) override
 
virtual const MaterialDatamaterialData () const override
 
virtual MaterialDatamaterialData () override
 
virtual const QBase & qRule () const override
 
virtual void resetQpProperties ()
 
virtual const FEProblemBasemiProblem () const
 
virtual FEProblemBasemiProblem ()
 
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 ()
 
void markMatPropRequested (const std::string &)
 
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
 
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
 
libMesh::Order coupledScalarOrder (const std::string &var_name, unsigned int comp=0) const
 
const VariableValuecoupledScalarValue (const std::string &var_name, unsigned int comp=0) const
 
const ADVariableValueadCoupledScalarValue (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 VariableValuecoupledVectorTagScalarValue (const std::string &var_name, TagID tag, unsigned int comp=0) const
 
const VariableValuecoupledMatrixTagScalarValue (const std::string &var_name, TagID tag, unsigned int comp=0) const
 
const VariableValuecoupledScalarValueOld (const std::string &var_name, unsigned int comp=0) const
 
const VariableValuecoupledScalarValueOlder (const std::string &var_name, unsigned int comp=0) const
 
const VariableValuecoupledScalarDot (const std::string &var_name, unsigned int comp=0) const
 
const ADVariableValueadCoupledScalarDot (const std::string &var_name, unsigned int comp=0) const
 
const VariableValuecoupledScalarDotDot (const std::string &var_name, unsigned int comp=0) const
 
const VariableValuecoupledScalarDotOld (const std::string &var_name, unsigned int comp=0) const
 
const VariableValuecoupledScalarDotDotOld (const std::string &var_name, unsigned int comp=0) const
 
const VariableValuecoupledScalarDotDu (const std::string &var_name, unsigned int comp=0) const
 
const VariableValuecoupledScalarDotDotDu (const std::string &var_name, unsigned int comp=0) const
 
const MooseVariableScalargetScalarVar (const std::string &var_name, unsigned int comp) const
 
bool checkVar (const std::string &var_name, unsigned int comp=0, unsigned int comp_bound=0) const
 
void validateExecutionerType (const std::string &name, const std::string &fn_name) const
 
virtual void addUserObjectDependencyHelper (const UserObject &) 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 (const InvalidSolutionID invalid_solution_id) const
 
InvalidSolutionID registerInvalidSolutionInternal (const std::string &message, const bool warning) 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 intcoupledIndices (const std::string &var_name) const
 
virtual const VariableValuecoupledValue (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
 
const GenericVectorVariableValue< is_ad > & coupledGenericVectorValue (const std::string &var_name, unsigned int comp=0) const
 
const GenericVectorVariableValue< false > & coupledGenericVectorValue (const std::string &var_name, unsigned int comp) const
 
const GenericVectorVariableValue< true > & coupledGenericVectorValue (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
 
const GenericVariableValue< is_ad > & coupledGenericDot (const std::string &var_name, unsigned int comp=0) const
 
const GenericVariableValue< false > & coupledGenericDot (const std::string &var_name, unsigned int comp) const
 
const GenericVariableValue< true > & coupledGenericDot (const std::string &var_name, unsigned int comp) const
 
const GenericVariableValue< is_ad > & coupledGenericDotDot (const std::string &var_name, unsigned int comp=0) const
 
const GenericVariableValue< false > & coupledGenericDotDot (const std::string &var_name, unsigned int comp) const
 
const GenericVariableValue< true > & coupledGenericDotDot (const std::string &var_name, unsigned int comp) const
 
virtual const VariableValuecoupledValueLower (const std::string &var_name, unsigned int comp=0) const
 
const ADVariableValueadCoupledValue (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const ADVariableValue *> adCoupledValues (const std::string &var_name) const
 
const ADVariableValueadCoupledLowerValue (const std::string &var_name, unsigned int comp=0) const
 
const ADVectorVariableValueadCoupledVectorValue (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const ADVectorVariableValue *> adCoupledVectorValues (const std::string &var_name) const
 
virtual const VariableValuecoupledVectorTagValue (const std::string &var_names, TagID tag, unsigned int index=0) const
 
virtual const VariableValuecoupledVectorTagValue (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 ArrayVariableValuecoupledVectorTagArrayValue (const std::string &var_names, TagID tag, unsigned int index=0) const
 
virtual const ArrayVariableValuecoupledVectorTagArrayValue (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 VariableGradientcoupledVectorTagGradient (const std::string &var_names, TagID tag, unsigned int index=0) const
 
virtual const VariableGradientcoupledVectorTagGradient (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 ArrayVariableGradientcoupledVectorTagArrayGradient (const std::string &var_names, TagID tag, unsigned int index=0) const
 
virtual const ArrayVariableGradientcoupledVectorTagArrayGradient (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 VariableValuecoupledVectorTagDofValue (const std::string &var_name, TagID tag, unsigned int index=0) const
 
virtual const VariableValuecoupledVectorTagDofValue (const std::string &var_names, const std::string &tag_name, unsigned int index=0) const
 
const ArrayVariableValuecoupledVectorTagArrayDofValue (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 VariableValuecoupledMatrixTagValue (const std::string &var_names, TagID tag, unsigned int index=0) const
 
virtual const VariableValuecoupledMatrixTagValue (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 VectorVariableValuecoupledVectorValue (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableValuecoupledArrayValue (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const ArrayVariableValue *> coupledArrayValues (const std::string &var_name) const
 
MooseWritableVariablewritableVariable (const std::string &var_name, unsigned int comp=0)
 
virtual VariableValuewritableCoupledValue (const std::string &var_name, unsigned int comp=0)
 
void checkWritableVar (MooseWritableVariable *var)
 
virtual const VariableValuecoupledValueOld (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const VariableValue *> coupledValuesOld (const std::string &var_name) const
 
std::vector< const VectorVariableValue *> coupledVectorValuesOld (const std::string &var_name) const
 
virtual const VariableValuecoupledValueOlder (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const VariableValue *> coupledValuesOlder (const std::string &var_name) const
 
virtual const VariableValuecoupledValuePreviousNL (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableValuecoupledVectorValueOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableValuecoupledVectorValueOlder (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableValuecoupledArrayValueOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableValuecoupledArrayValueOlder (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableGradientcoupledGradient (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const VariableGradient *> coupledGradients (const std::string &var_name) const
 
const ADVariableGradientadCoupledGradient (const std::string &var_name, unsigned int comp=0) const
 
const ADVariableGradientadCoupledGradientDot (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 ADVectorVariableGradientadCoupledVectorGradient (const std::string &var_name, unsigned int comp=0) const
 
const ADVariableSecondadCoupledSecond (const std::string &var_name, unsigned int comp=0) const
 
const ADVectorVariableSecondadCoupledVectorSecond (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableGradientcoupledGradientOld (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const VariableGradient *> coupledGradientsOld (const std::string &var_name) const
 
virtual const VariableGradientcoupledGradientOlder (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableGradientcoupledGradientPreviousNL (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableGradientcoupledGradientDot (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableGradientcoupledGradientDotDot (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableGradientcoupledVectorGradient (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableGradientcoupledVectorGradientOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableGradientcoupledVectorGradientOlder (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableGradientcoupledArrayGradient (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableGradientcoupledArrayGradientOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableGradientcoupledArrayGradientOlder (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableGradientcoupledArrayGradientDot (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableCurlcoupledCurl (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableCurlcoupledCurlOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableCurlcoupledCurlOlder (const std::string &var_name, unsigned int comp=0) const
 
const ADVectorVariableCurladCoupledCurl (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableDivergencecoupledDiv (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableDivergencecoupledDivOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableDivergencecoupledDivOlder (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableSecondcoupledSecond (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableSecondcoupledSecondOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableSecondcoupledSecondOlder (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableSecondcoupledSecondPreviousNL (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValuecoupledDot (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const VariableValue *> coupledDots (const std::string &var_name) const
 
virtual const VariableValuecoupledDotDot (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValuecoupledDotOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValuecoupledDotDotOld (const std::string &var_name, unsigned int comp=0) const
 
const ADVariableValueadCoupledDot (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const ADVariableValue *> adCoupledDots (const std::string &var_name) const
 
const ADVariableValueadCoupledDotDot (const std::string &var_name, unsigned int comp=0) const
 
const ADVectorVariableValueadCoupledVectorDot (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableValuecoupledVectorDot (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableValuecoupledVectorDotDot (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableValuecoupledVectorDotOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableValuecoupledVectorDotDotOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValuecoupledVectorDotDu (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValuecoupledVectorDotDotDu (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableValuecoupledArrayDot (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableValuecoupledArrayDotDot (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableValuecoupledArrayDotOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableValuecoupledArrayDotDotOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValuecoupledDotDu (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValuecoupledDotDotDu (const std::string &var_name, unsigned int comp=0) const
 
const VariableValuecoupledArrayDotDu (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 >::typeadCoupledNodalValue (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 VariableValuecoupledNodalDotDot (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValuecoupledNodalDotOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValuecoupledNodalDotDotOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValuecoupledDofValues (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const VariableValue *> coupledAllDofValues (const std::string &var_name) const
 
virtual const VariableValuecoupledDofValuesOld (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const VariableValue *> coupledAllDofValuesOld (const std::string &var_name) const
 
virtual const VariableValuecoupledDofValuesOlder (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const VariableValue *> coupledAllDofValuesOlder (const std::string &var_name) const
 
virtual const ArrayVariableValuecoupledArrayDofValues (const std::string &var_name, unsigned int comp=0) const
 
virtual const ADVariableValueadCoupledDofValues (const std::string &var_name, unsigned int comp=0) const
 
const ADVariableValueadZeroValue () const
 
const ADVariableGradientadZeroGradient () const
 
const ADVariableSecondadZeroSecond () 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 ()
 
const MooseVariableFieldBasegetFEVar (const std::string &var_name, unsigned int comp) const
 
const MooseVariableFieldBasegetFieldVar (const std::string &var_name, unsigned int comp) const
 
MooseVariableFieldBasegetFieldVar (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)
 
MooseVariablegetVar (const std::string &var_name, unsigned int comp)
 
const MooseVariablegetVar (const std::string &var_name, unsigned int comp) const
 
VectorMooseVariablegetVectorVar (const std::string &var_name, unsigned int comp)
 
const VectorMooseVariablegetVectorVar (const std::string &var_name, unsigned int comp) const
 
ArrayMooseVariablegetArrayVar (const std::string &var_name, unsigned int comp)
 
const ArrayMooseVariablegetArrayVar (const std::string &var_name, unsigned int comp) const
 
std::vector< T > coupledVectorHelper (const std::string &var_name, const Func &func) const
 
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)
 

Protected Attributes

DenseVector< Real_resid
 
DenseVector< Real_slip_rate
 
DenseVector< Real_dsliprate_dgss
 
DenseMatrix< Real_jacob
 
DenseMatrix< Real_dsliprate_dsliprate
 
const unsigned int _nss
 Number of slip system resistance. More...
 
std::vector< Real_gprops
 
std::vector< Real_hprops
 
std::vector< Real_flowprops
 
std::string _slip_sys_file_name
 File should contain slip plane normal and direction. See test. More...
 
std::string _slip_sys_res_prop_file_name
 File should contain initial values of the slip system resistances. More...
 
std::string _slip_sys_flow_prop_file_name
 File should contain values of the flow rate equation parameters. More...
 
std::string _slip_sys_hard_prop_file_name
 The hardening parameters in this class are read from .i file. The user can override to read from file. More...
 
Real _rtol
 Stress residual equation relative tolerance. More...
 
Real _abs_tol
 Stress residual equation absolute tolerance. More...
 
Real _gtol
 Internal variable update equation tolerance. More...
 
Real _slip_incr_tol
 Slip increment tolerance. More...
 
unsigned int _maxiter
 Maximum number of iterations for stress update. More...
 
unsigned int _maxiterg
 Maximum number of iterations for internal variable update. More...
 
unsigned int _num_slip_sys_flowrate_props
 Number of slip system flow rate parameters. More...
 
MooseEnum _tan_mod_type
 Type of tangent moduli calculation. More...
 
MooseEnum _intvar_read_type
 Read from options for initial values of internal variables. More...
 
unsigned int _num_slip_sys_props
 Number of slip system specific properties provided in the file containing slip system normals and directions. More...
 
bool _gen_rndm_stress_flag
 
bool _input_rndm_scale_var
 Input option for scaling variable to generate random stress when convergence fails. More...
 
Real _rndm_scale_var
 Scaling value. More...
 
unsigned int _rndm_seed
 Seed value. More...
 
unsigned int _max_substep_iter
 Maximum number of substep iterations. More...
 
bool _use_line_search
 Flag to activate line serach. More...
 
Real _min_lsrch_step
 Minimum line search step size. More...
 
Real _lsrch_tol
 Line search bisection method tolerance. More...
 
unsigned int _lsrch_max_iter
 Line search bisection method maximum iteration number. More...
 
MooseEnum _lsrch_method
 
MaterialProperty< RankTwoTensor > & _fp
 
const MaterialProperty< RankTwoTensor > & _fp_old
 
MaterialProperty< RankTwoTensor > & _pk2
 
const MaterialProperty< RankTwoTensor > & _pk2_old
 
MaterialProperty< RankTwoTensor > & _lag_e
 
const MaterialProperty< RankTwoTensor > & _lag_e_old
 
MaterialProperty< std::vector< Real > > & _gss
 
const MaterialProperty< std::vector< Real > > & _gss_old
 
MaterialProperty< Real > & _acc_slip
 
const MaterialProperty< Real > & _acc_slip_old
 
MaterialProperty< RankTwoTensor > & _update_rot
 
const MaterialProperty< RankTwoTensor > & _deformation_gradient
 
const MaterialProperty< RankTwoTensor > & _deformation_gradient_old
 
const std::string _elasticity_tensor_name
 Name of the elasticity tensor material property. More...
 
const MaterialProperty< RankFourTensor > & _elasticity_tensor
 Elasticity tensor material property. More...
 
const MaterialProperty< RankTwoTensor > & _crysrot
 
DenseVector< Real_mo
 
DenseVector< Real_no
 
DenseVector< Real_a0
 
DenseVector< Real_xm
 
Real _h0
 
Real _tau_sat
 
Real _tau_init
 
Real _r
 
RankTwoTensor _dfgrd_tmp
 
RankTwoTensor _fe
 
RankTwoTensor _fp_old_inv
 
RankTwoTensor _fp_inv
 
RankTwoTensor _fp_prev_inv
 
DenseVector< Real_slip_incr
 
DenseVector< Real_tau
 
DenseVector< Real_dslipdtau
 
std::vector< RankTwoTensor_s0
 
RankTwoTensor _pk2_tmp
 
RankTwoTensor _pk2_tmp_old
 
Real _accslip_tmp
 
Real _accslip_tmp_old
 
std::vector< Real_gss_tmp
 
std::vector< Real_gss_tmp_old
 
DenseVector< Real_slip_sys_props
 
DenseMatrix< Real_dgss_dsliprate
 
bool _read_from_slip_sys_file
 
bool _err_tol
 
RankTwoTensor _delta_dfgrd
 Flag to check whether convergence is achieved. More...
 
RankTwoTensor _dfgrd_tmp_old
 
Real _dfgrd_scale_factor
 Scales the substepping increment to obtain deformation gradient at a substep iteration. More...
 
bool _first_step_iter
 Flags to reset variables and reinitialize variables. More...
 
bool _last_step_iter
 
bool _first_substep
 
const std::string _base_name
 Base name prepended to all material property names to allow for multi-material systems. More...
 
const MaterialProperty< RankTwoTensor > & _mechanical_strain
 Mechanical strain material property. More...
 
MaterialProperty< RankTwoTensor > & _stress
 Stress material property. More...
 
MaterialProperty< RankTwoTensor > & _elastic_strain
 Elastic strain material property. More...
 
const MaterialProperty< RankTwoTensor > & _extra_stress
 Extra stress tensor. More...
 
std::vector< const Function * > _initial_stress_fcn
 initial stress components More...
 
MaterialProperty< RankFourTensor > & _Jacobian_mult
 derivative of stress w.r.t. strain (_dstress_dstrain) More...
 
 CURR
 
 PREV
 
bool _bnd
 
bool _neighbor
 
const MooseArray< Point > & _q_point
 
const QBase *const & _qrule
 
const MooseArray< Real > & _JxW
 
const Elem *const & _current_elem
 
const SubdomainID_current_subdomain_id
 
const unsigned int_current_side
 
const ConstantTypeEnum _constant_option
 
SubProblem_subproblem
 
FEProblemBase_fe_problem
 
THREAD_ID _tid
 
Assembly_assembly
 
unsigned int _qp
 
const MooseArray< Real > & _coord
 
const MooseArray< Point > & _normals
 
MooseMesh_mesh
 
const Moose::CoordinateSystemType_coord_sys
 
std::set< std::string > _requested_props
 
std::set< std::string > _supplied_props
 
std::set< unsigned int_supplied_prop_ids
 
std::unordered_set< unsigned int_active_prop_ids
 
const bool _compute
 
std::unordered_map< unsigned int, unsigned int_props_to_min_states
 
std::vector< unsigned int_displacements
 
bool _has_stateful_property
 
bool _overrides_init_stateful_props
 
const FaceInfo_face_info
 
const bool & _enabled
 
MooseApp_app
 
const std::string _type
 
const std::string _name
 
const InputParameters_pars
 
Factory_factory
 
ActionFactory_action_factory
 
const MaterialData_blk_material_data
 
const ExecFlagEnum_execute_enum
 
const ExecFlagType_current_execute_flag
 
FEProblemBase_sc_fe_problem
 
const THREAD_ID _sc_tid
 
const Real_real_zero
 
const VariableValue_scalar_zero
 
const Point & _point_zero
 
std::unordered_map< std::string, std::vector< std::unique_ptr< VariableValue > > > _default_value
 
const InputParameters_ti_params
 
FEProblemBase_ti_feproblem
 
bool _is_implicit
 
Real_t
 
const Real_t_old
 
int_t_step
 
Real_dt
 
Real_dt_old
 
bool _is_transient
 
MooseApp_restartable_app
 
const std::string _restartable_system_name
 
const THREAD_ID _restartable_tid
 
const bool _restartable_read_only
 
FEProblemBase_mci_feproblem
 
GeometricSearchData_geometric_search_data
 
bool _requires_geometric_search
 
const InputParameters_c_parameters
 
const std::string & _c_name
 
const std::string & _c_type
 
FEProblemBase_c_fe_problem
 
const SystemBase *const _c_sys
 
std::unordered_map< std::string, std::vector< MooseVariableFieldBase *> > _coupled_vars
 
std::vector< MooseVariableFieldBase *> _coupled_moose_vars
 
std::vector< MooseVariable *> _coupled_standard_moose_vars
 
std::vector< VectorMooseVariable *> _coupled_vector_moose_vars
 
std::vector< ArrayMooseVariable *> _coupled_array_moose_vars
 
std::vector< MooseVariableFV< Real > *> _coupled_standard_fv_moose_vars
 
std::vector< MooseLinearVariableFV< Real > *> _coupled_standard_linear_fv_moose_vars
 
const std::unordered_map< std::string, std::string > & _new_to_deprecated_coupled_vars
 
bool _c_nodal
 
bool _c_is_implicit
 
const bool _c_allow_element_to_nodal_coupling
 
THREAD_ID _c_tid
 
std::unordered_map< std::string, std::unique_ptr< MooseArray< ADReal > > > _ad_default_value
 
std::unordered_map< std::string, std::unique_ptr< VectorVariableValue > > _default_vector_value
 
std::unordered_map< std::string, std::unique_ptr< ArrayVariableValue > > _default_array_value
 
std::unordered_map< std::string, std::unique_ptr< MooseArray< ADRealVectorValue > > > _ad_default_vector_value
 
VariableValue _default_value_zero
 
VariableGradient _default_gradient
 
MooseArray< ADRealVectorValue_ad_default_gradient
 
MooseArray< ADRealTensorValue_ad_default_vector_gradient
 
VariableSecond _default_second
 
MooseArray< ADRealTensorValue_ad_default_second
 
MooseArray< ADRealVectorValue_ad_default_curl
 
const VariableValue_zero
 
const VariablePhiValue_phi_zero
 
const MooseArray< ADReal > & _ad_zero
 
const VariableGradient_grad_zero
 
const MooseArray< ADRealVectorValue > & _ad_grad_zero
 
const VariablePhiGradient_grad_phi_zero
 
const VariableSecond_second_zero
 
const MooseArray< ADRealTensorValue > & _ad_second_zero
 
const VariablePhiSecond_second_phi_zero
 
const VectorVariableValue_vector_zero
 
const VectorVariableCurl_vector_curl_zero
 
VectorVariableValue _default_vector_value_zero
 
VectorVariableGradient _default_vector_gradient
 
VectorVariableCurl _default_vector_curl
 
VectorVariableDivergence _default_div
 
ArrayVariableValue _default_array_value_zero
 
ArrayVariableGradient _default_array_gradient
 
bool _coupleable_neighbor
 
const InputParameters_mi_params
 
const std::string _mi_name
 
const MooseObjectName _mi_moose_object_name
 
FEProblemBase_mi_feproblem
 
SubProblem_mi_subproblem
 
const THREAD_ID _mi_tid
 
const Moose::MaterialDataType _material_data_type
 
MaterialData_material_data
 
bool _stateful_allowed
 
bool _get_material_property_called
 
std::vector< std::unique_ptr< PropertyValue > > _default_properties
 
std::unordered_set< unsigned int_material_property_dependencies
 
const MaterialPropertyName _get_suffix
 
const bool _use_interpolated_state
 
const Parallel::Communicator & _communicator
 

Static Protected Attributes

static const std::string _interpolated_old
 
static const std::string _interpolated_older
 

Detailed Description

Definition at line 14 of file FiniteStrainCPSlipRateRes.h.

Constructor & Destructor Documentation

◆ FiniteStrainCPSlipRateRes()

FiniteStrainCPSlipRateRes::FiniteStrainCPSlipRateRes ( const InputParameters parameters)

Definition at line 24 of file FiniteStrainCPSlipRateRes.C.

26  _resid(_nss),
29  _jacob(_nss, _nss),
31 {
32 }
FiniteStrainCrystalPlasticity(const InputParameters &parameters)
const unsigned int _nss
Number of slip system resistance.
DenseMatrix< Real > _dsliprate_dsliprate
const InputParameters & parameters() const

Member Function Documentation

◆ assignSlipSysRes()

void FiniteStrainCrystalPlasticity::assignSlipSysRes ( )
protectedvirtualinherited

This function assign initial values of slip system resistances/internal variables read from getSlipSystems().

Definition at line 234 of file FiniteStrainCrystalPlasticity.C.

Referenced by FiniteStrainCrystalPlasticity::initSlipSysProps().

235 {
236  _gss[_qp].resize(_nss);
237 
238  for (unsigned int i = 0; i < _nss; ++i)
239  _gss[_qp][i] = _slip_sys_props(i);
240 }
virtual void resize(const std::size_t size) override final
const unsigned int _nss
Number of slip system resistance.
MaterialProperty< std::vector< Real > > & _gss

◆ calc_resid_jacob()

void FiniteStrainCrystalPlasticity::calc_resid_jacob ( RankTwoTensor resid,
RankFourTensor jac 
)
protectedvirtualinherited

This function calls the residual and jacobian functions used in the stress update algorithm.

Definition at line 881 of file FiniteStrainCrystalPlasticity.C.

Referenced by FiniteStrainCrystalPlasticity::solveStress().

882 {
883  calcResidual(resid);
884  if (_err_tol)
885  return;
886  calcJacobian(jac);
887 }
virtual void calcJacobian(RankFourTensor &)
This function calculate jacobian.
virtual void calcResidual(RankTwoTensor &)
This function calculate stress residual.

◆ calc_schmid_tensor()

void FiniteStrainCrystalPlasticity::calc_schmid_tensor ( )
protectedinherited

This function calculate the Schmid tensor.

Definition at line 1049 of file FiniteStrainCrystalPlasticity.C.

Referenced by FiniteStrainCrystalPlasticity::preSolveQp().

1050 {
1051  DenseVector<Real> mo(LIBMESH_DIM * _nss), no(LIBMESH_DIM * _nss);
1052 
1053  // Update slip direction and normal with crystal orientation
1054  for (unsigned int i = 0; i < _nss; ++i)
1055  {
1056  for (const auto j : make_range(Moose::dim))
1057  {
1058  mo(i * LIBMESH_DIM + j) = 0.0;
1059  for (const auto k : make_range(Moose::dim))
1060  mo(i * LIBMESH_DIM + j) =
1061  mo(i * LIBMESH_DIM + j) + _crysrot[_qp](j, k) * _mo(i * LIBMESH_DIM + k);
1062  }
1063 
1064  for (const auto j : make_range(Moose::dim))
1065  {
1066  no(i * LIBMESH_DIM + j) = 0.0;
1067  for (const auto k : make_range(Moose::dim))
1068  no(i * LIBMESH_DIM + j) =
1069  no(i * LIBMESH_DIM + j) + _crysrot[_qp](j, k) * _no(i * LIBMESH_DIM + k);
1070  }
1071  }
1072 
1073  // Calculate Schmid tensor and resolved shear stresses
1074  for (unsigned int i = 0; i < _nss; ++i)
1075  for (const auto j : make_range(Moose::dim))
1076  for (const auto k : make_range(Moose::dim))
1077  _s0[i](j, k) = mo(i * LIBMESH_DIM + j) * no(i * LIBMESH_DIM + k);
1078 }
static constexpr std::size_t dim
const unsigned int _nss
Number of slip system resistance.
const MaterialProperty< RankTwoTensor > & _crysrot
IntRange< T > make_range(T beg, T end)
static const std::complex< double > j(0, 1)
Complex number "j" (also known as "i")
static const std::string k
Definition: NS.h:130

◆ calcDgssDsliprate()

void FiniteStrainCPSlipRateRes::calcDgssDsliprate ( )
protectedvirtual

This function calculates partial derivative of slip system resistances with respect to split rate.

Definition at line 223 of file FiniteStrainCPSlipRateRes.C.

Referenced by calcJacobianSlipRate().

224 {
225  for (unsigned int i = 0; i < _nss; ++i)
226  for (unsigned int j = 0; j < _nss; ++j)
228 }
const unsigned int _nss
Number of slip system resistance.
DenseMatrix< Real > _dsliprate_dsliprate
static const std::complex< double > j(0, 1)
Complex number "j" (also known as "i")

◆ calcDtauDsliprate()

void FiniteStrainCPSlipRateRes::calcDtauDsliprate ( )
protectedvirtual

This function calculates partial derivative of resolved shear stress with respect to split rate.

Definition at line 188 of file FiniteStrainCPSlipRateRes.C.

Referenced by calcJacobianSlipRate().

189 {
190  RankFourTensor dfedfpinv, deedfe, dfpinvdpk2;
191  std::vector<RankTwoTensor> dtaudpk2(_nss), dfpinvdsliprate(_nss);
192 
193  for (unsigned int i = 0; i < _nss; ++i)
194  {
195  dtaudpk2[i] = _s0[i];
196  dfpinvdsliprate[i] = -_fp_old_inv * _s0[i] * _dt;
197  }
198 
199  for (const auto i : make_range(Moose::dim))
200  for (const auto j : make_range(Moose::dim))
201  for (const auto k : make_range(Moose::dim))
202  dfedfpinv(i, j, k, j) = _dfgrd_tmp(i, k);
203 
204  for (const auto i : make_range(Moose::dim))
205  for (const auto j : make_range(Moose::dim))
206  for (const auto k : make_range(Moose::dim))
207  {
208  deedfe(i, j, k, i) = deedfe(i, j, k, i) + _fe(k, j) * 0.5;
209  deedfe(i, j, k, j) = deedfe(i, j, k, j) + _fe(k, i) * 0.5;
210  }
211 
212  RankFourTensor dpk2dfpinv;
213 
214  dpk2dfpinv = _elasticity_tensor[_qp] * deedfe * dfedfpinv;
215 
216  for (unsigned int i = 0; i < _nss; ++i)
217  for (unsigned int j = 0; j < _nss; ++j)
218  _dsliprate_dsliprate(i, j) =
219  _dslipdtau(i) * dtaudpk2[i].doubleContraction(dpk2dfpinv * dfpinvdsliprate[j]);
220 }
const MaterialProperty< RankFourTensor > & _elasticity_tensor
Elasticity tensor material property.
static constexpr std::size_t dim
const unsigned int _nss
Number of slip system resistance.
DenseMatrix< Real > _dsliprate_dsliprate
IntRange< T > make_range(T beg, T end)
static const std::complex< double > j(0, 1)
Complex number "j" (also known as "i")
static const std::string k
Definition: NS.h:130

◆ calcJacobian()

void FiniteStrainCrystalPlasticity::calcJacobian ( RankFourTensor jac)
protectedvirtualinherited

This function calculate jacobian.

Definition at line 927 of file FiniteStrainCrystalPlasticity.C.

Referenced by FiniteStrainCrystalPlasticity::calc_resid_jacob().

928 {
929  RankFourTensor dfedfpinv, deedfe, dfpinvdpk2;
930 
931  std::vector<RankTwoTensor> dtaudpk2(_nss), dfpinvdslip(_nss);
932 
933  for (unsigned int i = 0; i < _nss; ++i)
934  {
935  dtaudpk2[i] = _s0[i];
936  dfpinvdslip[i] = -_fp_old_inv * _s0[i];
937  }
938 
939  for (const auto i : make_range(Moose::dim))
940  for (const auto j : make_range(Moose::dim))
941  for (const auto k : make_range(Moose::dim))
942  dfedfpinv(i, j, k, j) = _dfgrd_tmp(i, k);
943 
944  for (const auto i : make_range(Moose::dim))
945  for (const auto j : make_range(Moose::dim))
946  for (const auto k : make_range(Moose::dim))
947  {
948  deedfe(i, j, k, i) = deedfe(i, j, k, i) + _fe(k, j) * 0.5;
949  deedfe(i, j, k, j) = deedfe(i, j, k, j) + _fe(k, i) * 0.5;
950  }
951 
952  for (unsigned int i = 0; i < _nss; ++i)
953  dfpinvdpk2 += (dfpinvdslip[i] * _dslipdtau(i)).outerProduct(dtaudpk2[i]);
954 
955  jac =
956  RankFourTensor::IdentityFour() - (_elasticity_tensor[_qp] * deedfe * dfedfpinv * dfpinvdpk2);
957 }
RankFourTensorTempl< Real > outerProduct(const RankTwoTensorTempl< Real > &b) const
static RankFourTensorTempl< Real > IdentityFour()
const MaterialProperty< RankFourTensor > & _elasticity_tensor
Elasticity tensor material property.
static constexpr std::size_t dim
const unsigned int _nss
Number of slip system resistance.
IntRange< T > make_range(T beg, T end)
static const std::complex< double > j(0, 1)
Complex number "j" (also known as "i")
static const std::string k
Definition: NS.h:130

◆ calcJacobianSlipRate()

void FiniteStrainCPSlipRateRes::calcJacobianSlipRate ( )
protectedvirtual

This function calculates jacobian of slip rate.

Definition at line 171 of file FiniteStrainCPSlipRateRes.C.

Referenced by calcResidJacobSlipRate(), and solveStress().

172 {
173  //_dsliprate_dsliprate not reinitialized to zero, hence order is important
176 
177  for (unsigned int i = 0; i < _nss; ++i)
178  for (unsigned int j = 0; j < _nss; ++j)
179  {
180  _jacob(i, j) = 0.0;
181  if (i == j)
182  _jacob(i, j) += 1.0;
183  _jacob(i, j) -= _dsliprate_dsliprate(i, j);
184  }
185 }
const unsigned int _nss
Number of slip system resistance.
DenseMatrix< Real > _dsliprate_dsliprate
virtual void calcDtauDsliprate()
This function calculates partial derivative of resolved shear stress with respect to split rate...
virtual void calcDgssDsliprate()
This function calculates partial derivative of slip system resistances with respect to split rate...
static const std::complex< double > j(0, 1)
Complex number "j" (also known as "i")

◆ calcResidDotProdUpdate()

Real FiniteStrainCPSlipRateRes::calcResidDotProdUpdate ( const DenseVector< Real > &  update)
protected

This function calculates the dot product of residual and update.

Definition at line 369 of file FiniteStrainCPSlipRateRes.C.

Referenced by lineSearchUpdateSlipRate().

370 {
371  Real dotprod = 0.0;
372  for (unsigned int i = 0; i < _nss; ++i)
373  dotprod += _resid(i) * update(i);
374  return dotprod;
375 }
const unsigned int _nss
Number of slip system resistance.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real

◆ calcResidJacobSlipRate()

void FiniteStrainCPSlipRateRes::calcResidJacobSlipRate ( )
protectedvirtual

This function calculates residual and jacobian of slip rate.

Definition at line 126 of file FiniteStrainCPSlipRateRes.C.

Referenced by solveStress().

127 {
129  if (_err_tol)
130  return;
132 }
virtual void calcJacobianSlipRate()
This function calculates jacobian of slip rate.
virtual void calcResidualSlipRate()
This function calculates residual of slip rate.

◆ calcResidNorm()

Real FiniteStrainCPSlipRateRes::calcResidNorm ( )
protectedvirtual

This function calculates the residual norm.

Definition at line 261 of file FiniteStrainCPSlipRateRes.C.

Referenced by lineSearchUpdateSlipRate(), and solveStress().

262 {
263  Real rnorm = 0.0;
264  for (unsigned int i = 0; i < _nss; ++i)
265  rnorm += Utility::pow<2>(_resid(i));
266  rnorm = std::sqrt(rnorm) / _nss;
267 
268  return rnorm;
269 }
const unsigned int _nss
Number of slip system resistance.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real

◆ calcResidual()

void FiniteStrainCrystalPlasticity::calcResidual ( RankTwoTensor resid)
protectedvirtualinherited

This function calculate stress residual.

Definition at line 890 of file FiniteStrainCrystalPlasticity.C.

Referenced by FiniteStrainCrystalPlasticity::calc_resid_jacob(), and FiniteStrainCrystalPlasticity::line_search_update().

891 {
892  RankTwoTensor iden(RankTwoTensor::initIdentity), ce, ee, ce_pk2, eqv_slip_incr, pk2_new;
893 
894  _fe = _dfgrd_tmp * _fp_prev_inv; // _fp_inv ==> _fp_prev_inv
895 
896  ce = _fe.transpose() * _fe;
897  ce_pk2 = ce * _pk2_tmp;
898  ce_pk2 = ce_pk2 / _fe.det();
899 
900  // Calculate Schmid tensor and resolved shear stresses
901  for (unsigned int i = 0; i < _nss; ++i)
902  _tau(i) = ce_pk2.doubleContraction(_s0[i]);
903 
904  getSlipIncrements(); // Calculate dslip,dslipdtau
905 
906  if (_err_tol)
907  return;
908 
909  eqv_slip_incr.zero();
910  for (unsigned int i = 0; i < _nss; ++i)
911  eqv_slip_incr += _s0[i] * _slip_incr(i);
912 
913  eqv_slip_incr = iden - eqv_slip_incr;
914  _fp_inv = _fp_old_inv * eqv_slip_incr;
915  _fe = _dfgrd_tmp * _fp_inv;
916 
917  ce = _fe.transpose() * _fe;
918  ee = ce - iden;
919  ee *= 0.5;
920 
921  pk2_new = _elasticity_tensor[_qp] * ee;
922 
923  resid = _pk2_tmp - pk2_new;
924 }
const MaterialProperty< RankFourTensor > & _elasticity_tensor
Elasticity tensor material property.
const unsigned int _nss
Number of slip system resistance.
Real doubleContraction(const RankTwoTensorTempl< Real > &a) const
RankTwoTensorTempl< Real > transpose() const
virtual void getSlipIncrements()
This function updates the slip increments.

◆ calcResidualSlipRate()

void FiniteStrainCPSlipRateRes::calcResidualSlipRate ( )
protectedvirtual

This function calculates residual of slip rate.

Definition at line 135 of file FiniteStrainCPSlipRateRes.C.

Referenced by calcResidJacobSlipRate(), lineSearchUpdateSlipRate(), and solveStress().

136 {
137  RankTwoTensor eqv_slip_incr, ce, ee;
139 
141  _slip_incr *= _dt;
142 
143  for (unsigned int i = 0; i < _nss; ++i)
144  eqv_slip_incr += _s0[i] * _slip_incr(i);
145 
146  eqv_slip_incr = iden - eqv_slip_incr;
147 
148  _fp_inv = _fp_old_inv * eqv_slip_incr;
149  _fe = _dfgrd_tmp * _fp_inv;
150 
151  ce = _fe.transpose() * _fe;
152  ee = ce - iden;
153  ee *= 0.5;
154 
156 
157  for (unsigned int i = 0; i < _nss; ++i)
159 
162 
163  if (_err_tol)
164  return;
165 
166  for (unsigned int i = 0; i < _nss; ++i)
167  _resid(i) = _slip_rate(i) - _slip_incr(i) / _dt;
168 }
const MaterialProperty< RankFourTensor > & _elasticity_tensor
Elasticity tensor material property.
virtual void getSlipIncrements()
This function updates the slip system resistances.
virtual void update_slip_system_resistance()
This function updates the slip system resistances.
const unsigned int _nss
Number of slip system resistance.
Real doubleContraction(const RankTwoTensorTempl< Real > &a) const
RankTwoTensorTempl< Real > transpose() const

◆ calcTangentModuli()

RankFourTensor FiniteStrainCrystalPlasticity::calcTangentModuli ( )
protectedvirtualinherited

This function calculate the tangent moduli for preconditioner.

Default is the elastic stiffness matrix. Exact jacobian is currently implemented. tan_mod_type can be modified to exact in .i file to turn it on.

Definition at line 1032 of file FiniteStrainCrystalPlasticity.C.

Referenced by FiniteStrainCrystalPlasticity::postSolveQp().

1033 {
1034  RankFourTensor tan_mod;
1035 
1036  switch (_tan_mod_type)
1037  {
1038  case 0:
1039  tan_mod = elastoPlasticTangentModuli();
1040  break;
1041  default:
1042  tan_mod = elasticTangentModuli();
1043  }
1044 
1045  return tan_mod;
1046 }
virtual RankFourTensor elastoPlasticTangentModuli()
This function calculate the exact tangent moduli for preconditioner.
virtual RankFourTensor elasticTangentModuli()
This function calculate the elastic tangent moduli for preconditioner.
MooseEnum _tan_mod_type
Type of tangent moduli calculation.

◆ calcUpdate()

void FiniteStrainCPSlipRateRes::calcUpdate ( )
protected

This function calculates and updates the residual of slip rate.

Definition at line 247 of file FiniteStrainCPSlipRateRes.C.

Referenced by solveStress().

248 {
250  DenseVector<Real> r(_nss);
251  DenseVector<Real> x(_nss);
252 
253  r = _resid;
254 
255  A.lu_solve(r, x);
256 
257  _resid = x;
258 }
const unsigned int _nss
Number of slip system resistance.
const std::vector< double > x

◆ computeQpElasticityTensor()

void FiniteStrainCrystalPlasticity::computeQpElasticityTensor ( )
protectedvirtualinherited

This function updates the elasticity tensor at a quadrature point.

Presently void.

Definition at line 1027 of file FiniteStrainCrystalPlasticity.C.

1028 {
1029 }

◆ computeQpProperties()

void ComputeGeneralStressBase::computeQpProperties ( )
overrideprotectedvirtualinherited

Reimplemented from DerivativeMaterialInterface< Material >.

Definition at line 44 of file ComputeGeneralStressBase.C.

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

◆ computeQpStress()

void FiniteStrainCrystalPlasticity::computeQpStress ( )
protectedvirtualinherited

This function updates the stress at a quadrature point.

Solves stress residual equation using NR.

Updates slip system resistances iteratively.

Implements ComputeGeneralStressBase.

Definition at line 493 of file FiniteStrainCrystalPlasticity.C.

494 {
495  unsigned int substep_iter = 1; // Depth of substepping; Limited to maximum substep iteration
496  unsigned int num_substep = 1; // Calculated from substep_iter as 2^substep_iter
497  Real dt_original = _dt; // Stores original _dt; Reset at the end of solve
498  _first_substep = true; // Initialize variables at substep_iter = 1
499 
500  if (_max_substep_iter > 1)
501  {
503  if (_dfgrd_tmp_old.det() == 0)
504  _dfgrd_tmp_old.addIa(1.0);
505 
507  _err_tol = true; // Indicator to continue substepping
508  }
509 
510  // Substepping loop
511  while (_err_tol && _max_substep_iter > 1)
512  {
513  _dt = dt_original / num_substep;
514 
515  for (unsigned int istep = 0; istep < num_substep; ++istep)
516  {
517  _first_step_iter = false;
518  if (istep == 0)
519  _first_step_iter = true;
520 
521  _last_step_iter = false;
522  if (istep == num_substep - 1)
523  _last_step_iter = true;
524 
525  _dfgrd_scale_factor = (static_cast<Real>(istep) + 1) / num_substep;
526 
527  preSolveQp();
528  solveQp();
529 
530  if (_err_tol)
531  {
532  substep_iter++;
533  num_substep *= 2;
534  break;
535  }
536  }
537 
538  _first_substep = false; // Prevents reinitialization
539  _dt = dt_original; // Resets dt
540 
541 #ifdef DEBUG
542  if (substep_iter > _max_substep_iter)
543  mooseWarning("FiniteStrainCrystalPlasticity: Failure with substepping");
544 #endif
545 
546  if (!_err_tol || substep_iter > _max_substep_iter)
547  postSolveQp(); // Evaluate variables after successful solve or indicate failure
548  }
549 
550  // No substepping
551  if (_max_substep_iter == 1)
552  {
553  preSolveQp();
554  solveQp();
555  postSolveQp();
556  }
557 }
const MaterialProperty< RankTwoTensor > & _deformation_gradient
void mooseWarning(Args &&... args) const
Real _dfgrd_scale_factor
Scales the substepping increment to obtain deformation gradient at a substep iteration.
RankTwoTensor _delta_dfgrd
Flag to check whether convergence is achieved.
void addIa(const Real &a)
const MaterialProperty< RankTwoTensor > & _deformation_gradient_old
virtual void postSolveQp()
This function update stress and internal variable after solve.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
unsigned int _max_substep_iter
Maximum number of substep iterations.
bool _first_step_iter
Flags to reset variables and reinitialize variables.
virtual void solveQp()
This function solves stress and internal variables.
virtual void preSolveQp()
This function set variables for stress and internal variable solve.

◆ elasticTangentModuli()

RankFourTensor FiniteStrainCrystalPlasticity::elasticTangentModuli ( )
protectedvirtualinherited

This function calculate the elastic tangent moduli for preconditioner.

Definition at line 1121 of file FiniteStrainCrystalPlasticity.C.

Referenced by FiniteStrainCrystalPlasticity::calcTangentModuli().

1122 {
1123  return _elasticity_tensor[_qp]; // update jacobian_mult
1124 }
const MaterialProperty< RankFourTensor > & _elasticity_tensor
Elasticity tensor material property.

◆ elastoPlasticTangentModuli()

RankFourTensor FiniteStrainCrystalPlasticity::elastoPlasticTangentModuli ( )
protectedvirtualinherited

This function calculate the exact tangent moduli for preconditioner.

Definition at line 1081 of file FiniteStrainCrystalPlasticity.C.

Referenced by FiniteStrainCrystalPlasticity::calcTangentModuli().

1082 {
1083  RankFourTensor tan_mod;
1084  RankTwoTensor pk2fet, fepk2;
1085  RankFourTensor deedfe, dsigdpk2dfe;
1086 
1087  // Fill in the matrix stiffness material property
1088 
1089  for (const auto i : make_range(Moose::dim))
1090  for (const auto j : make_range(Moose::dim))
1091  for (const auto k : make_range(Moose::dim))
1092  {
1093  deedfe(i, j, k, i) = deedfe(i, j, k, i) + _fe(k, j) * 0.5;
1094  deedfe(i, j, k, j) = deedfe(i, j, k, j) + _fe(k, i) * 0.5;
1095  }
1096 
1097  usingTensorIndices(i_, j_, k_, l_);
1098  dsigdpk2dfe = _fe.times<i_, k_, j_, l_>(_fe) * _elasticity_tensor[_qp] * deedfe;
1099 
1100  pk2fet = _pk2_tmp * _fe.transpose();
1101  fepk2 = _fe * _pk2_tmp;
1102 
1103  for (const auto i : make_range(Moose::dim))
1104  for (const auto j : make_range(Moose::dim))
1105  for (const auto l : make_range(Moose::dim))
1106  {
1107  tan_mod(i, j, i, l) = tan_mod(i, j, i, l) + pk2fet(l, j);
1108  tan_mod(i, j, j, l) = tan_mod(i, j, j, l) + fepk2(i, l);
1109  }
1110 
1111  tan_mod += dsigdpk2dfe;
1112 
1113  Real je = _fe.det();
1114  if (je > 0.0)
1115  tan_mod /= je;
1116 
1117  return tan_mod;
1118 }
const MaterialProperty< RankFourTensor > & _elasticity_tensor
Elasticity tensor material property.
static constexpr std::size_t dim
RankTwoTensorTempl< Real > transpose() const
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
RankFourTensorTempl< Real > times(const RankTwoTensorTempl< Real > &b) const
IntRange< T > make_range(T beg, T end)
static const std::complex< double > j(0, 1)
Complex number "j" (also known as "i")
static const std::string k
Definition: NS.h:130

◆ get_current_rotation()

RankTwoTensor FiniteStrainCrystalPlasticity::get_current_rotation ( const RankTwoTensor a)
protectedinherited

This function perform RU decomposition to obtain the rotation tensor.

Definition at line 985 of file FiniteStrainCrystalPlasticity.C.

Referenced by FiniteStrainCrystalPlasticity::postSolveQp().

986 {
987  return getMatRot(a);
988 }
RankTwoTensor getMatRot(const RankTwoTensor &a)
This function perform RU decomposition to obtain the rotation tensor.

◆ getFlowRateParams()

void FiniteStrainCrystalPlasticity::getFlowRateParams ( )
protectedvirtualinherited

This function assign flow rate parameters - see test.

.i input file format start_slip_sys_num, end_slip_sys_num, value1, value2

Definition at line 344 of file FiniteStrainCrystalPlasticity.C.

Referenced by FiniteStrainCrystalPlasticity::initSlipSysProps().

345 {
346  if (_flowprops.size() <= 0)
347  mooseError("FiniteStrainCrystalPLasticity: Error in reading flow rate properties: Specify "
348  "input in .i file or a slip_sys_flow_prop_file_name");
349 
350  _a0.resize(_nss);
351  _xm.resize(_nss);
352 
353  unsigned int num_data_grp = 2 + _num_slip_sys_flowrate_props; // Number of data per group e.g.
354  // start_slip_sys, end_slip_sys,
355  // value1, value2, ..
356 
357  for (unsigned int i = 0; i < _flowprops.size() / num_data_grp; ++i)
358  {
359  Real vs, ve;
360  unsigned int is, ie;
361 
362  vs = _flowprops[i * num_data_grp];
363  ve = _flowprops[i * num_data_grp + 1];
364 
365  if (vs <= 0 || ve <= 0)
366  mooseError("FiniteStrainCrystalPLasticity: Indices in flow rate parameter read must be "
367  "positive integers: is = ",
368  vs,
369  " ie = ",
370  ve);
371 
372  if (vs != floor(vs) || ve != floor(ve))
373  mooseError("FiniteStrainCrystalPLasticity: Error in reading flow props: Values specifying "
374  "start and end number of slip system groups should be integer");
375 
376  is = static_cast<unsigned int>(vs);
377  ie = static_cast<unsigned int>(ve);
378 
379  if (is > ie)
380  mooseError("FiniteStrainCrystalPLasticity: Start index is = ",
381  is,
382  " should be greater than end index ie = ",
383  ie,
384  " in flow rate parameter read");
385 
386  for (unsigned int j = is; j <= ie; ++j)
387  {
388  _a0(j - 1) = _flowprops[i * num_data_grp + 2];
389  _xm(j - 1) = _flowprops[i * num_data_grp + 3];
390  }
391  }
392 
393  for (unsigned int i = 0; i < _nss; ++i)
394  {
395  if (!(_a0(i) > 0.0 && _xm(i) > 0.0))
396  {
397  mooseWarning(
398  "FiniteStrainCrystalPlasticity: Non-positive flow rate parameters ", _a0(i), ",", _xm(i));
399  break;
400  }
401  }
402 }
unsigned int _num_slip_sys_flowrate_props
Number of slip system flow rate parameters.
void mooseWarning(Args &&... args) const
const unsigned int _nss
Number of slip system resistance.
PetscErrorCode PetscInt const PetscInt IS * is
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
void mooseError(Args &&... args) const
static const std::complex< double > j(0, 1)
Complex number "j" (also known as "i")

◆ getHardnessParams()

void FiniteStrainCrystalPlasticity::getHardnessParams ( )
protectedvirtualinherited

This function assign flow rate parameters from .i file - see test.

Definition at line 412 of file FiniteStrainCrystalPlasticity.C.

Referenced by FiniteStrainCrystalPlasticity::initSlipSysProps().

413 {
414  if (_hprops.size() <= 0)
415  mooseError("FiniteStrainCrystalPLasticity: Error in reading hardness properties: Specify input "
416  "in .i file or a slip_sys_hard_prop_file_name");
417 
418  _r = _hprops[0];
419  _h0 = _hprops[1];
420  _tau_init = _hprops[2];
421  _tau_sat = _hprops[3];
422 }
void mooseError(Args &&... args) const

◆ getInitSlipSysRes()

void FiniteStrainCrystalPlasticity::getInitSlipSysRes ( )
protectedvirtualinherited

This function assign slip system resistances - see test.

.i input file format start_slip_sys_num, end_slip_sys_num, value.

Definition at line 262 of file FiniteStrainCrystalPlasticity.C.

Referenced by FiniteStrainCrystalPlasticity::initSlipSysProps().

263 {
264  if (_gprops.size() <= 0)
265  mooseError("FiniteStrainCrystalPLasticity: Error in reading slip system resistance properties: "
266  "Specify input in .i file or in slip_sys_res_prop_file or in slip_sys_file");
267 
268  _gss[_qp].resize(_nss, 0.0);
269 
270  unsigned int num_data_grp = 3; // Number of data per group e.g. start_slip_sys, end_slip_sys,
271  // value
272 
273  for (unsigned int i = 0; i < _gprops.size() / num_data_grp; ++i)
274  {
275  Real vs, ve;
276  unsigned int is, ie;
277 
278  vs = _gprops[i * num_data_grp];
279  ve = _gprops[i * num_data_grp + 1];
280 
281  if (vs <= 0 || ve <= 0)
282  mooseError("FiniteStrainCrystalPLasticity: Indices in gss property read must be positive "
283  "integers: is = ",
284  vs,
285  " ie = ",
286  ve);
287 
288  if (vs != floor(vs) || ve != floor(ve))
289  mooseError("FiniteStrainCrystalPLasticity: Error in reading slip system resistances: Values "
290  "specifying start and end number of slip system groups should be integer");
291 
292  is = static_cast<unsigned int>(vs);
293  ie = static_cast<unsigned int>(ve);
294 
295  if (is > ie)
296  mooseError("FiniteStrainCrystalPLasticity: Start index is = ",
297  is,
298  " should be greater than end index ie = ",
299  ie,
300  " in slip system resistance property read");
301 
302  for (unsigned int j = is; j <= ie; ++j)
303  _gss[_qp][j - 1] = _gprops[i * num_data_grp + 2];
304  }
305 
306  for (unsigned int i = 0; i < _nss; ++i)
307  if (_gss[_qp][i] <= 0.0)
308  mooseError("FiniteStrainCrystalPLasticity: Value of resistance for slip system ",
309  i + 1,
310  " non positive");
311 }
virtual void resize(const std::size_t size) override final
const unsigned int _nss
Number of slip system resistance.
MaterialProperty< std::vector< Real > > & _gss
PetscErrorCode PetscInt const PetscInt IS * is
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
void mooseError(Args &&... args) const
static const std::complex< double > j(0, 1)
Complex number "j" (also known as "i")

◆ getMatRot()

RankTwoTensor FiniteStrainCrystalPlasticity::getMatRot ( const RankTwoTensor a)
protectedinherited

This function perform RU decomposition to obtain the rotation tensor.

Definition at line 992 of file FiniteStrainCrystalPlasticity.C.

Referenced by FiniteStrainCrystalPlasticity::get_current_rotation().

993 {
994  RankTwoTensor rot;
995  RankTwoTensor c, diag, evec;
996  PetscScalar cmat[LIBMESH_DIM][LIBMESH_DIM], work[10];
997  PetscReal w[LIBMESH_DIM];
998  PetscBLASInt nd = LIBMESH_DIM, lwork = 10, info;
999 
1000  c = a.transpose() * a;
1001 
1002  for (const auto i : make_range(Moose::dim))
1003  for (const auto j : make_range(Moose::dim))
1004  cmat[i][j] = c(i, j);
1005 
1006  LAPACKsyev_("V", "U", &nd, &cmat[0][0], &nd, w, work, &lwork, &info);
1007 
1008  if (info != 0)
1009  mooseError("FiniteStrainCrystalPLasticity: DSYEV function call in getMatRot function failed");
1010 
1011  diag.zero();
1012 
1013  for (const auto i : make_range(Moose::dim))
1014  diag(i, i) = std::sqrt(w[i]);
1015 
1016  for (const auto i : make_range(Moose::dim))
1017  for (const auto j : make_range(Moose::dim))
1018  evec(i, j) = cmat[i][j];
1019 
1020  rot = a * ((evec.transpose() * diag * evec).inverse());
1021 
1022  return rot;
1023 }
MPI_Info info
static constexpr std::size_t dim
void inverse(const std::vector< std::vector< Real >> &m, std::vector< std::vector< Real >> &m_inv)
RankTwoTensorTempl< Real > transpose() const
IntRange< T > make_range(T beg, T end)
void mooseError(Args &&... args) const
static const std::complex< double > j(0, 1)
Complex number "j" (also known as "i")

◆ getSlipIncrements()

void FiniteStrainCPSlipRateRes::getSlipIncrements ( )
protectedvirtual

This function updates the slip system resistances.

Reimplemented from FiniteStrainCrystalPlasticity.

Definition at line 231 of file FiniteStrainCPSlipRateRes.C.

Referenced by calcResidualSlipRate().

232 {
234 
235  if (_err_tol)
236  return;
237 
238  _dslipdtau *= 1.0 / _dt;
239 
240  for (unsigned int i = 0; i < _nss; ++i)
241  _dsliprate_dgss(i) = -_a0(i) / _xm(i) *
242  std::pow(std::abs(_tau(i) / _gss_tmp[i]), 1.0 / _xm(i) - 1.0) * _tau(i) /
243  std::pow(_gss_tmp[i], 2.0);
244 }
const unsigned int _nss
Number of slip system resistance.
virtual void getSlipIncrements()
This function updates the slip increments.
MooseUnits pow(const MooseUnits &, int)

◆ getSlipSystems()

void FiniteStrainCrystalPlasticity::getSlipSystems ( )
protectedvirtualinherited

This function reads slip system from file - see test.

Definition at line 426 of file FiniteStrainCrystalPlasticity.C.

Referenced by FiniteStrainCrystalPlasticity::FiniteStrainCrystalPlasticity().

427 {
428  Real vec[LIBMESH_DIM];
429  std::ifstream fileslipsys;
430 
432 
433  fileslipsys.open(_slip_sys_file_name.c_str());
434 
435  for (unsigned int i = 0; i < _nss; ++i)
436  {
437  // Read the slip normal
438  for (const auto j : make_range(Moose::dim))
439  if (!(fileslipsys >> vec[j]))
440  mooseError("Crystal Plasticity Error: Premature end of file reading slip system file \n");
441 
442  // Normalize the vectors
443  Real mag;
444  mag = Utility::pow<2>(vec[0]) + Utility::pow<2>(vec[1]) + Utility::pow<2>(vec[2]);
445  mag = std::sqrt(mag);
446 
447  for (unsigned j = 0; j < LIBMESH_DIM; ++j)
448  _no(i * LIBMESH_DIM + j) = vec[j] / mag;
449 
450  // Read the slip direction
451  for (const auto j : make_range(Moose::dim))
452  if (!(fileslipsys >> vec[j]))
453  mooseError("Crystal Plasticity Error: Premature end of file reading slip system file \n");
454 
455  // Normalize the vectors
456  mag = Utility::pow<2>(vec[0]) + Utility::pow<2>(vec[1]) + Utility::pow<2>(vec[2]);
457  mag = std::sqrt(mag);
458 
459  for (const auto j : make_range(Moose::dim))
460  _mo(i * LIBMESH_DIM + j) = vec[j] / mag;
461 
462  mag = 0.0;
463  for (const auto j : make_range(Moose::dim))
464  mag += _mo(i * LIBMESH_DIM + j) * _no(i * LIBMESH_DIM + j);
465 
466  if (std::abs(mag) > 1e-8)
467  mooseError(
468  "Crystal Plasicity Error: Slip direction and normal not orthonormal, System number = ",
469  i,
470  "\n");
471 
473  for (unsigned int j = 0; j < _num_slip_sys_props; ++j)
474  if (!(fileslipsys >> _slip_sys_props(i * _num_slip_sys_props + j)))
475  mooseError("Crystal Plasticity Error: Premature end of file reading slip system file - "
476  "check in slip system file read input options/values\n");
477  }
478 
479  fileslipsys.close();
480 }
static constexpr std::size_t dim
const unsigned int _nss
Number of slip system resistance.
bool checkFileReadable(const std::string &filename, bool check_line_endings=false, bool throw_on_unreadable=true, bool check_for_git_lfs_pointer=true)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
IntRange< T > make_range(T beg, T end)
void mooseError(Args &&... args) const
unsigned int _num_slip_sys_props
Number of slip system specific properties provided in the file containing slip system normals and dir...
static const std::complex< double > j(0, 1)
Complex number "j" (also known as "i")
std::string _slip_sys_file_name
File should contain slip plane normal and direction. See test.

◆ initAdditionalProps()

void FiniteStrainCrystalPlasticity::initAdditionalProps ( )
protectedvirtualinherited

This function initializes additional parameters.

Definition at line 484 of file FiniteStrainCrystalPlasticity.C.

Referenced by FiniteStrainCrystalPlasticity::initQpStatefulProperties().

485 {
486 }

◆ initQpStatefulProperties()

void FiniteStrainCrystalPlasticity::initQpStatefulProperties ( )
protectedvirtualinherited

This function initializes the stateful properties such as stress, plastic deformation gradient, slip system resistances, etc.

Reimplemented from ComputeGeneralStressBase.

Definition at line 191 of file FiniteStrainCrystalPlasticity.C.

192 {
193  _stress[_qp].zero();
194 
195  _fp[_qp].setToIdentity();
196 
197  _pk2[_qp].zero();
198  _acc_slip[_qp] = 0.0;
199  _lag_e[_qp].zero();
200 
201  _update_rot[_qp].setToIdentity();
202 
203  initSlipSysProps(); // Initializes slip system related properties
205 }
MaterialProperty< RankTwoTensor > & _lag_e
MaterialProperty< RankTwoTensor > & _pk2
MaterialProperty< RankTwoTensor > & _fp
MaterialProperty< RankTwoTensor > & _stress
Stress material property.
virtual void initSlipSysProps()
This function initializes slip system resistances.
virtual void initAdditionalProps()
This function initializes additional parameters.
MaterialProperty< RankTwoTensor > & _update_rot

◆ initSlipSysProps()

void FiniteStrainCrystalPlasticity::initSlipSysProps ( )
protectedvirtualinherited

This function initializes slip system resistances.

Definition at line 208 of file FiniteStrainCrystalPlasticity.C.

Referenced by FiniteStrainCrystalPlasticity::initQpStatefulProperties().

209 {
210  switch (_intvar_read_type)
211  {
212  case 0:
214  break;
215  case 1:
217  break;
218  default:
220  }
221 
222  if (_slip_sys_flow_prop_file_name.length() != 0)
224  else
226 
227  if (_slip_sys_hard_prop_file_name.length() != 0)
229  else
231 }
virtual void getHardnessParams()
This function assign flow rate parameters from .i file - see test.
std::string _slip_sys_flow_prop_file_name
File should contain values of the flow rate equation parameters.
virtual void readFileHardnessParams()
This function read hardness parameters from file.
std::string _slip_sys_hard_prop_file_name
The hardening parameters in this class are read from .i file. The user can override to read from file...
virtual void assignSlipSysRes()
This function assign initial values of slip system resistances/internal variables read from getSlipSy...
virtual void getFlowRateParams()
This function assign flow rate parameters - see test.
virtual void readFileFlowRateParams()
This function read flow rate parameters from file - see test.
virtual void getInitSlipSysRes()
This function assign slip system resistances - see test.
virtual void readFileInitSlipSysRes()
This function read slip system resistances from file - see test.
MooseEnum _intvar_read_type
Read from options for initial values of internal variables.

◆ internalVariableUpdateNRiteration()

void FiniteStrainCrystalPlasticity::internalVariableUpdateNRiteration ( )
protectedinherited

This function updates internal variables after each NewTon Raphson iteration (_fp_inv)

Definition at line 1210 of file FiniteStrainCrystalPlasticity.C.

Referenced by FiniteStrainCrystalPlasticity::solveStress().

1211 {
1212  _fp_prev_inv = _fp_inv; // update _fp_prev_inv
1213 }

◆ line_search_update()

bool FiniteStrainCrystalPlasticity::line_search_update ( const Real  rnorm_prev,
const RankTwoTensor  dpk2 
)
protectedinherited

This function performs the line search update.

Definition at line 1127 of file FiniteStrainCrystalPlasticity.C.

Referenced by FiniteStrainCrystalPlasticity::solveStress().

1128 {
1129  if (_lsrch_method == "CUT_HALF")
1130  {
1131  Real rnorm;
1132  RankTwoTensor resid;
1133  Real step = 1.0;
1134 
1135  do
1136  {
1137  _pk2_tmp = _pk2_tmp - step * dpk2;
1138  step /= 2.0;
1139  _pk2_tmp = _pk2_tmp + step * dpk2;
1140 
1141  calcResidual(resid);
1142  rnorm = resid.L2norm();
1143  } while (rnorm > rnorm_prev && step > _min_lsrch_step);
1144 
1145  if (rnorm > rnorm_prev && step <= _min_lsrch_step)
1146  return false;
1147 
1148  return true;
1149  }
1150  else if (_lsrch_method == "BISECTION")
1151  {
1152  unsigned int count = 0;
1153  Real step_a = 0.0;
1154  Real step_b = 1.0;
1155  Real step = 1.0;
1156  Real s_m = 1000.0;
1157  Real rnorm = 1000.0;
1158 
1159  RankTwoTensor resid;
1160  calcResidual(resid);
1161  Real s_b = resid.doubleContraction(dpk2);
1162  Real rnorm1 = resid.L2norm();
1163  _pk2_tmp = _pk2_tmp - dpk2;
1164  calcResidual(resid);
1165  Real s_a = resid.doubleContraction(dpk2);
1166  Real rnorm0 = resid.L2norm();
1167  _pk2_tmp = _pk2_tmp + dpk2;
1168 
1169  if ((rnorm1 / rnorm0) < _lsrch_tol || s_a * s_b > 0)
1170  {
1171  calcResidual(resid);
1172  return true;
1173  }
1174 
1175  while ((rnorm / rnorm0) > _lsrch_tol && count < _lsrch_max_iter)
1176  {
1177  _pk2_tmp = _pk2_tmp - step * dpk2;
1178  step = 0.5 * (step_b + step_a);
1179  _pk2_tmp = _pk2_tmp + step * dpk2;
1180  calcResidual(resid);
1181  s_m = resid.doubleContraction(dpk2);
1182  rnorm = resid.L2norm();
1183 
1184  if (s_m * s_a < 0.0)
1185  {
1186  step_b = step;
1187  s_b = s_m;
1188  }
1189  if (s_m * s_b < 0.0)
1190  {
1191  step_a = step;
1192  s_a = s_m;
1193  }
1194  count++;
1195  }
1196 
1197  if ((rnorm / rnorm0) < _lsrch_tol && count < _lsrch_max_iter)
1198  return true;
1199 
1200  return false;
1201  }
1202  else
1203  {
1204  mooseError("Line search meothod is not provided.");
1205  return false;
1206  }
1207 }
virtual void calcResidual(RankTwoTensor &)
This function calculate stress residual.
Real doubleContraction(const RankTwoTensorTempl< Real > &a) const
unsigned int _lsrch_max_iter
Line search bisection method maximum iteration number.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
Real _lsrch_tol
Line search bisection method tolerance.
void mooseError(Args &&... args) const
Real _min_lsrch_step
Minimum line search step size.

◆ lineSearchUpdateSlipRate()

bool FiniteStrainCPSlipRateRes::lineSearchUpdateSlipRate ( const Real  rnorm_prev,
const DenseVector< Real > &  update 
)
protected

This function performs the line search update.

Definition at line 272 of file FiniteStrainCPSlipRateRes.C.

Referenced by solveStress().

274 {
275  if (_lsrch_method == "CUT_HALF")
276  {
277  Real rnorm;
278  Real step = 1.0;
279  do
280  {
281  for (unsigned int i = 0; i < update.size(); ++i)
282  _slip_rate(i) += step * update(i);
283 
284  step /= 2.0;
285 
286  for (unsigned int i = 0; i < update.size(); ++i)
287  _slip_rate(i) -= step * update(i);
288 
290  if (_err_tol)
291  return false;
292  rnorm = calcResidNorm();
293  } while (rnorm > rnorm_prev && step > _min_lsrch_step);
294 
295  if (rnorm > rnorm_prev && step <= _min_lsrch_step)
296  return false;
297 
298  return true;
299  }
300  else if (_lsrch_method == "BISECTION")
301  {
302  unsigned int count = 0;
303  Real step_a = 0.0;
304  Real step_b = 1.0;
305  Real step = 1.0;
306  Real s_m = 1000.0;
307  Real rnorm = 1000.0;
308 
309  Real s_b = calcResidDotProdUpdate(update);
310  Real rnorm1 = calcResidNorm();
311 
312  for (unsigned int i = 0; i < update.size(); ++i)
313  _slip_rate(i) += update(i);
314 
316  Real s_a = calcResidDotProdUpdate(update);
317  Real rnorm0 = calcResidNorm();
318 
319  for (unsigned int i = 0; i < update.size(); ++i)
320  _slip_rate(i) -= update(i);
321 
322  if ((rnorm1 / rnorm0) < _lsrch_tol || s_a * s_b > 0)
323  {
325  return true;
326  }
327 
328  while ((rnorm / rnorm0) > _lsrch_tol && count < _lsrch_max_iter)
329  {
330 
331  for (unsigned int i = 0; i < update.size(); ++i)
332  _slip_rate(i) += step * update(i);
333 
334  step = 0.5 * (step_a + step_b);
335 
336  for (unsigned int i = 0; i < update.size(); ++i)
337  _slip_rate(i) -= step * update(i);
338 
340  s_m = calcResidDotProdUpdate(update);
341  rnorm = calcResidNorm();
342 
343  if (s_m * s_a < 0.0)
344  {
345  step_b = step;
346  s_b = s_m;
347  }
348  if (s_m * s_b < 0.0)
349  {
350  step_a = step;
351  s_a = s_m;
352  }
353  count++;
354  }
355 
356  if ((rnorm / rnorm0) < _lsrch_tol && count < _lsrch_max_iter)
357  return true;
358 
359  return false;
360  }
361  else
362  {
363  mooseError("Line search meothod is not provided.");
364  return false;
365  }
366 }
Real calcResidDotProdUpdate(const DenseVector< Real > &)
This function calculates the dot product of residual and update.
unsigned int _lsrch_max_iter
Line search bisection method maximum iteration number.
virtual Real calcResidNorm()
This function calculates the residual norm.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
Real _lsrch_tol
Line search bisection method tolerance.
virtual void calcResidualSlipRate()
This function calculates residual of slip rate.
void mooseError(Args &&... args) const
Real _min_lsrch_step
Minimum line search step size.

◆ postSolveQp()

void FiniteStrainCrystalPlasticity::postSolveQp ( )
protectedvirtualinherited

This function update stress and internal variable after solve.

Definition at line 588 of file FiniteStrainCrystalPlasticity.C.

Referenced by FiniteStrainCrystalPlasticity::computeQpStress().

589 {
590  if (_err_tol)
591  {
592  _err_tol = false;
594  {
596  _rndm_scale_var = _elasticity_tensor[_qp](0, 0, 0, 0);
597 
599  }
600  else
601  mooseError("FiniteStrainCrystalPlasticity: Constitutive failure");
602  }
603  else
604  {
605  _stress[_qp] = _fe * _pk2[_qp] * _fe.transpose() / _fe.det();
606 
607  _Jacobian_mult[_qp] += calcTangentModuli(); // Calculate jacobian for preconditioner
608 
610 
611  _lag_e[_qp] = _deformation_gradient[_qp].transpose() * _deformation_gradient[_qp] - iden;
612  _lag_e[_qp] = _lag_e[_qp] * 0.5;
613 
614  RankTwoTensor rot;
615  rot = get_current_rotation(_deformation_gradient[_qp]); // Calculate material rotation
616  _update_rot[_qp] = rot * _crysrot[_qp];
617  }
618 }
MaterialProperty< RankFourTensor > & _Jacobian_mult
derivative of stress w.r.t. strain (_dstress_dstrain)
MaterialProperty< RankTwoTensor > & _lag_e
const MaterialProperty< RankTwoTensor > & _deformation_gradient
bool _input_rndm_scale_var
Input option for scaling variable to generate random stress when convergence fails.
const MaterialProperty< RankFourTensor > & _elasticity_tensor
Elasticity tensor material property.
MaterialProperty< RankTwoTensor > & _pk2
static RankTwoTensorTempl< Real > genRandomSymmTensor(Real stddev, Real mean)
virtual RankFourTensor calcTangentModuli()
This function calculate the tangent moduli for preconditioner.
const MaterialProperty< RankTwoTensor > & _crysrot
RankTwoTensorTempl< Real > transpose() const
void mooseError(Args &&... args) const
MaterialProperty< RankTwoTensor > & _stress
Stress material property.
MaterialProperty< RankTwoTensor > & _update_rot
RankTwoTensor get_current_rotation(const RankTwoTensor &a)
This function perform RU decomposition to obtain the rotation tensor.

◆ postSolveStatevar()

void FiniteStrainCrystalPlasticity::postSolveStatevar ( )
protectedvirtualinherited

This function update internal variable after solve.

Definition at line 683 of file FiniteStrainCrystalPlasticity.C.

Referenced by FiniteStrainCrystalPlasticity::solveQp().

684 {
685  if (_max_substep_iter == 1) // No substepping
686  {
687  _gss[_qp] = _gss_tmp;
689  }
690  else
691  {
692  if (_last_step_iter)
693  {
694  _gss[_qp] = _gss_tmp;
696  }
697  else
698  {
701  }
702  }
703 }
MaterialProperty< std::vector< Real > > & _gss
unsigned int _max_substep_iter
Maximum number of substep iterations.

◆ postSolveStress()

void FiniteStrainCrystalPlasticity::postSolveStress ( )
protectedvirtualinherited

This function update stress and plastic deformation gradient after solve.

Definition at line 802 of file FiniteStrainCrystalPlasticity.C.

Referenced by solveStatevar(), and FiniteStrainCrystalPlasticity::solveStatevar().

803 {
804  if (_max_substep_iter == 1) // No substepping
805  {
806  _fp[_qp] = _fp_inv.inverse();
807  _pk2[_qp] = _pk2_tmp;
808  }
809  else
810  {
811  if (_last_step_iter)
812  {
813  _fp[_qp] = _fp_inv.inverse();
814  _pk2[_qp] = _pk2_tmp;
815  }
816  else
817  {
820  }
821  }
822 }
RankTwoTensorTempl< Real > inverse() const
MaterialProperty< RankTwoTensor > & _pk2
MaterialProperty< RankTwoTensor > & _fp
unsigned int _max_substep_iter
Maximum number of substep iterations.

◆ preSolveQp()

void FiniteStrainCrystalPlasticity::preSolveQp ( )
protectedvirtualinherited

This function set variables for stress and internal variable solve.

Definition at line 560 of file FiniteStrainCrystalPlasticity.C.

Referenced by FiniteStrainCrystalPlasticity::computeQpStress().

561 {
562  // Initialize variable
563  if (_first_substep)
564  {
565  _Jacobian_mult[_qp].zero(); // Initializes jacobian for preconditioner
567  }
568 
569  if (_max_substep_iter == 1)
570  _dfgrd_tmp = _deformation_gradient[_qp]; // Without substepping
571  else
573 
574  _err_tol = false;
575 }
MaterialProperty< RankFourTensor > & _Jacobian_mult
derivative of stress w.r.t. strain (_dstress_dstrain)
const MaterialProperty< RankTwoTensor > & _deformation_gradient
Real _dfgrd_scale_factor
Scales the substepping increment to obtain deformation gradient at a substep iteration.
RankTwoTensor _delta_dfgrd
Flag to check whether convergence is achieved.
void calc_schmid_tensor()
This function calculate the Schmid tensor.
unsigned int _max_substep_iter
Maximum number of substep iterations.

◆ preSolveStatevar()

void FiniteStrainCrystalPlasticity::preSolveStatevar ( )
protectedvirtualinherited

This function set variables for internal variable solve.

Definition at line 621 of file FiniteStrainCrystalPlasticity.C.

Referenced by FiniteStrainCrystalPlasticity::solveQp().

622 {
623  if (_max_substep_iter == 1) // No substepping
624  {
625  _gss_tmp = _gss_old[_qp];
627  }
628  else
629  {
630  if (_first_step_iter)
631  {
634  }
635  else
637  }
638 }
const MaterialProperty< std::vector< Real > > & _gss_old
unsigned int _max_substep_iter
Maximum number of substep iterations.
bool _first_step_iter
Flags to reset variables and reinitialize variables.
const MaterialProperty< Real > & _acc_slip_old

◆ preSolveStress()

void FiniteStrainCPSlipRateRes::preSolveStress ( )
protectedvirtual

This function sets variable for internal variable solve.

Reimplemented from FiniteStrainCrystalPlasticity.

Definition at line 45 of file FiniteStrainCPSlipRateRes.C.

Referenced by solveStatevar().

46 {
48  _slip_rate.zero();
49 }
virtual void preSolveStress()
This function set variables for stress solve.

◆ readFileFlowRateParams()

void FiniteStrainCrystalPlasticity::readFileFlowRateParams ( )
protectedvirtualinherited

This function read flow rate parameters from file - see test.

Definition at line 315 of file FiniteStrainCrystalPlasticity.C.

Referenced by FiniteStrainCrystalPlasticity::initSlipSysProps().

316 {
317  _a0.resize(_nss);
318  _xm.resize(_nss);
319 
321 
322  std::ifstream file;
323  file.open(_slip_sys_flow_prop_file_name.c_str());
324 
325  std::vector<Real> vec;
326  vec.resize(_num_slip_sys_flowrate_props);
327 
328  for (unsigned int i = 0; i < _nss; ++i)
329  {
330  for (unsigned int j = 0; j < _num_slip_sys_flowrate_props; ++j)
331  if (!(file >> vec[j]))
332  mooseError(
333  "Error FiniteStrainCrystalPlasticity: Premature end of slip_sys_flow_rate_param file");
334 
335  _a0(i) = vec[0];
336  _xm(i) = vec[1];
337  }
338 
339  file.close();
340 }
std::string _slip_sys_flow_prop_file_name
File should contain values of the flow rate equation parameters.
unsigned int _num_slip_sys_flowrate_props
Number of slip system flow rate parameters.
const unsigned int _nss
Number of slip system resistance.
bool checkFileReadable(const std::string &filename, bool check_line_endings=false, bool throw_on_unreadable=true, bool check_for_git_lfs_pointer=true)
void mooseError(Args &&... args) const
static const std::complex< double > j(0, 1)
Complex number "j" (also known as "i")

◆ readFileHardnessParams()

void FiniteStrainCrystalPlasticity::readFileHardnessParams ( )
protectedvirtualinherited

This function read hardness parameters from file.

Definition at line 406 of file FiniteStrainCrystalPlasticity.C.

Referenced by FiniteStrainCrystalPlasticity::initSlipSysProps().

407 {
408 }

◆ readFileInitSlipSysRes()

void FiniteStrainCrystalPlasticity::readFileInitSlipSysRes ( )
protectedvirtualinherited

This function read slip system resistances from file - see test.

Definition at line 244 of file FiniteStrainCrystalPlasticity.C.

Referenced by FiniteStrainCrystalPlasticity::initSlipSysProps().

245 {
246  _gss[_qp].resize(_nss);
247 
249 
250  std::ifstream file;
251  file.open(_slip_sys_res_prop_file_name.c_str());
252 
253  for (unsigned int i = 0; i < _nss; ++i)
254  if (!(file >> _gss[_qp][i]))
255  mooseError("Error FiniteStrainCrystalPlasticity: Premature end of slip_sys_res_prop file");
256 
257  file.close();
258 }
virtual void resize(const std::size_t size) override final
const unsigned int _nss
Number of slip system resistance.
MaterialProperty< std::vector< Real > > & _gss
bool checkFileReadable(const std::string &filename, bool check_line_endings=false, bool throw_on_unreadable=true, bool check_for_git_lfs_pointer=true)
std::string _slip_sys_res_prop_file_name
File should contain initial values of the slip system resistances.
void mooseError(Args &&... args) const

◆ solveQp()

void FiniteStrainCrystalPlasticity::solveQp ( )
protectedvirtualinherited

This function solves stress and internal variables.

Definition at line 578 of file FiniteStrainCrystalPlasticity.C.

Referenced by FiniteStrainCrystalPlasticity::computeQpStress().

579 {
581  solveStatevar();
582  if (_err_tol)
583  return;
585 }
virtual void solveStatevar()
This function solves internal variables.
virtual void postSolveStatevar()
This function update internal variable after solve.
virtual void preSolveStatevar()
This function set variables for internal variable solve.

◆ solveStatevar()

void FiniteStrainCPSlipRateRes::solveStatevar ( )
protectedvirtual

This function solves internal variables.

Reimplemented from FiniteStrainCrystalPlasticity.

Definition at line 35 of file FiniteStrainCPSlipRateRes.C.

36 {
38  solveStress();
39  if (_err_tol)
40  return;
42 }
virtual void solveStress()
This function solves for stress, updates plastic deformation gradient.
virtual void preSolveStress()
This function sets variable for internal variable solve.
virtual void postSolveStress()
This function update stress and plastic deformation gradient after solve.

◆ solveStress()

void FiniteStrainCPSlipRateRes::solveStress ( )
protectedvirtual

This function solves for stress, updates plastic deformation gradient.

Reimplemented from FiniteStrainCrystalPlasticity.

Definition at line 52 of file FiniteStrainCPSlipRateRes.C.

Referenced by solveStatevar().

53 {
54  Real rnorm, rnorm0, rnorm_prev;
55  unsigned int iter = 0;
56 
57 #ifdef DEBUG
58  std::vector<Real> rnormst(_maxiter + 1), slipratest(_maxiter + 1); // Use for Debugging
59 #endif
60 
62  if (_err_tol)
63  return;
64  rnorm = calcResidNorm();
65  rnorm0 = rnorm;
66 
67 #ifdef DEBUG
68  rnormst[iter] = rnorm;
69  Real slipratemax = 0.0;
70  for (unsigned int i = 0; i < _nss; ++i)
71  if (std::abs(_slip_rate(i)) > slipratemax)
72  slipratemax = std::abs(_slip_rate(i));
73  slipratest[iter] = slipratemax;
74 #endif
75 
76  while (rnorm > _rtol * rnorm0 && rnorm0 > _abs_tol && iter < _maxiter)
77  {
78  calcUpdate();
79 
80  DenseVector<Real> update = _resid;
81 
82  _slip_rate -= update;
83 
85  if (_err_tol)
86  return;
87  rnorm_prev = rnorm;
88  rnorm = calcResidNorm();
89 
90  if (_use_line_search && rnorm > rnorm_prev && !lineSearchUpdateSlipRate(rnorm_prev, update))
91  {
92 #ifdef DEBUG
93  mooseWarning("FiniteStrainCrystalPLasticity: Failed with line search");
94 #endif
95  _err_tol = true;
96  return;
97  }
98 
100 
101  if (_use_line_search)
102  rnorm = calcResidNorm();
103  iter++;
104 
105 #ifdef DEBUG
106  slipratemax = 0.0;
107  for (unsigned int i = 0; i < _nss; ++i)
108  if (std::abs(_slip_rate(i)) > slipratemax)
109  slipratemax = std::abs(_slip_rate(i));
110  rnormst[iter] = rnorm;
111  slipratest[iter] = slipratemax;
112 #endif
113  }
114 
115  if (iter == _maxiter)
116  {
117 #ifdef DEBUG
118  mooseWarning("FiniteStrainCPSlipRateRes: NR exceeds maximum iteration ", iter, " ", rnorm);
119 #endif
120  _err_tol = true;
121  return;
122  }
123 }
bool _use_line_search
Flag to activate line serach.
Real _rtol
Stress residual equation relative tolerance.
void mooseWarning(Args &&... args) const
unsigned int _maxiter
Maximum number of iterations for stress update.
const unsigned int _nss
Number of slip system resistance.
void calcUpdate()
This function calculates and updates the residual of slip rate.
virtual Real calcResidNorm()
This function calculates the residual norm.
virtual void calcResidJacobSlipRate()
This function calculates residual and jacobian of slip rate.
virtual void calcJacobianSlipRate()
This function calculates jacobian of slip rate.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
virtual void calcResidualSlipRate()
This function calculates residual of slip rate.
bool lineSearchUpdateSlipRate(const Real, const DenseVector< Real > &)
This function performs the line search update.
Real _abs_tol
Stress residual equation absolute tolerance.

◆ update_slip_system_resistance()

void FiniteStrainCrystalPlasticity::update_slip_system_resistance ( )
protectedvirtualinherited

This function updates the slip system resistances.

Definition at line 826 of file FiniteStrainCrystalPlasticity.C.

Referenced by calcResidualSlipRate(), and FiniteStrainCrystalPlasticity::solveStatevar().

827 {
828  updateGss();
829 }
virtual void updateGss()
This function updates the slip system resistances.

◆ updateGss()

void FiniteStrainCrystalPlasticity::updateGss ( )
protectedvirtualinherited

This function updates the slip system resistances.

Old function to update slip system resistances.

Kept to avoid code break at computeQpstress

Definition at line 836 of file FiniteStrainCrystalPlasticity.C.

Referenced by FiniteStrainCrystalPlasticity::update_slip_system_resistance().

837 {
838  DenseVector<Real> hb(_nss);
839  Real qab;
840 
841  Real a = _hprops[4]; // Kalidindi
842 
844  for (unsigned int i = 0; i < _nss; ++i)
845  _accslip_tmp += std::abs(_slip_incr(i));
846 
847  // Real val = std::cosh(_h0 * _accslip_tmp / (_tau_sat - _tau_init)); // Karthik
848  // val = _h0 * std::pow(1.0/val,2.0); // Kalidindi
849 
850  for (unsigned int i = 0; i < _nss; ++i)
851  // hb(i)=val;
852  hb(i) = _h0 * std::pow(std::abs(1.0 - _gss_tmp[i] / _tau_sat), a) *
853  std::copysign(1.0, 1.0 - _gss_tmp[i] / _tau_sat);
854 
855  for (unsigned int i = 0; i < _nss; ++i)
856  {
857  if (_max_substep_iter == 1) // No substepping
858  _gss_tmp[i] = _gss_old[_qp][i];
859  else
860  _gss_tmp[i] = _gss_tmp_old[i];
861 
862  for (unsigned int j = 0; j < _nss; ++j)
863  {
864  unsigned int iplane, jplane;
865  iplane = i / 3;
866  jplane = j / 3;
867 
868  if (iplane == jplane) // Kalidindi
869  qab = 1.0;
870  else
871  qab = _r;
872 
873  _gss_tmp[i] += qab * hb(j) * std::abs(_slip_incr(j));
874  _dgss_dsliprate(i, j) = qab * hb(j) * std::copysign(1.0, _slip_incr(j)) * _dt;
875  }
876  }
877 }
const MaterialProperty< std::vector< Real > > & _gss_old
const unsigned int _nss
Number of slip system resistance.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
unsigned int _max_substep_iter
Maximum number of substep iterations.
static const std::complex< double > j(0, 1)
Complex number "j" (also known as "i")
MooseUnits pow(const MooseUnits &, int)

◆ validParams()

InputParameters FiniteStrainCPSlipRateRes::validParams ( )
static

Definition at line 16 of file FiniteStrainCPSlipRateRes.C.

17 {
19  params.addClassDescription("Deprecated class: please use CrystalPlasticityKalidindiUpdate and "
20  "ComputeMultipleCrystalPlasticityStress instead.");
21  return params;
22 }
void addClassDescription(const std::string &doc_string)

Member Data Documentation

◆ _a0

DenseVector<Real> FiniteStrainCrystalPlasticity::_a0
protectedinherited

◆ _abs_tol

Real FiniteStrainCrystalPlasticity::_abs_tol
protectedinherited

Stress residual equation absolute tolerance.

Definition at line 247 of file FiniteStrainCrystalPlasticity.h.

Referenced by solveStress(), and FiniteStrainCrystalPlasticity::solveStress().

◆ _acc_slip

MaterialProperty<Real>& FiniteStrainCrystalPlasticity::_acc_slip
protectedinherited

◆ _acc_slip_old

const MaterialProperty<Real>& FiniteStrainCrystalPlasticity::_acc_slip_old
protectedinherited

◆ _accslip_tmp

Real FiniteStrainCrystalPlasticity::_accslip_tmp
protectedinherited

◆ _accslip_tmp_old

Real FiniteStrainCrystalPlasticity::_accslip_tmp_old
protectedinherited

◆ _base_name

const std::string ComputeGeneralStressBase::_base_name
protectedinherited

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

Definition at line 43 of file ComputeGeneralStressBase.h.

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

◆ _crysrot

const MaterialProperty<RankTwoTensor>& FiniteStrainCrystalPlasticity::_crysrot
protectedinherited

◆ _deformation_gradient

const MaterialProperty<RankTwoTensor>& FiniteStrainCrystalPlasticity::_deformation_gradient
protectedinherited

◆ _deformation_gradient_old

const MaterialProperty<RankTwoTensor>& FiniteStrainCrystalPlasticity::_deformation_gradient_old
protectedinherited

◆ _delta_dfgrd

RankTwoTensor FiniteStrainCrystalPlasticity::_delta_dfgrd
protectedinherited

Flag to check whether convergence is achieved.

Used for substepping; Uniformly divides the increment in deformation gradient

Definition at line 349 of file FiniteStrainCrystalPlasticity.h.

Referenced by FiniteStrainCrystalPlasticity::computeQpStress(), FiniteStrainCrystalPlasticity::FiniteStrainCrystalPlasticity(), and FiniteStrainCrystalPlasticity::preSolveQp().

◆ _dfgrd_scale_factor

Real FiniteStrainCrystalPlasticity::_dfgrd_scale_factor
protectedinherited

Scales the substepping increment to obtain deformation gradient at a substep iteration.

Definition at line 351 of file FiniteStrainCrystalPlasticity.h.

Referenced by FiniteStrainCrystalPlasticity::computeQpStress(), and FiniteStrainCrystalPlasticity::preSolveQp().

◆ _dfgrd_tmp

RankTwoTensor FiniteStrainCrystalPlasticity::_dfgrd_tmp
protectedinherited

◆ _dfgrd_tmp_old

RankTwoTensor FiniteStrainCrystalPlasticity::_dfgrd_tmp_old
protectedinherited

◆ _dgss_dsliprate

DenseMatrix<Real> FiniteStrainCrystalPlasticity::_dgss_dsliprate
protectedinherited

◆ _dslipdtau

DenseVector<Real> FiniteStrainCrystalPlasticity::_dslipdtau
protectedinherited

◆ _dsliprate_dgss

DenseVector<Real> FiniteStrainCPSlipRateRes::_dsliprate_dgss
protected

Definition at line 91 of file FiniteStrainCPSlipRateRes.h.

Referenced by calcDgssDsliprate(), and getSlipIncrements().

◆ _dsliprate_dsliprate

DenseMatrix<Real> FiniteStrainCPSlipRateRes::_dsliprate_dsliprate
protected

◆ _elastic_strain

MaterialProperty<RankTwoTensor>& ComputeGeneralStressBase::_elastic_strain
protectedinherited

◆ _elasticity_tensor

const MaterialProperty<RankFourTensor>& FiniteStrainCrystalPlasticity::_elasticity_tensor
protectedinherited

◆ _elasticity_tensor_name

const std::string FiniteStrainCrystalPlasticity::_elasticity_tensor_name
protectedinherited

Name of the elasticity tensor material property.

Definition at line 314 of file FiniteStrainCrystalPlasticity.h.

◆ _err_tol

bool FiniteStrainCrystalPlasticity::_err_tol
protectedinherited

◆ _extra_stress

const MaterialProperty<RankTwoTensor>& ComputeGeneralStressBase::_extra_stress
protectedinherited

Extra stress tensor.

Definition at line 53 of file ComputeGeneralStressBase.h.

Referenced by ComputeGeneralStressBase::computeQpProperties().

◆ _fe

RankTwoTensor FiniteStrainCrystalPlasticity::_fe
protectedinherited

◆ _first_step_iter

bool FiniteStrainCrystalPlasticity::_first_step_iter
protectedinherited

◆ _first_substep

bool FiniteStrainCrystalPlasticity::_first_substep
protectedinherited

◆ _flowprops

std::vector<Real> FiniteStrainCrystalPlasticity::_flowprops
protectedinherited

◆ _fp

MaterialProperty<RankTwoTensor>& FiniteStrainCrystalPlasticity::_fp
protectedinherited

◆ _fp_inv

RankTwoTensor FiniteStrainCrystalPlasticity::_fp_inv
protectedinherited

◆ _fp_old

const MaterialProperty<RankTwoTensor>& FiniteStrainCrystalPlasticity::_fp_old
protectedinherited

◆ _fp_old_inv

RankTwoTensor FiniteStrainCrystalPlasticity::_fp_old_inv
protectedinherited

◆ _fp_prev_inv

RankTwoTensor FiniteStrainCrystalPlasticity::_fp_prev_inv
protectedinherited

◆ _gen_rndm_stress_flag

bool FiniteStrainCrystalPlasticity::_gen_rndm_stress_flag
protectedinherited

◆ _gprops

std::vector<Real> FiniteStrainCrystalPlasticity::_gprops
protectedinherited

◆ _gss

MaterialProperty<std::vector<Real> >& FiniteStrainCrystalPlasticity::_gss
protectedinherited

◆ _gss_old

const MaterialProperty<std::vector<Real> >& FiniteStrainCrystalPlasticity::_gss_old
protectedinherited

◆ _gss_tmp

std::vector<Real> FiniteStrainCrystalPlasticity::_gss_tmp
protectedinherited

◆ _gss_tmp_old

std::vector<Real> FiniteStrainCrystalPlasticity::_gss_tmp_old
protectedinherited

◆ _gtol

Real FiniteStrainCrystalPlasticity::_gtol
protectedinherited

Internal variable update equation tolerance.

Definition at line 249 of file FiniteStrainCrystalPlasticity.h.

Referenced by FiniteStrainCrystalPlasticity::solveStatevar().

◆ _h0

Real FiniteStrainCrystalPlasticity::_h0
protectedinherited

◆ _hprops

std::vector<Real> FiniteStrainCrystalPlasticity::_hprops
protectedinherited

◆ _initial_stress_fcn

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

initial stress components

Definition at line 56 of file ComputeGeneralStressBase.h.

◆ _input_rndm_scale_var

bool FiniteStrainCrystalPlasticity::_input_rndm_scale_var
protectedinherited

Input option for scaling variable to generate random stress when convergence fails.

Definition at line 273 of file FiniteStrainCrystalPlasticity.h.

Referenced by FiniteStrainCrystalPlasticity::postSolveQp().

◆ _intvar_read_type

MooseEnum FiniteStrainCrystalPlasticity::_intvar_read_type
protectedinherited

Read from options for initial values of internal variables.

Definition at line 265 of file FiniteStrainCrystalPlasticity.h.

Referenced by FiniteStrainCrystalPlasticity::FiniteStrainCrystalPlasticity(), and FiniteStrainCrystalPlasticity::initSlipSysProps().

◆ _jacob

DenseMatrix<Real> FiniteStrainCPSlipRateRes::_jacob
protected

Definition at line 92 of file FiniteStrainCPSlipRateRes.h.

Referenced by calcJacobianSlipRate(), and calcUpdate().

◆ _Jacobian_mult

MaterialProperty<RankFourTensor>& ComputeGeneralStressBase::_Jacobian_mult
protectedinherited

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

Definition at line 59 of file ComputeGeneralStressBase.h.

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

◆ _lag_e

MaterialProperty<RankTwoTensor>& FiniteStrainCrystalPlasticity::_lag_e
protectedinherited

◆ _lag_e_old

const MaterialProperty<RankTwoTensor>& FiniteStrainCrystalPlasticity::_lag_e_old
protectedinherited

Definition at line 304 of file FiniteStrainCrystalPlasticity.h.

◆ _last_step_iter

bool FiniteStrainCrystalPlasticity::_last_step_iter
protectedinherited

◆ _lsrch_max_iter

unsigned int FiniteStrainCrystalPlasticity::_lsrch_max_iter
protectedinherited

Line search bisection method maximum iteration number.

Definition at line 294 of file FiniteStrainCrystalPlasticity.h.

Referenced by FiniteStrainCrystalPlasticity::line_search_update(), and lineSearchUpdateSlipRate().

◆ _lsrch_method

MooseEnum FiniteStrainCrystalPlasticity::_lsrch_method
protectedinherited

◆ _lsrch_tol

Real FiniteStrainCrystalPlasticity::_lsrch_tol
protectedinherited

Line search bisection method tolerance.

Definition at line 291 of file FiniteStrainCrystalPlasticity.h.

Referenced by FiniteStrainCrystalPlasticity::line_search_update(), and lineSearchUpdateSlipRate().

◆ _max_substep_iter

unsigned int FiniteStrainCrystalPlasticity::_max_substep_iter
protectedinherited

◆ _maxiter

unsigned int FiniteStrainCrystalPlasticity::_maxiter
protectedinherited

Maximum number of iterations for stress update.

Definition at line 254 of file FiniteStrainCrystalPlasticity.h.

Referenced by solveStress(), and FiniteStrainCrystalPlasticity::solveStress().

◆ _maxiterg

unsigned int FiniteStrainCrystalPlasticity::_maxiterg
protectedinherited

Maximum number of iterations for internal variable update.

Definition at line 256 of file FiniteStrainCrystalPlasticity.h.

Referenced by FiniteStrainCrystalPlasticity::solveStatevar().

◆ _mechanical_strain

const MaterialProperty<RankTwoTensor>& ComputeGeneralStressBase::_mechanical_strain
protectedinherited

◆ _min_lsrch_step

Real FiniteStrainCrystalPlasticity::_min_lsrch_step
protectedinherited

Minimum line search step size.

Definition at line 288 of file FiniteStrainCrystalPlasticity.h.

Referenced by FiniteStrainCrystalPlasticity::line_search_update(), and lineSearchUpdateSlipRate().

◆ _mo

DenseVector<Real> FiniteStrainCrystalPlasticity::_mo
protectedinherited

◆ _no

DenseVector<Real> FiniteStrainCrystalPlasticity::_no
protectedinherited

◆ _nss

const unsigned int FiniteStrainCrystalPlasticity::_nss
protectedinherited

◆ _num_slip_sys_flowrate_props

unsigned int FiniteStrainCrystalPlasticity::_num_slip_sys_flowrate_props
protectedinherited

Number of slip system flow rate parameters.

Definition at line 259 of file FiniteStrainCrystalPlasticity.h.

Referenced by FiniteStrainCrystalPlasticity::getFlowRateParams(), and FiniteStrainCrystalPlasticity::readFileFlowRateParams().

◆ _num_slip_sys_props

unsigned int FiniteStrainCrystalPlasticity::_num_slip_sys_props
protectedinherited

Number of slip system specific properties provided in the file containing slip system normals and directions.

Definition at line 268 of file FiniteStrainCrystalPlasticity.h.

Referenced by FiniteStrainCrystalPlasticity::FiniteStrainCrystalPlasticity(), and FiniteStrainCrystalPlasticity::getSlipSystems().

◆ _pk2

MaterialProperty<RankTwoTensor>& FiniteStrainCrystalPlasticity::_pk2
protectedinherited

◆ _pk2_old

const MaterialProperty<RankTwoTensor>& FiniteStrainCrystalPlasticity::_pk2_old
protectedinherited

◆ _pk2_tmp

RankTwoTensor FiniteStrainCrystalPlasticity::_pk2_tmp
protectedinherited

◆ _pk2_tmp_old

RankTwoTensor FiniteStrainCrystalPlasticity::_pk2_tmp_old
protectedinherited

◆ _r

Real FiniteStrainCrystalPlasticity::_r
protectedinherited

◆ _read_from_slip_sys_file

bool FiniteStrainCrystalPlasticity::_read_from_slip_sys_file
protectedinherited

◆ _resid

DenseVector<Real> FiniteStrainCPSlipRateRes::_resid
protected

◆ _rndm_scale_var

Real FiniteStrainCrystalPlasticity::_rndm_scale_var
protectedinherited

Scaling value.

Definition at line 276 of file FiniteStrainCrystalPlasticity.h.

Referenced by FiniteStrainCrystalPlasticity::postSolveQp().

◆ _rndm_seed

unsigned int FiniteStrainCrystalPlasticity::_rndm_seed
protectedinherited

◆ _rtol

Real FiniteStrainCrystalPlasticity::_rtol
protectedinherited

Stress residual equation relative tolerance.

Definition at line 245 of file FiniteStrainCrystalPlasticity.h.

Referenced by solveStress(), and FiniteStrainCrystalPlasticity::solveStress().

◆ _s0

std::vector<RankTwoTensor> FiniteStrainCrystalPlasticity::_s0
protectedinherited

◆ _slip_incr

DenseVector<Real> FiniteStrainCrystalPlasticity::_slip_incr
protectedinherited

◆ _slip_incr_tol

Real FiniteStrainCrystalPlasticity::_slip_incr_tol
protectedinherited

Slip increment tolerance.

Definition at line 251 of file FiniteStrainCrystalPlasticity.h.

Referenced by FiniteStrainCrystalPlasticity::getSlipIncrements().

◆ _slip_rate

DenseVector<Real> FiniteStrainCPSlipRateRes::_slip_rate
protected

◆ _slip_sys_file_name

std::string FiniteStrainCrystalPlasticity::_slip_sys_file_name
protectedinherited

File should contain slip plane normal and direction. See test.

Definition at line 230 of file FiniteStrainCrystalPlasticity.h.

Referenced by FiniteStrainCrystalPlasticity::getSlipSystems().

◆ _slip_sys_flow_prop_file_name

std::string FiniteStrainCrystalPlasticity::_slip_sys_flow_prop_file_name
protectedinherited

File should contain values of the flow rate equation parameters.

Values for every slip system must be provided. Should have the same order of slip systens as in slip_sys_file. See test. The option of reading all the properties from .i is still present.

Definition at line 239 of file FiniteStrainCrystalPlasticity.h.

Referenced by FiniteStrainCrystalPlasticity::initSlipSysProps(), and FiniteStrainCrystalPlasticity::readFileFlowRateParams().

◆ _slip_sys_hard_prop_file_name

std::string FiniteStrainCrystalPlasticity::_slip_sys_hard_prop_file_name
protectedinherited

The hardening parameters in this class are read from .i file. The user can override to read from file.

Definition at line 242 of file FiniteStrainCrystalPlasticity.h.

Referenced by FiniteStrainCrystalPlasticity::initSlipSysProps().

◆ _slip_sys_props

DenseVector<Real> FiniteStrainCrystalPlasticity::_slip_sys_props
protectedinherited

◆ _slip_sys_res_prop_file_name

std::string FiniteStrainCrystalPlasticity::_slip_sys_res_prop_file_name
protectedinherited

File should contain initial values of the slip system resistances.

Definition at line 233 of file FiniteStrainCrystalPlasticity.h.

Referenced by FiniteStrainCrystalPlasticity::readFileInitSlipSysRes().

◆ _stress

MaterialProperty<RankTwoTensor>& ComputeGeneralStressBase::_stress
protectedinherited

Stress material property.

Definition at line 48 of file ComputeGeneralStressBase.h.

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

◆ _tan_mod_type

MooseEnum FiniteStrainCrystalPlasticity::_tan_mod_type
protectedinherited

Type of tangent moduli calculation.

Definition at line 262 of file FiniteStrainCrystalPlasticity.h.

Referenced by FiniteStrainCrystalPlasticity::calcTangentModuli().

◆ _tau

DenseVector<Real> FiniteStrainCrystalPlasticity::_tau
protectedinherited

◆ _tau_init

Real FiniteStrainCrystalPlasticity::_tau_init
protectedinherited

◆ _tau_sat

Real FiniteStrainCrystalPlasticity::_tau_sat
protectedinherited

◆ _update_rot

MaterialProperty<RankTwoTensor>& FiniteStrainCrystalPlasticity::_update_rot
protectedinherited

◆ _use_line_search

bool FiniteStrainCrystalPlasticity::_use_line_search
protectedinherited

Flag to activate line serach.

Definition at line 285 of file FiniteStrainCrystalPlasticity.h.

Referenced by solveStress(), and FiniteStrainCrystalPlasticity::solveStress().

◆ _xm

DenseVector<Real> FiniteStrainCrystalPlasticity::_xm
protectedinherited

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