https://mooseframework.inl.gov
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Protected Types | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Static Protected Attributes | Private Types | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
InteractionIntegralTempl< is_ad > Class Template Reference

This vectorpostprocessor computes the Interaction Integral, which is used to compute various fracture mechanics parameters at a crack tip, including KI, KII, KIII, and the T stress. More...

#include <InteractionIntegral.h>

Inheritance diagram for InteractionIntegralTempl< is_ad >:
[legend]

Public Types

typedef DataFileName DataFileParameterType
 

Public Member Functions

 InteractionIntegralTempl (const InputParameters &parameters)
 
virtual void initialSetup () override
 
virtual void initialize () override
 
virtual void execute () override
 
virtual void finalize () override
 
virtual void threadJoin (const UserObject &y) override
 
virtual Real spatialValue (const Point &) const
 
virtual const std::vector< Point > spatialPoints () const
 
void setPrimaryThreadCopy (UserObject *primary)
 
UserObjectprimaryThreadCopy ()
 
SubProblemgetSubProblem () const
 
bool shouldDuplicateInitialExecution () const
 
void gatherSum (T &value)
 
void gatherMax (T &value)
 
void gatherMin (T &value)
 
void gatherProxyValueMax (T1 &proxy, T2 &value)
 
void gatherProxyValueMin (T1 &proxy, T2 &value)
 
std::set< UserObjectName > getDependObjects () const
 
const std::set< std::string > & getRequestedItems () override
 
const std::set< std::string > & getSuppliedItems () override
 
unsigned int systemNumber () const
 
virtual bool needThreadedCopy () const
 
virtual bool enabled () const
 
std::shared_ptr< MooseObjectgetSharedPtr ()
 
std::shared_ptr< const MooseObjectgetSharedPtr () const
 
bool isKokkosObject () const
 
MooseAppgetMooseApp () const
 
const std::string & type () const
 
const std::string & name () const
 
std::string typeAndName () const
 
MooseObjectParameterName uniqueParameterName (const std::string &parameter_name) const
 
MooseObjectName uniqueName () const
 
const InputParametersparameters () const
 
const hit::Node * getHitNode () const
 
bool hasBase () const
 
const std::string & getBase () const
 
const TgetParam (const std::string &name) const
 
std::vector< std::pair< T1, T2 > > getParam (const std::string &param1, const std::string &param2) const
 
const TqueryParam (const std::string &name) const
 
const TgetRenamedParam (const std::string &old_name, const std::string &new_name) const
 
T getCheckedPointerParam (const std::string &name, const std::string &error_string="") const
 
bool isParamValid (const std::string &name) const
 
bool isParamSetByUser (const std::string &name) const
 
void connectControllableParams (const std::string &parameter, const std::string &object_type, const std::string &object_name, const std::string &object_parameter) const
 
void paramError (const std::string &param, Args... args) const
 
void paramWarning (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
 
std::string messagePrefix (const bool hit_prefix=true) const
 
std::string errorPrefix (const std::string &) const
 
void mooseError (Args &&... args) const
 
void mooseDocumentedError (const std::string &repo_name, const unsigned int issue_num, Args &&... args) const
 
void mooseErrorNonPrefixed (Args &&... args) const
 
void mooseWarning (Args &&... args) const
 
void mooseWarning (Args &&... args) const
 
void mooseWarningNonPrefixed (Args &&... args) const
 
void mooseWarningNonPrefixed (Args &&... args) const
 
void mooseDeprecated (Args &&... args) const
 
void mooseDeprecated (Args &&... args) const
 
void mooseDeprecatedNoTrace (Args &&... args) const
 
void mooseInfo (Args &&... args) const
 
void callMooseError (std::string msg, const bool with_prefix, const hit::Node *node=nullptr, const bool show_trace=true) 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
 
virtual void timestepSetup ()
 
virtual void jacobianSetup ()
 
virtual void residualSetup ()
 
virtual void subdomainSetup ()
 
virtual void customSetup (const ExecFlagType &)
 
const ExecFlagEnumgetExecuteOnEnum () const
 
UserObjectName getUserObjectName (const std::string &param_name) const
 
const TgetUserObject (const std::string &param_name, bool is_dependency=true) const
 
const TgetUserObjectByName (const UserObjectName &object_name, bool is_dependency=true) const
 
const UserObjectBasegetUserObjectBase (const std::string &param_name, bool is_dependency=true) const
 
const UserObjectBasegetUserObjectBaseByName (const UserObjectName &object_name, bool is_dependency=true) 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
 
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 MaterialPropertyName &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 MaterialPropertyName &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 MaterialPropertyName &name)
 
const ADMaterialProperty< T > & getADMaterialPropertyByName (const MaterialPropertyName &name)
 
const MaterialProperty< T > & getMaterialPropertyOldByName (const MaterialPropertyName &name, MaterialData &material_data)
 
const MaterialProperty< T > & getMaterialPropertyOldByName (const MaterialPropertyName &name)
 
const MaterialProperty< T > & getMaterialPropertyOldByName (const MaterialPropertyName &name)
 
const MaterialProperty< T > & getMaterialPropertyOlderByName (const MaterialPropertyName &name, MaterialData &material_data)
 
const MaterialProperty< T > & getMaterialPropertyOlderByName (const MaterialPropertyName &name)
 
const MaterialProperty< T > & getMaterialPropertyOlderByName (const MaterialPropertyName &name)
 
Moose::Kokkos::MaterialProperty< T, dimension > getKokkosMaterialPropertyByName (const std::string &prop_name_in)
 
Moose::Kokkos::MaterialProperty< T, dimension > getKokkosMaterialPropertyOldByName (const std::string &prop_name)
 
Moose::Kokkos::MaterialProperty< T, dimension > getKokkosMaterialPropertyOlderByName (const std::string &prop_name)
 
Moose::Kokkos::MaterialProperty< T, dimension > getKokkosMaterialProperty (const std::string &name)
 
Moose::Kokkos::MaterialProperty< T, dimension > getKokkosMaterialPropertyOld (const std::string &name)
 
Moose::Kokkos::MaterialProperty< T, dimension > getKokkosMaterialPropertyOlder (const std::string &name)
 
std::pair< const MaterialProperty< T > *, std::set< SubdomainID > > getBlockMaterialProperty (const MaterialPropertyName &name)
 
std::pair< Moose::Kokkos::MaterialProperty< T, dimension >, std::set< SubdomainID > > getKokkosBlockMaterialProperty (const MaterialPropertyName &name)
 
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 MaterialProperty< T > & getZeroMaterialProperty (Ts... args)
 
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)
 
std::unordered_map< SubdomainID, std::vector< MaterialBase * > > buildRequiredMaterials (bool allow_stateful=true)
 
void statefulPropertiesAllowed (bool)
 
virtual bool getMaterialPropertyCalled () const
 
virtual const std::unordered_set< unsigned int > & getMatPropDependencies () const
 
virtual void resolveOptionalProperties ()
 
const GenericMaterialProperty< T, is_ad > & getPossiblyConstantGenericMaterialPropertyByName (const MaterialPropertyName &prop_name, MaterialData &material_data, const unsigned int state)
 
virtual const VariableValuecoupledValueByName (const std::string &var_name)
 
virtual const ArrayVariableValuecoupledArrayValueByName (const std::string &var_name)
 
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 ADVariableValuegetADDefaultValue (const std::string &var_name) const
 
const ADVectorVariableValuegetADDefaultVectorValue (const std::string &var_name) const
 
const ADVariableGradientgetADDefaultGradient () const
 
const ADVectorVariableGradientgetADDefaultVectorGradient () const
 
const ADVariableSecondgetADDefaultSecond () const
 
const ADVectorVariableCurlgetADDefaultCurl () const
 
Moose::Kokkos::VariableValue kokkosCoupledVectorTagValueByName (const std::string &var_name, const std::string &tag_name, unsigned int comp=0) const
 
Moose::Kokkos::VariableValue kokkosCoupledVectorTagValuesByName (const std::string &var_name, const std::string &tag_name) const
 
Moose::Kokkos::VariableGradient kokkosCoupledVectorTagGradientByName (const std::string &var_name, const std::string &tag_name, unsigned int comp=0) const
 
Moose::Kokkos::VariableGradient kokkosCoupledVectorTagGradientsByName (const std::string &var_name, const std::string &tag_name) const
 
Moose::Kokkos::VariableValue kokkosCoupledVectorTagNodalValueByName (const std::string &var_name, const std::string &tag_name, unsigned int comp=0) const
 
Moose::Kokkos::VariableValue kokkosCoupledVectorTagNodalValuesByName (const std::string &var_name, const std::string &tag_name) const
 
Moose::Kokkos::VariableValue kokkosCoupledVectorTagDofValueByName (const std::string &var_name, const std::string &tag_name, unsigned int comp=0) const
 
Moose::Kokkos::VariableValue kokkosCoupledVectorTagDofValuesByName (const std::string &var_name, const std::string &tag_name) const
 
Moose::Kokkos::VariableValue kokkosCoupledVectorTagValue (const std::string &var_name, const std::string &tag_param_name, unsigned int comp=0) const
 
Moose::Kokkos::VariableValue kokkosCoupledVectorTagValues (const std::string &var_name, const std::string &tag_param_name) const
 
Moose::Kokkos::VariableGradient kokkosCoupledVectorTagGradient (const std::string &var_name, const std::string &tag_param_name, unsigned int comp=0) const
 
Moose::Kokkos::VariableGradient kokkosCoupledVectorTagGradients (const std::string &var_name, const std::string &tag_param_name) const
 
Moose::Kokkos::VariableValue kokkosCoupledVectorTagNodalValue (const std::string &var_name, const std::string &tag_param_name, unsigned int comp=0) const
 
Moose::Kokkos::VariableValue kokkosCoupledVectorTagNodalValues (const std::string &var_name, const std::string &tag_param_name) const
 
Moose::Kokkos::VariableValue kokkosCoupledVectorTagDofValue (const std::string &var_name, const std::string &tag_param_name, unsigned int comp=0) const
 
Moose::Kokkos::VariableValue kokkosCoupledVectorTagDofValues (const std::string &var_name, const std::string &tag_param_name) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorTagVectorValueByName (const std::string &var_name, const std::string &tag_name, unsigned int comp=0) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorTagVectorValuesByName (const std::string &var_name, const std::string &tag_name) const
 
Moose::Kokkos::VectorVariableGradient kokkosCoupledVectorTagVectorGradientByName (const std::string &var_name, const std::string &tag_name, unsigned int comp=0) const
 
Moose::Kokkos::VectorVariableGradient kokkosCoupledVectorTagVectorGradientsByName (const std::string &var_name, const std::string &tag_name) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorTagVectorNodalValueByName (const std::string &var_name, const std::string &tag_name, unsigned int comp=0) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorTagVectorNodalValuesByName (const std::string &var_name, const std::string &tag_name) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorTagVectorDofValueByName (const std::string &var_name, const std::string &tag_name, unsigned int comp=0) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorTagVectorDofValuesByName (const std::string &var_name, const std::string &tag_name) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorTagVectorValue (const std::string &var_name, const std::string &tag_param_name, unsigned int comp=0) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorTagVectorValues (const std::string &var_name, const std::string &tag_param_name) const
 
Moose::Kokkos::VectorVariableGradient kokkosCoupledVectorTagVectorGradient (const std::string &var_name, const std::string &tag_param_name, unsigned int comp=0) const
 
Moose::Kokkos::VectorVariableGradient kokkosCoupledVectorTagVectorGradients (const std::string &var_name, const std::string &tag_param_name) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorTagVectorNodalValue (const std::string &var_name, const std::string &tag_param_name, unsigned int comp=0) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorTagVectorNodalValues (const std::string &var_name, const std::string &tag_param_name) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorTagVectorDofValue (const std::string &var_name, const std::string &tag_param_name, unsigned int comp=0) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorTagVectorDofValues (const std::string &var_name, const std::string &tag_param_name) const
 
Moose::Kokkos::VariableValue kokkosCoupledValue (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VariableValue kokkosCoupledValues (const std::string &var_name) const
 
Moose::Kokkos::VariableGradient kokkosCoupledGradient (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VariableGradient kokkosCoupledGradients (const std::string &var_name) const
 
Moose::Kokkos::VariableValue kokkosCoupledNodalValue (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VariableValue kokkosCoupledNodalValues (const std::string &var_name) const
 
Moose::Kokkos::VariableValue kokkosCoupledDofValue (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VariableValue kokkosCoupledDofValues (const std::string &var_name) const
 
Moose::Kokkos::VariableValue kokkosCoupledValueOld (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VariableValue kokkosCoupledValuesOld (const std::string &var_name) const
 
Moose::Kokkos::VariableGradient kokkosCoupledGradientOld (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VariableGradient kokkosCoupledGradientsOld (const std::string &var_name) const
 
Moose::Kokkos::VariableValue kokkosCoupledNodalValueOld (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VariableValue kokkosCoupledNodalValuesOld (const std::string &var_name) const
 
Moose::Kokkos::VariableValue kokkosCoupledDofValueOld (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VariableValue kokkosCoupledDofValuesOld (const std::string &var_name) const
 
Moose::Kokkos::VariableValue kokkosCoupledValueOlder (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VariableValue kokkosCoupledValuesOlder (const std::string &var_name) const
 
Moose::Kokkos::VariableGradient kokkosCoupledGradientOlder (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VariableGradient kokkosCoupledGradientsOlder (const std::string &var_name) const
 
Moose::Kokkos::VariableValue kokkosCoupledNodalValueOlder (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VariableValue kokkosCoupledNodalValuesOlder (const std::string &var_name) const
 
Moose::Kokkos::VariableValue kokkosCoupledDofValueOlder (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VariableValue kokkosCoupledDofValuesOlder (const std::string &var_name) const
 
Moose::Kokkos::VariableValue kokkosCoupledDot (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VariableValue kokkosCoupledDots (const std::string &var_name) const
 
Moose::Kokkos::VariableValue kokkosCoupledNodalDot (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VariableValue kokkosCoupledNodalDots (const std::string &var_name) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorValue (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VectorVariableGradient kokkosCoupledVectorGradient (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorNodalValue (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorDofValue (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorValues (const std::string &var_name) const
 
Moose::Kokkos::VectorVariableGradient kokkosCoupledVectorGradients (const std::string &var_name) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorNodalValues (const std::string &var_name) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorDofValues (const std::string &var_name) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorValueOld (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VectorVariableGradient kokkosCoupledVectorGradientOld (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorNodalValueOld (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorDofValueOld (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorValuesOld (const std::string &var_name) const
 
Moose::Kokkos::VectorVariableGradient kokkosCoupledVectorGradientsOld (const std::string &var_name) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorNodalValuesOld (const std::string &var_name) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorDofValuesOld (const std::string &var_name) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorValueOlder (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VectorVariableGradient kokkosCoupledVectorGradientOlder (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorNodalValueOlder (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorDofValueOlder (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorValuesOlder (const std::string &var_name) const
 
Moose::Kokkos::VectorVariableGradient kokkosCoupledVectorGradientsOlder (const std::string &var_name) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorNodalValuesOlder (const std::string &var_name) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorDofValuesOlder (const std::string &var_name) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorDot (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorNodalDot (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorDots (const std::string &var_name) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorNodalDots (const std::string &var_name) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledVectorTagValueByName (const std::string &var_name, const std::string &tag_name, unsigned int comp=0) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledVectorTagValuesByName (const std::string &var_name, const std::string &tag_name) const
 
Moose::Kokkos::ADVariableGradient kokkosADCoupledVectorTagGradientByName (const std::string &var_name, const std::string &tag_name, unsigned int comp=0) const
 
Moose::Kokkos::ADVariableGradient kokkosADCoupledVectorTagGradientsByName (const std::string &var_name, const std::string &tag_name) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledVectorTagNodalValueByName (const std::string &var_name, const std::string &tag_name, unsigned int comp=0) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledVectorTagNodalValuesByName (const std::string &var_name, const std::string &tag_name) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledVectorTagDofValueByName (const std::string &var_name, const std::string &tag_name, unsigned int comp=0) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledVectorTagDofValuesByName (const std::string &var_name, const std::string &tag_name) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledVectorTagValue (const std::string &var_name, const std::string &tag_param_name, unsigned int comp=0) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledVectorTagValues (const std::string &var_name, const std::string &tag_param_name) const
 
Moose::Kokkos::ADVariableGradient kokkosADCoupledVectorTagGradient (const std::string &var_name, const std::string &tag_param_name, unsigned int comp=0) const
 
Moose::Kokkos::ADVariableGradient kokkosADCoupledVectorTagGradients (const std::string &var_name, const std::string &tag_param_name) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledVectorTagNodalValue (const std::string &var_name, const std::string &tag_param_name, unsigned int comp=0) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledVectorTagNodalValues (const std::string &var_name, const std::string &tag_param_name) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledVectorTagDofValue (const std::string &var_name, const std::string &tag_param_name, unsigned int comp=0) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledVectorTagDofValues (const std::string &var_name, const std::string &tag_param_name) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledValue (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledValues (const std::string &var_name) const
 
Moose::Kokkos::ADVariableGradient kokkosADCoupledGradient (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::ADVariableGradient kokkosADCoupledGradients (const std::string &var_name) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledNodalValue (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledNodalValues (const std::string &var_name) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledDofValue (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledDofValues (const std::string &var_name) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledValueOld (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledValuesOld (const std::string &var_name) const
 
Moose::Kokkos::ADVariableGradient kokkosADCoupledGradientOld (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::ADVariableGradient kokkosADCoupledGradientsOld (const std::string &var_name) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledNodalValueOld (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledNodalValuesOld (const std::string &var_name) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledDofValueOld (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledDofValuesOld (const std::string &var_name) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledValueOlder (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledValuesOlder (const std::string &var_name) const
 
Moose::Kokkos::ADVariableGradient kokkosADCoupledGradientOlder (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::ADVariableGradient kokkosADCoupledGradientsOlder (const std::string &var_name) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledNodalValueOlder (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledNodalValuesOlder (const std::string &var_name) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledDofValueOlder (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledDofValuesOlder (const std::string &var_name) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledDot (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledDots (const std::string &var_name) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledNodalDot (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledNodalDots (const std::string &var_name) const
 
Moose::Kokkos::Scalar< const Real > kokkosCoupledDotDu (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VariableValue kokkosZeroValue () const
 
Moose::Kokkos::VariableGradient kokkosZeroGradient () const
 
Moose::Kokkos::VariableValue kokkosZeroNodalValue () const
 
const std::vector< MooseVariableScalar * > & getCoupledMooseScalarVars ()
 
const std::set< TagID > & getScalarVariableCoupleableVectorTags () const
 
const std::set< TagID > & getScalarVariableCoupleableMatrixTags () const
 
const std::set< MooseVariableFieldBase * > & getMooseVariableDependencies () const
 
std::set< MooseVariableFieldBase * > checkAllVariables (const DofObjectType &dof_object, const std::set< MooseVariableFieldBase * > &vars_to_omit={})
 
virtual std::set< MooseVariableFieldBase * > checkVariables (const libMesh::Node &node, const std::set< MooseVariableFieldBase * > &vars_to_check)
 
std::set< MooseVariableFieldBase * > checkVariables (const libMesh::Elem &element, const std::set< MooseVariableFieldBase * > &vars_to_check)
 
void addMooseVariableDependency (MooseVariableFieldBase *var)
 
void addMooseVariableDependency (const std::vector< MooseVariableFieldBase * > &vars)
 
bool isImplicit ()
 
Moose::StateArg determineState () const
 
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
 
virtual const dof_id_type & getElementID (const std::string &id_parameter_name, unsigned int comp=0) const
 
dof_id_type getElementID (const Elem *elem, unsigned int elem_id_index) const
 
virtual const dof_id_type & getElementIDNeighbor (const std::string &id_parameter_name, unsigned int comp=0) const
 
virtual const dof_id_type & getElementIDByName (const std::string &id_name) const
 
virtual const dof_id_type & getElementIDNeighborByName (const std::string &id_name) const
 
bool hasElementID (const std::string &id_name) const
 
dof_id_type maxElementID (unsigned int elem_id_index) const
 
dof_id_type minElementID (unsigned int elem_id_index) const
 
bool areElemIDsIdentical (const std::string &id_name1, const std::string &id_name2) const
 
std::unordered_map< dof_id_type, std::set< dof_id_type > > getElemIDMapping (const std::string &id_name1, const std::string &id_name2) const
 
std::set< dof_id_type > getAllElemIDs (unsigned int elem_id_index) const
 
std::set< dof_id_type > getElemIDsOnBlocks (unsigned int elem_id_index, const std::set< SubdomainID > &blks) const
 
std::string PPName () const
 
bool containsCompleteHistory () const
 
bool isDistributed () const
 
const std::set< std::string > & getVectorNames () const
 
void buildOutputHideVariableList (std::set< std::string > variable_names)
 
const std::set< OutputName > & getOutputs ()
 
const Moose::Functor< Real > * defaultFunctor (const std::string &name)
 
const Moose::Functor< ADReal > * defaultFunctor (const std::string &name)
 
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 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)
 
MaterialBasegetMaterial (const std::string &name)
 
MaterialBasegetMaterial (const std::string &name)
 
MaterialBasegetMaterialByName (const std::string &name, bool no_warn=false)
 
MaterialBasegetMaterialByName (const std::string &name, bool no_warn=false)
 
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 hasKokkosMaterialProperty (const std::string &name)
 
bool hasKokkosMaterialProperty (const std::string &name)
 
bool hasKokkosMaterialPropertyByName (const std::string &name)
 
bool hasKokkosMaterialPropertyByName (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 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
 
Moose::Kokkos::Function getKokkosFunction (const std::string &name) const
 
const TgetKokkosFunction (const std::string &name) const
 
Moose::Kokkos::Function getKokkosFunctionByName (const FunctionName &name) const
 
const TgetKokkosFunctionByName (const FunctionName &name) const
 
bool hasKokkosFunction (const std::string &param_name) const
 
bool hasKokkosFunctionByName (const FunctionName &name) 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
 
TgetSampler (const std::string &name)
 
SamplergetSampler (const std::string &name)
 
TgetSamplerByName (const SamplerName &name)
 
SamplergetSamplerByName (const SamplerName &name)
 
virtual void meshChanged ()
 
virtual void meshDisplaced ()
 
PerfGraphperfGraph ()
 
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
 
const DistributiongetDistribution (const std::string &name) const
 
const TgetDistribution (const std::string &name) const
 
const DistributiongetDistribution (const std::string &name) const
 
const TgetDistribution (const std::string &name) const
 
const DistributiongetDistributionByName (const DistributionName &name) const
 
const TgetDistributionByName (const std::string &name) const
 
const DistributiongetDistributionByName (const DistributionName &name) const
 
const TgetDistributionByName (const std::string &name) 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 MooseEnum qFunctionType ()
 Get the MooseEnum defining the options for how the q function is defined.
 
static MooseEnum sifModeType ()
 Get the MooseEnum defining the options for the integral to be computed.
 
static void callMooseError (MooseApp *const app, const InputParameters &params, std::string msg, const bool with_prefix, const hit::Node *node, const bool show_trace=true)
 
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, NameFunc &&name_func)
 
static void cyclicDependencyError (CyclicDependencyException< T2 > &e, const std::string &header)
 
static std::string deduceFunctorName (const std::string &name, const InputParameters &params)
 

Public Attributes

 usingCombinedWarningSolutionWarnings
 
const ConsoleStream _console
 

Static Public Attributes

static const std::string type_param
 
static const std::string name_param
 
static const std::string unique_name_param
 
static const std::string app_param
 
static const std::string moose_base_param
 
static const std::string kokkos_object_param
 
static constexpr PropertyValue::id_type default_property_id
 
static constexpr PropertyValue::id_type zero_property_id
 
static constexpr auto SYSTEM
 
static constexpr auto NAME
 

Protected Types

enum class  QMethod { Geometry , Topology }
 Enum used to select the method used to compute the q function used in the fracture integrals. More...
 
enum class  PositionType { Angle , Distance }
 Enum used to define how the distance along the crack front is measured (angle or distance) More...
 
enum class  SifMethod { KI , KII , KIII , T }
 Enum used to select the type of integral to be performed. More...
 

Protected Member Functions

Real computeQpIntegral (const std::size_t crack_front_point_index, const Real scalar_q, const RealVectorValue &grad_of_scalar_q)
 Compute the contribution of a specific quadrature point to a fracture integral for a point on the crack front.
 
void computeAuxFields (RankTwoTensor &aux_stress, RankTwoTensor &grad_disp, RankTwoTensor &aux_strain, RankTwoTensor &aux_disp)
 Compute the auxiliary fields, including the auxiliary stress and the gradient of the auxiliary displacement for the current point (as defined by the combination of _r and _theta)
 
void computeTFields (RankTwoTensor &aux_stress, RankTwoTensor &grad_disp)
 Compute the auxiliary fields, including the auxiliary stress and the gradient of the auxiliary displacement for the current point (as defined by the combination of _r and _theta) for the T stress.
 
std::string deduceFunctorName (const std::string &name) const
 
virtual void addPostprocessorDependencyHelper (const PostprocessorName &name) const override
 
virtual void addVectorPostprocessorDependencyHelper (const VectorPostprocessorName &name) const override
 
virtual void addUserObjectDependencyHelper (const UserObjectBase &uo) const override
 
void addReporterDependencyHelper (const ReporterName &reporter_name) override
 
void flagInvalidSolutionInternal (const InvalidSolutionID invalid_solution_id) const
 
InvalidSolutionID registerInvalidSolutionInternal (const std::string &message, const bool warning) const
 
const ReporterContextBasegetReporterContextBaseByName (const ReporterName &reporter_name) const
 
const ReporterNamegetReporterName (const std::string &param_name) const
 
TdeclareRestartableData (const std::string &data_name, Args &&... args)
 
ManagedValue< TdeclareManagedRestartableDataWithContext (const std::string &data_name, void *context, Args &&... args)
 
const TgetRestartableData (const std::string &data_name) const
 
TdeclareRestartableDataWithContext (const std::string &data_name, void *context, Args &&... args)
 
TdeclareRecoverableData (const std::string &data_name, Args &&... args)
 
TdeclareRestartableDataWithObjectName (const std::string &data_name, const std::string &object_name, Args &&... args)
 
TdeclareRestartableDataWithObjectNameWithContext (const std::string &data_name, const std::string &object_name, void *context, Args &&... args)
 
std::string restartableName (const std::string &data_name) const
 
const TgetMeshProperty (const std::string &data_name, const std::string &prefix)
 
const TgetMeshProperty (const std::string &data_name)
 
bool hasMeshProperty (const std::string &data_name, const std::string &prefix) const
 
bool hasMeshProperty (const std::string &data_name, const std::string &prefix) const
 
bool hasMeshProperty (const std::string &data_name) const
 
bool hasMeshProperty (const std::string &data_name) const
 
std::string meshPropertyName (const std::string &data_name) const
 
PerfID registerTimedSection (const std::string &section_name, const unsigned int level) const
 
PerfID registerTimedSection (const std::string &section_name, const unsigned int level, const std::string &live_message, const bool print_dots=true) const
 
std::string timedSectionName (const std::string &section_name) const
 
virtual bool hasBlockMaterialPropertyHelper (const std::string &prop_name)
 
void initializeBlockRestrictable (const MooseObject *moose_object)
 
void initializeKokkosBlockRestrictable ()
 
Moose::CoordinateSystemType getBlockCoordSystem ()
 
KOKKOS_FUNCTION dof_id_type numKokkosBlockElements () const
 
KOKKOS_FUNCTION dof_id_type numKokkosBlockNodes () const
 
KOKKOS_FUNCTION dof_id_type numKokkosBlockSides () const
 
KOKKOS_FUNCTION ContiguousElementID kokkosBlockElementID (Moose::Kokkos::ThreadID tid) const
 
KOKKOS_FUNCTION ContiguousElementID kokkosBlockNodeID (Moose::Kokkos::ThreadID tid) const
 
KOKKOS_FUNCTION auto kokkosBlockElementSideID (Moose::Kokkos::ThreadID tid) const
 
virtual void checkMaterialProperty (const std::string &name, const unsigned int state)
 
virtual void getKokkosMaterialPropertyHook (const std::string &, const unsigned int)
 
void markMatPropRequested (const std::string &)
 
MaterialPropertyName getMaterialPropertyName (const std::string &name) const
 
void checkExecutionStage ()
 
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 TcoupledNodalValue (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 TcoupledNodalValueOld (const std::string &var_name, unsigned int comp=0) const
 
const TcoupledNodalValueOlder (const std::string &var_name, unsigned int comp=0) const
 
const TcoupledNodalValuePreviousNL (const std::string &var_name, unsigned int comp=0) const
 
const TcoupledNodalDot (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 ()
 
bool checkVar (const std::string &var_name, unsigned int comp=0, unsigned int comp_bound=0) const
 
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)
 
std::vector< const MooseVariableFieldBase * > getFieldVars (const std::string &var_name) const
 
const TgetVarHelper (const std::string &var_name, unsigned int comp) const
 
TgetVarHelper (const std::string &var_name, unsigned int comp)
 
std::vector< const T * > getVarsHelper (const std::string &var_name) const
 
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
 
void validateExecutionerType (const std::string &name, const std::string &fn_name) const
 
std::vector< TcoupledVectorHelper (const std::string &var_name, const Func &func) 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
 
VectorPostprocessorValuedeclareVector (const std::string &vector_name)
 
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)
 
const Moose::Functor< T > & getFunctorByName (const std::string &name)
 
const TgetReporterValue (const std::string &param_name, const std::size_t time_index=0)
 
const TgetReporterValue (const std::string &param_name, ReporterMode mode, const std::size_t time_index=0)
 
const TgetReporterValue (const std::string &param_name, const std::size_t time_index=0)
 
const TgetReporterValue (const std::string &param_name, ReporterMode mode, const std::size_t time_index=0)
 
const TgetReporterValueByName (const ReporterName &reporter_name, const std::size_t time_index=0)
 
const TgetReporterValueByName (const ReporterName &reporter_name, ReporterMode mode, const std::size_t time_index=0)
 
const TgetReporterValueByName (const ReporterName &reporter_name, const std::size_t time_index=0)
 
const TgetReporterValueByName (const ReporterName &reporter_name, ReporterMode mode, const std::size_t time_index=0)
 
bool hasReporterValue (const std::string &param_name) const
 
bool hasReporterValue (const std::string &param_name) const
 
bool hasReporterValue (const std::string &param_name) const
 
bool hasReporterValue (const std::string &param_name) const
 
bool hasReporterValueByName (const ReporterName &reporter_name) const
 
bool hasReporterValueByName (const ReporterName &reporter_name) const
 
bool hasReporterValueByName (const ReporterName &reporter_name) const
 
bool hasReporterValueByName (const ReporterName &reporter_name) const
 
const GenericMaterialProperty< T, is_ad > * defaultGenericMaterialProperty (const std::string &name)
 
const GenericMaterialProperty< T, is_ad > * defaultGenericMaterialProperty (const std::string &name)
 
const MaterialProperty< T > * defaultMaterialProperty (const std::string &name)
 
const MaterialProperty< T > * defaultMaterialProperty (const std::string &name)
 
const ADMaterialProperty< T > * defaultADMaterialProperty (const std::string &name)
 
const ADMaterialProperty< T > * defaultADMaterialProperty (const std::string &name)
 

Static Protected Member Functions

static std::string meshPropertyName (const std::string &data_name, const std::string &prefix)
 

Protected Attributes

std::size_t _ndisp
 Number of displacement components.
 
const CrackFrontDefinition *const _crack_front_definition
 Pointer to the crack front definition object.
 
bool _treat_as_2d
 Whether to treat a model as 2D for computation of fracture integrals.
 
bool _using_mesh_cutter
 Is the crack defined by an XFEM cutter mesh.
 
const GenericMaterialProperty< RankTwoTensor, is_ad > & _stress
 Reference to the stress tensor computed by the material models.
 
const GenericMaterialProperty< RankTwoTensor, is_ad > & _strain
 Reference to the strain tensor computed by the material models.
 
std::vector< MooseVariableFEBase * > _fe_vars
 Vector of all coupled variables.
 
const libMesh::FEType_fe_type
 FEType object defining order and family of displacement variables.
 
std::vector< const VariableValue * > _disp
 Displacement variables.
 
std::vector< const VariableGradient * > _grad_disp
 Gradient of displacements.
 
const bool _has_temp
 Whether the temperature variable is coupled.
 
const VariableGradient_grad_temp
 Gradient of temperature.
 
const MaterialProperty< Real > * _functionally_graded_youngs_modulus_crack_dir_gradient
 Spatial derivative of the youngs modulus in the crack direction.
 
const MaterialProperty< Real > * _functionally_graded_youngs_modulus
 Spatial elasticity modulus variable for FGM.
 
Real _K_factor
 Conversion factor applied to convert interaction integral to stress intensity factor K.
 
bool _has_symmetry_plane
 Whether the crack plane is also a symmetry plane in the model.
 
Real _poissons_ratio
 Poisson's ratio of the material.
 
Real _youngs_modulus
 Young's modulus of the material.
 
const bool _fgm_crack
 Whether to consider interaction integral and material properties for a crack in functionally graded material.
 
std::size_t _ring_index
 Index of the ring for the integral computed by this object.
 
const GenericMaterialProperty< RankTwoTensor, is_ad > *const _total_deigenstrain_dT
 Derivative of the total eigenstrain with respect to temperature.
 
bool _has_additional_eigenstrain
 Whether the user chooses to add other eigenstrain influence (e.g. irradiation-induced)
 
const VariableGradient_additional_eigenstrain_gradient_00
 Gradient used to add contribution to the interaction integral (XX)
 
const VariableGradient_additional_eigenstrain_gradient_01
 Gradient used to add contribution to the interaction integral (XY)
 
const VariableGradient_additional_eigenstrain_gradient_11
 Gradient used to add contribution to the interaction integral (YY)
 
const VariableGradient_additional_eigenstrain_gradient_22
 Gradient used to add contribution to the interaction integral (ZZ)
 
const VariableGradient_additional_eigenstrain_gradient_02
 Gradient used to add contribution to the interaction integral (XZ)
 
const VariableGradient_additional_eigenstrain_gradient_12
 Gradient used to add contribution to the interaction integral (YZ)
 
std::vector< Real > _q_curr_elem
 Vector of q function values for the nodes in the current element.
 
const std::vector< std::vector< Real > > * _phi_curr_elem
 Vector of shape function values for the current element.
 
const std::vector< std::vector< libMesh::RealGradient > > * _dphi_curr_elem
 Vector of gradients of shape function values for the current element.
 
Real _kappa
 Kappa Lame constant.
 
Real _shear_modulus
 Shear modulus.
 
Real _r
 Radial distance from the current point to the crack front.
 
Real _theta
 Angle of current point relative to the crack front.
 
unsigned int _qp
 Current quadrature point index.
 
enum InteractionIntegralTempl::QMethod _q_function_type
 
enum InteractionIntegralTempl::PositionType _position_type
 
enum InteractionIntegralTempl::SifMethod _sif_mode
 
MooseMesh_mesh
 
const Elem *const & _current_elem
 
const Real & _current_elem_volume
 
const MooseArray< Point > & _q_point
 
const QBase *const & _qrule
 
const MooseArray< Real > & _JxW
 
const MooseArray< Real > & _coord
 
const Moose::CoordinateSystemType_coord_sys
 
const THREAD_ID _tid
 
SubProblem_subproblem
 
FEProblemBase_fe_problem
 
SystemBase_sys
 
Assembly_assembly
 
const bool _duplicate_initial_execution
 
std::set< std::string > _depend_uo
 
const bool & _enabled
 
MooseApp_app
 
Factory_factory
 
ActionFactory_action_factory
 
const std::string & _type
 
const std::string & _name
 
const InputParameters_pars
 
const ExecFlagEnum_execute_enum
 
const ExecFlagType_current_execute_flag
 
MooseApp_restartable_app
 
const std::string _restartable_system_name
 
const THREAD_ID _restartable_tid
 
const bool _restartable_read_only
 
FEProblemBase_mci_feproblem
 
FEProblemBase_mdi_feproblem
 
MooseApp_pg_moose_app
 
const std::string _prefix
 
const MaterialData_blk_material_data
 
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 bool _is_kokkos_object
 
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 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< MooseVariableField< Real > * > _coupled_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::vector< std::unique_ptr< VariableValue > > > _default_value
 
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
 
FEProblemBase_sc_fe_problem
 
const THREAD_ID _sc_tid
 
const Real & _real_zero
 
const VariableValue_scalar_zero
 
const Point & _point_zero
 
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
 
const std::string _vpp_name
 
FEProblemBase_vpp_fe_problem
 
const MooseEnum_parallel_type
 
const Parallel::Communicator & _communicator
 
VectorPostprocessorValue_x
 Vectors computed by this VectorPostprocessor: x,y,z coordinates, position of nodes along crack front, and interaction integral.
 
VectorPostprocessorValue_y
 
VectorPostprocessorValue_z
 
VectorPostprocessorValue_position
 
VectorPostprocessorValue_interaction_integral
 
const GenericMaterialProperty< RankThreeTensor, is_ad > * _eigenstrain_gradient
 Pointers to optionally-used eigenstrain gradient and body force.
 
const MaterialProperty< RealVectorValue > * _body_force
 

Static Protected Attributes

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

Private Types

enum  FuncAge
 
enum  VarType
 

Private Member Functions

const Moose::Functor< T > * defaultFunctor (const std::string &name)
 
const Moose::Functor< Real > * defaultFunctor (const std::string &name)
 
const Moose::Functor< ADReal > * defaultFunctor (const std::string &name)
 
const Moose::Functor< T > & getFunctorByName (const std::string &name, SubProblem &subproblem, THREAD_ID tid)
 
const Moose::FunctionBasegetKokkosFunctionByNameHelper (const FunctionName &name) const
 
const UserObjectBasegetUserObjectFromFEProblem (const UserObjectName &object_name, const THREAD_ID tid=0) const
 
const TcastUserObject (const UserObjectBase &uo_base, const std::string &param_name="") const
 
void mooseObjectError (const std::string &param_name, std::stringstream &oss) const
 
const std::string & userObjectType (const UserObjectBase &uo) const
 
const std::string & userObjectName (const UserObjectBase &uo) const
 
const PostprocessorName & getPostprocessorNameInternal (const std::string &param_name, const unsigned int index, const bool allow_default_value=true) const
 
bool isDefaultPostprocessorValueByName (const PostprocessorName &name) const
 
PostprocessorValue getDefaultPostprocessorValueByName (const PostprocessorName &name) const
 
void checkParam (const std::string &param_name, const unsigned int index=std::numeric_limits< unsigned int >::max()) const
 
bool postprocessorsAdded () const
 
const VectorPostprocessorValuegetVectorPostprocessorByNameHelper (const VectorPostprocessorName &name, const std::string &vector_name, bool broadcast, std::size_t t_index) const
 
const VectorPostprocessorContext< VectorPostprocessorValue > & getVectorPostprocessorContextByNameHelper (const VectorPostprocessorName &name, const std::string &vector_name) const
 
bool vectorPostprocessorsAdded () const
 
bool reportersAdded () const
 
void possiblyCheckHasReporter (const ReporterName &reporter_name, const std::string &param_name="") const
 
RestartableDataValueregisterRestartableDataOnApp (std::unique_ptr< RestartableDataValue > data, THREAD_ID tid) const
 
void registerRestartableNameWithFilterOnApp (const std::string &name, Moose::RESTARTABLE_FILTER filter)
 
RestartableData< T > & declareRestartableDataHelper (const std::string &data_name, void *context, Args &&... args) const
 
virtual std::string meshPropertyPrefix (const std::string &data_name) const
 
const RestartableDataValuegetMeshPropertyInternal (const std::string &data_name, const std::string &prefix) const
 
void mooseErrorInternal (Args &&... args) const
 
Moose::MaterialDataType getMaterialDataType (const std::set< BoundaryID > &boundary_ids) const
 
unsigned int getMaxQps () const
 
void addConsumedPropertyName (const MooseObjectName &obj_name, const std::string &prop_name)
 
const OutputTools< T >::VariableValuevectorTagValueHelper (const std::string &var_names, TagID tag, unsigned int index=0) const
 
const OutputTools< T >::VariableValuevectorTagValueHelper (const std::string &var_names, const std::string &tag_name, unsigned int index=0) const
 
const OutputTools< T >::VariableValuevectorTagDofValueHelper (const std::string &var_name, TagID tag, unsigned int comp=0) const
 
const OutputTools< T >::VariableValuevectorTagDofValueHelper (const std::string &var_name, const std::string &tag_name, unsigned int comp=0) const
 
void requestStates (const std::string &var_name, const TagName &tag_name, const unsigned int comp)
 
void checkFuncType (const std::string var_name, VarType t, FuncAge age) const
 
const VariableValuegetDefaultValue (const std::string &var_name, unsigned int comp) const
 
const VectorVariableValuegetDefaultVectorValue (const std::string &var_name) const
 
const ArrayVariableValuegetDefaultArrayValue (const std::string &var_name) const
 
const TgetDefaultNodalValue (const std::string &var_name, unsigned int comp=0) const
 
const RealVectorValue & getDefaultNodalValue (const std::string &var_name, unsigned int) const
 
const RealEigenVector & getDefaultNodalValue (const std::string &var_name, unsigned int) const
 
const Moose::Functor< T > & getDefaultFunctor (const std::string &var_name) const
 
Moose::Kokkos::Variable kokkosCoupledVectorTagVariable (const std::string &var_name, const std::string &tag_name, unsigned int comp) const
 
Moose::Kokkos::Variable kokkosCoupledVectorTagVariables (const std::string &var_name, const std::string &tag_name) const
 
Moose::Kokkos::Variable kokkosCoupledVectorTagVectorVariable (const std::string &var_name, const std::string &tag_name, unsigned int comp) const
 
Moose::Kokkos::Variable kokkosCoupledVectorTagVectorVariables (const std::string &var_name, const std::string &tag_name) const
 
Moose::Kokkos::Variable kokkosZeroVariable () const
 
std::set< MooseVariableFieldBase * > checkVariablesHelper (const DofObjectType &dof_object, const std::set< MooseVariableFieldBase * > &vars_to_check)
 
virtual bool isADObject () const override
 
const PostprocessorValuegetPostprocessorValueInternal (const std::string &param_name, unsigned int index, std::size_t t_index) const
 
const PostprocessorValuegetPostprocessorValueInternal (const std::string &param_name, unsigned int index, std::size_t t_index) const
 
const PostprocessorValuegetPostprocessorValueByNameInternal (const PostprocessorName &name, std::size_t t_index) const
 
const PostprocessorValuegetPostprocessorValueByNameInternal (const PostprocessorName &name, std::size_t t_index) const
 
void possiblyCheckHasVectorPostprocessor (const std::string &param_name, const std::string &vector_name) const
 
void possiblyCheckHasVectorPostprocessor (const std::string &param_name, const std::string &vector_name) const
 
void possiblyCheckHasVectorPostprocessorByName (const VectorPostprocessorName &name, const std::string &vector_name) const
 
void possiblyCheckHasVectorPostprocessorByName (const VectorPostprocessorName &name, const std::string &vector_name) const
 

Static Private Member Functions

static const hit::Node * getHitNode (const InputParameters &params)
 
static std::string messagePrefix (const InputParameters &params, const bool hit_prefix)
 

Private Attributes

UserObject_primary_thread_copy
 
std::set< std::string > _supplied_uo
 
const ParallelParamObject_parent
 
const MooseBase_si_moose_base
 
const FEProblemBase_si_problem
 
ExecFlagEnum _empty_execute_enum
 
const MooseObject_fni_object
 
const InputParameters_fni_params
 
FEProblemBase_fni_feproblem
 
const THREAD_ID _fni_tid
 
const MooseObject_uoi_moose_object
 
const FEProblemBase_uoi_feproblem
 
const THREAD_ID _uoi_tid
 
const MooseObject_ppi_moose_object
 
const InputParameters_ppi_params
 
const FEProblemBase_ppi_feproblem
 
std::map< PostprocessorName, std::unique_ptr< PostprocessorValue > > _default_values
 
const bool _broadcast_by_default
 
const MooseObject_vpi_moose_object
 
const FEProblemBase_vpi_feproblem
 
const THREAD_ID _vpi_tid
 
const InputParameters_ri_params
 
FEProblemBase_ri_fe_problem_base
 
const ReporterData_ri_reporter_data
 
const MooseObject_ri_moose_object
 
const InputParameters_dni_params
 
FEProblemBase_dni_feproblem
 
const MooseObject *const _dni_moose_object_ptr
 
const InputParameters_si_params
 
FEProblemBase_si_feproblem
 
THREAD_ID _si_tid
 
const RestartableDataMapName _metaname
 
std::string _restartable_name
 
MooseApp_meta_data_app
 
const MooseObject *const _meta_data_object
 
std::set< SubdomainID_blk_ids
 
std::vector< SubdomainID_vec_ids
 
std::vector< SubdomainName > _blocks
 
const bool _blk_dual_restrictable
 
FEProblemBase_blk_feproblem
 
const MooseMesh_blk_mesh
 
const std::set< BoundaryID_empty_boundary_ids
 
const std::set< BoundaryID > & _boundary_ids
 
THREAD_ID _blk_tid
 
const std::string & _blk_name
 
unsigned int _blk_dim
 
const MooseObject_moose_object
 
Moose::Kokkos::Array< ContiguousElementID_kokkos_element_ids
 
Moose::Kokkos::Array< ContiguousNodeID_kokkos_node_ids
 
Moose::Kokkos::Array< Moose::Kokkos::Pair< ContiguousElementID, unsigned int > > _kokkos_element_side_ids
 
const MooseObject_mi_moose_object
 
const bool _mi_boundary_restricted
 
const std::set< SubdomainID > & _mi_block_ids
 
const std::set< BoundaryID > & _mi_boundary_ids
 
std::vector< std::unique_ptr< OptionalMaterialPropertyProxyBase< MaterialPropertyInterface > > > _optional_property_proxies
 
unsigned int _coupleable_max_qps
 
std::unordered_map< std::string, std::vector< unsigned int > > _optional_var_index
 
std::unordered_map< std::string, std::vector< MooseVariableScalar * > > _c_coupled_scalar_vars
 
std::set< TagID_fe_coupleable_vector_tags
 
std::set< TagID_fe_coupleable_matrix_tags
 
const bool _is_fv
 
const MooseObject *const _obj
 
const std::set< std::string > _older_state_tags
 
std::vector< std::set< MooseWritableVariable * > > _writable_coupled_variables
 
const Real _kokkos_default_value_zero
 
const InputParameters_sc_parameters
 
const std::string & _sc_name
 
const bool _sc_is_implicit
 
std::unordered_map< std::string, std::vector< MooseVariableScalar * > > _coupled_scalar_vars
 
std::unordered_map< std::string, std::unique_ptr< ADVariableValue > > _dual_default_value
 
std::vector< MooseVariableScalar * > _coupled_moose_scalar_vars
 
std::unordered_map< std::string, std::vector< MooseVariableFieldBase * > > _sc_coupled_vars
 
std::set< TagID_sc_coupleable_vector_tags
 
std::set< TagID_sc_coupleable_matrix_tags
 
std::set< MooseVariableFieldBase * > _moose_variable_dependencies
 
std::vector< libMesh::dof_id_type_dof_indices
 
const std::string _ti_name
 
RandomData_random_data
 
MooseRandom_generator
 
FEProblemBase_ri_problem
 
const std::string _ri_name
 
unsigned int _master_seed
 
bool _is_nodal
 
ExecFlagType _reset_on
 
const Node *const & _curr_node
 
const Elem *const & _curr_element
 
const InputParameters_obj_parameters
 
std::shared_ptr< MooseMesh > & _id_mesh
 
const std::string & _ei_name
 
const MooseObject_vpp_moose_object
 
const THREAD_ID _vpp_tid
 
const bool _contains_complete_history
 
const bool _is_distributed
 
const bool _is_broadcast
 
std::map< std::string, VectorPostprocessorValue_thread_local_vectors
 
std::set< std::string > _vector_names
 
MooseApp_oi_moose_app
 
OutputWarehouse_oi_output_warehouse
 
std::set< OutputName > _oi_outputs
 
const InputParameters_fi_params
 
const std::string _fi_name
 
SubProblem *const _fi_subproblem
 
const THREAD_ID _fi_tid
 
std::vector< std::unique_ptr< Moose::Functor< Real > > > _default_real_functors
 
std::vector< std::unique_ptr< Moose::Functor< ADReal > > > _default_ad_real_functors
 

Detailed Description

template<bool is_ad>
class InteractionIntegralTempl< is_ad >

This vectorpostprocessor computes the Interaction Integral, which is used to compute various fracture mechanics parameters at a crack tip, including KI, KII, KIII, and the T stress.

Definition at line 23 of file InteractionIntegral.h.

Member Enumeration Documentation

◆ PositionType

template<bool is_ad>
enum class InteractionIntegralTempl::PositionType
strongprotected

Enum used to define how the distance along the crack front is measured (angle or distance)

Enumerator
Angle 
Distance 

Definition at line 165 of file InteractionIntegral.h.

◆ QMethod

template<bool is_ad>
enum class InteractionIntegralTempl::QMethod
strongprotected

Enum used to select the method used to compute the q function used in the fracture integrals.

Enumerator
Geometry 
Topology 

Definition at line 161 of file InteractionIntegral.h.

◆ SifMethod

template<bool is_ad>
enum class InteractionIntegralTempl::SifMethod
strongprotected

Enum used to select the type of integral to be performed.

Enumerator
KI 
KII 
KIII 

Definition at line 168 of file InteractionIntegral.h.

Constructor & Destructor Documentation

◆ InteractionIntegralTempl()

template<bool is_ad>
InteractionIntegralTempl< is_ad >::InteractionIntegralTempl ( const InputParameters parameters)

Definition at line 116 of file InteractionIntegral.C.

118 _ndisp(coupledComponents("displacements")),
119 _crack_front_definition(&getUserObject<CrackFrontDefinition>("crack_front_definition")),
120 _treat_as_2d(false),
121 _stress(getGenericMaterialPropertyByName<RankTwoTensor, is_ad>("stress")),
122 _strain(getGenericMaterialPropertyByName<RankTwoTensor, is_ad>("elastic_strain")),
124 _fe_type(_fe_vars[0]->feType()),
125 _disp(coupledValues("displacements")),
126 _grad_disp(3),
127 _has_temp(isCoupled("temperature")),
130 isParamSetByUser("functionally_graded_youngs_modulus_crack_dir_gradient")
131 ? &getMaterialProperty<Real>("functionally_graded_youngs_modulus_crack_dir_gradient")
132 : nullptr),
134 isParamSetByUser("functionally_graded_youngs_modulus")
135 ? &getMaterialProperty<Real>("functionally_graded_youngs_modulus")
136 : nullptr),
137 _K_factor(getParam<Real>("K_factor")),
138 _has_symmetry_plane(isParamValid("symmetry_plane")),
139 _poissons_ratio(getParam<Real>("poissons_ratio")),
140 _youngs_modulus(getParam<Real>("youngs_modulus")),
141 _fgm_crack(isParamSetByUser("functionally_graded_youngs_modulus_crack_dir_gradient") &&
142 isParamSetByUser("functionally_graded_youngs_modulus")),
143 _ring_index(getParam<unsigned int>("ring_index")),
145 hasMaterialProperty<RankTwoTensor>("total_deigenstrain_dT")
146 ? &getGenericMaterialProperty<RankTwoTensor, is_ad>("total_deigenstrain_dT")
147 : nullptr),
149 _additional_eigenstrain_gradient_00(isCoupled("additional_eigenstrain_00")
150 ? &coupledGradient("additional_eigenstrain_00")
151 : nullptr),
152 _additional_eigenstrain_gradient_01(isCoupled("additional_eigenstrain_01")
153 ? &coupledGradient("additional_eigenstrain_01")
154 : nullptr),
155 _additional_eigenstrain_gradient_11(isCoupled("additional_eigenstrain_11")
156 ? &coupledGradient("additional_eigenstrain_11")
157 : nullptr),
158 _additional_eigenstrain_gradient_22(isCoupled("additional_eigenstrain_22")
159 ? &coupledGradient("additional_eigenstrain_22")
160 : nullptr),
161 _additional_eigenstrain_gradient_02(isCoupled("additional_eigenstrain_02")
162 ? &coupledGradient("additional_eigenstrain_02")
163 : nullptr),
164 _additional_eigenstrain_gradient_12(isCoupled("additional_eigenstrain_12")
165 ? &coupledGradient("additional_eigenstrain_12")
166 : nullptr),
167 _q_function_type(getParam<MooseEnum>("q_function_type").template getEnum<QMethod>()),
168 _position_type(getParam<MooseEnum>("position_type").template getEnum<PositionType>()),
169 _sif_mode(getParam<MooseEnum>("sif_mode").template getEnum<SifMethod>()),
170 _x(declareVector("x")),
171 _y(declareVector("y")),
172 _z(declareVector("z")),
175 "_" + Moose::stringify(_ring_index))),
176 _eigenstrain_gradient(nullptr),
177 _body_force(nullptr)
178{
180 mooseError("InteractionIntegral Error: To include thermal strain term in interaction integral, "
181 "must both couple temperature in DomainIntegral block and compute "
182 "total_deigenstrain_dT using ThermalFractureIntegral material model.");
183
188 paramError("functionally_graded_youngs_modulus_crack_dir_gradient",
189 "You have selected to compute the interaction integral for a crack in FGM. That "
190 "selection requires the user to provide a spatially varying elasticity modulus "
191 "that "
192 "defines the transition of material properties (i.e. "
193 "'functionally_graded_youngs_modulus') and its "
194 "spatial derivative in the crack direction (i.e. "
195 "'functionally_graded_youngs_modulus_crack_dir_gradient').");
196
197 // plane strain
198 _kappa = 3.0 - 4.0 * _poissons_ratio;
200
201 // Checking for consistency between mesh size and length of the provided displacements vector
202 if (_ndisp != _mesh.dimension())
203 paramError("displacements",
204 "InteractionIntegral Error: number of variables supplied in 'displacements' must "
205 "match the mesh dimension.");
206
207 // fetch gradients of coupled variables
208 for (std::size_t i = 0; i < _ndisp; ++i)
209 _grad_disp[i] = &coupledGradient("displacements", i);
210
211 // set unused dimensions to zero
212 for (std::size_t i = _ndisp; i < 3; ++i)
214
215 if (isParamValid("eigenstrain_gradient"))
216 {
218 &getGenericMaterialProperty<RankThreeTensor, is_ad>("eigenstrain_gradient");
220 paramError("eigenstrain_gradient",
221 "eigenstrain_gradient cannot be specified for materials that provide the "
222 "total_deigenstrain_dT material property");
223 }
224 if (isParamValid("body_force"))
225 _body_force = &getMaterialProperty<RealVectorValue>("body_force");
226
230
234 paramError("additional_eigenstrain_gradient_12",
235 "If additional eigenstrains are provided for the computation of the interaction "
236 "integral in three dimensions, make sure the six components are provided.");
237
239 mooseInfo("A generic eigenstrain provided by the user will be considered in the interaction "
240 "integral (via domain integral action).");
241}
void ErrorVector unsigned int
const VariableGradient & _grad_zero
const std::vector< MooseVariableFieldBase * > & getCoupledMooseVars() const
std::vector< const VariableValue * > coupledValues(const std::string &var_name) const
virtual const VariableGradient & coupledGradient(const std::string &var_name, unsigned int comp=0) const
unsigned int coupledComponents(const std::string &var_name) const
virtual bool isCoupled(const std::string &var_name, unsigned int i=0) const
VectorPostprocessorValue & _interaction_integral
Real _kappa
Kappa Lame constant.
const CrackFrontDefinition *const _crack_front_definition
Pointer to the crack front definition object.
const VariableGradient * _additional_eigenstrain_gradient_12
Gradient used to add contribution to the interaction integral (YZ)
const VariableGradient * _additional_eigenstrain_gradient_22
Gradient used to add contribution to the interaction integral (ZZ)
const GenericMaterialProperty< RankTwoTensor, is_ad > & _stress
Reference to the stress tensor computed by the material models.
bool _has_symmetry_plane
Whether the crack plane is also a symmetry plane in the model.
const GenericMaterialProperty< RankTwoTensor, is_ad > & _strain
Reference to the strain tensor computed by the material models.
VectorPostprocessorValue & _y
const GenericMaterialProperty< RankTwoTensor, is_ad > *const _total_deigenstrain_dT
Derivative of the total eigenstrain with respect to temperature.
const MaterialProperty< Real > * _functionally_graded_youngs_modulus_crack_dir_gradient
Spatial derivative of the youngs modulus in the crack direction.
const MaterialProperty< Real > * _functionally_graded_youngs_modulus
Spatial elasticity modulus variable for FGM.
Real _poissons_ratio
Poisson's ratio of the material.
const VariableGradient * _additional_eigenstrain_gradient_01
Gradient used to add contribution to the interaction integral (XY)
const bool _fgm_crack
Whether to consider interaction integral and material properties for a crack in functionally graded m...
const VariableGradient & _grad_temp
Gradient of temperature.
std::vector< MooseVariableFEBase * > _fe_vars
Vector of all coupled variables.
QMethod
Enum used to select the method used to compute the q function used in the fracture integrals.
Real _youngs_modulus
Young's modulus of the material.
bool _has_additional_eigenstrain
Whether the user chooses to add other eigenstrain influence (e.g. irradiation-induced)
std::size_t _ndisp
Number of displacement components.
bool _treat_as_2d
Whether to treat a model as 2D for computation of fracture integrals.
PositionType
Enum used to define how the distance along the crack front is measured (angle or distance)
Real _shear_modulus
Shear modulus.
const libMesh::FEType & _fe_type
FEType object defining order and family of displacement variables.
std::vector< const VariableValue * > _disp
Displacement variables.
Real _K_factor
Conversion factor applied to convert interaction integral to stress intensity factor K.
SifMethod
Enum used to select the type of integral to be performed.
const VariableGradient * _additional_eigenstrain_gradient_11
Gradient used to add contribution to the interaction integral (YY)
std::size_t _ring_index
Index of the ring for the integral computed by this object.
VectorPostprocessorValue & _z
const MaterialProperty< RealVectorValue > * _body_force
std::vector< const VariableGradient * > _grad_disp
Gradient of displacements.
VectorPostprocessorValue & _position
const GenericMaterialProperty< RankThreeTensor, is_ad > * _eigenstrain_gradient
Pointers to optionally-used eigenstrain gradient and body force.
const bool _has_temp
Whether the temperature variable is coupled.
const VariableGradient * _additional_eigenstrain_gradient_02
Gradient used to add contribution to the interaction integral (XZ)
VectorPostprocessorValue & _x
Vectors computed by this VectorPostprocessor: x,y,z coordinates, position of nodes along crack front,...
const VariableGradient * _additional_eigenstrain_gradient_00
Gradient used to add contribution to the interaction integral (XX)
const MaterialProperty< T > & getMaterialProperty(const std::string &name, MaterialData &material_data, const unsigned int state=0)
bool hasMaterialProperty(const std::string &name)
const GenericMaterialProperty< T, is_ad > & getGenericMaterialProperty(const std::string &name, MaterialData &material_data, const unsigned int state=0)
const InputParameters & parameters() const
void paramError(const std::string &param, Args... args) const
bool isParamSetByUser(const std::string &name) const
void mooseError(Args &&... args) const
const T & getParam(const std::string &name) const
void mooseInfo(Args &&... args) const
bool isParamValid(const std::string &name) const
virtual unsigned int dimension() const
VectorPostprocessorValue & declareVector(const std::string &vector_name)
std::string stringify(const T &t)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real

Member Function Documentation

◆ computeAuxFields()

template<bool is_ad>
void InteractionIntegralTempl< is_ad >::computeAuxFields ( RankTwoTensor aux_stress,
RankTwoTensor grad_disp,
RankTwoTensor aux_strain,
RankTwoTensor aux_disp 
)
protected

Compute the auxiliary fields, including the auxiliary stress and the gradient of the auxiliary displacement for the current point (as defined by the combination of _r and _theta)

Parameters
aux_stressAuxiliary stress – computed in this method
grad_dispGradient of auxiliary displacement – computed in this method
grad_dispAuxiliary strain (FGM) – computed in this method
aux_dispAuxiliary displacement – computed in this method only for axisymmetric (RZ) meshes

Definition at line 611 of file InteractionIntegral.C.

615{
616 RealVectorValue k(0.0);
618 k(0) = 1.0;
619 else if (_sif_mode == SifMethod::KII)
620 k(1) = 1.0;
621 else if (_sif_mode == SifMethod::KIII)
622 k(2) = 1.0;
623
624 Real t = _theta;
625 Real t2 = _theta / 2.0;
626 Real tt2 = 3.0 * _theta / 2.0;
627 Real st = std::sin(t);
628 Real ct = std::cos(t);
629 Real st2 = std::sin(t2);
630 Real ct2 = std::cos(t2);
631 Real stt2 = std::sin(tt2);
632 Real ctt2 = std::cos(tt2);
633 Real ct2sq = Utility::pow<2>(ct2);
634 Real st2sq = Utility::pow<2>(st2);
635 Real ct2cu = Utility::pow<3>(ct2);
636 Real sqrt2PiR = std::sqrt(2.0 * libMesh::pi * _r);
637
638 // Calculate auxiliary stress tensor
639 aux_stress.zero();
640
641 aux_stress(0, 0) =
642 1.0 / sqrt2PiR * (k(0) * ct2 * (1.0 - st2 * stt2) - k(1) * st2 * (2.0 + ct2 * ctt2));
643 aux_stress(1, 1) = 1.0 / sqrt2PiR * (k(0) * ct2 * (1.0 + st2 * stt2) + k(1) * st2 * ct2 * ctt2);
644 aux_stress(0, 1) = 1.0 / sqrt2PiR * (k(0) * ct2 * st2 * ctt2 + k(1) * ct2 * (1.0 - st2 * stt2));
645 aux_stress(0, 2) = -1.0 / sqrt2PiR * k(2) * st2;
646 aux_stress(1, 2) = 1.0 / sqrt2PiR * k(2) * ct2;
647 // plane stress
648 // Real s33 = 0;
649 // plane strain
650 aux_stress(2, 2) = _poissons_ratio * (aux_stress(0, 0) + aux_stress(1, 1));
651
652 aux_stress(1, 0) = aux_stress(0, 1);
653 aux_stress(2, 0) = aux_stress(0, 2);
654 aux_stress(2, 1) = aux_stress(1, 2);
655
656 // Calculate auxiliary strain tensor (only needed to FGM)
657 if (_fgm_crack)
658 {
659 aux_strain.zero();
660 RankFourTensor spatial_elasticity_tensor;
661 spatial_elasticity_tensor.fillSymmetricIsotropicEandNu(
663 aux_strain = spatial_elasticity_tensor.invSymm() * aux_stress;
664 }
665
666 // Calculate x1 derivative of auxiliary displacements
667 grad_disp.zero();
668 grad_disp(0, 0) = k(0) / (4.0 * _shear_modulus * sqrt2PiR) *
669 (ct * ct2 * _kappa + ct * ct2 - 2.0 * ct * ct2cu + st * st2 * _kappa +
670 st * st2 - 6.0 * st * st2 * ct2sq) +
671 k(1) / (4.0 * _shear_modulus * sqrt2PiR) *
672 (ct * st2 * _kappa + ct * st2 + 2.0 * ct * st2 * ct2sq - st * ct2 * _kappa +
673 3.0 * st * ct2 - 6.0 * st * ct2cu);
674
675 grad_disp(0, 1) = k(0) / (4.0 * _shear_modulus * sqrt2PiR) *
676 (ct * st2 * _kappa + ct * st2 - 2.0 * ct * st2 * ct2sq - st * ct2 * _kappa -
677 5.0 * st * ct2 + 6.0 * st * ct2cu) +
678 k(1) / (4.0 * _shear_modulus * sqrt2PiR) *
679 (-ct * ct2 * _kappa + 3.0 * ct * ct2 - 2.0 * ct * ct2cu -
680 st * st2 * _kappa + 3.0 * st * st2 - 6.0 * st * st2 * ct2sq);
681
682 grad_disp(0, 2) = k(2) / (_shear_modulus * sqrt2PiR) * (st2 * ct - ct2 * st);
683
684 // Calculate aux displacement field (used in RZ calculations) - Warp3D manual
685 aux_disp.zero();
687 {
688 const Real prefactor_rz = std::sqrt(_r / 2.0 / libMesh::pi) / 2.0 / _shear_modulus;
689 aux_disp(0, 0) = prefactor_rz * ((k(0) * ct2 * (_kappa - 1.0 + 2.0 * st2sq)) +
690 (k(1) * st2 * (_kappa + 1.0 + 2.0 * ct2sq)));
691 aux_disp(0, 1) = prefactor_rz * ((k(0) * st2 * (_kappa + 1.0 - 2.0 * ct2sq)) -
692 (k(1) * ct2 * (_kappa - 1.0 - 2.0 * st2sq)));
693 aux_disp(0, 2) = prefactor_rz * k(2) * 4.0 * st2;
694 }
695}
Moose::CoordinateSystemType getBlockCoordSystem()
Real _theta
Angle of current point relative to the crack front.
Real _r
Radial distance from the current point to the crack front.
unsigned int _qp
Current quadrature point index.
RankFourTensorTempl< T > invSymm() const
void fillSymmetricIsotropicEandNu(const T &E, const T &nu)
const Real pi
VectorValue< Real > RealVectorValue

◆ computeQpIntegral()

template<bool is_ad>
Real InteractionIntegralTempl< is_ad >::computeQpIntegral ( const std::size_t  crack_front_point_index,
const Real  scalar_q,
const RealVectorValue &  grad_of_scalar_q 
)
protected

Compute the contribution of a specific quadrature point to a fracture integral for a point on the crack front.

Parameters
crack_front_point_indexIndex to the crack front point
scalar_qMagnitude of the q vector at the quadrature point
grad_of_scalar_qGradient of the magnitude of the q vector at the quadrature point
Returns
Contribution of this quadrature point to the integral

Definition at line 276 of file InteractionIntegral.C.

279{
280 // If q is zero, then dq is also zero, so all terms in the interaction integral would
281 // return zero. As such, let us avoid unnecessary, frequent computations
282 if (scalar_q < TOLERANCE * TOLERANCE * TOLERANCE)
283 return 0.0;
284
285 // In the crack front coordinate system, the crack direction is (1,0,0)
286 RealVectorValue crack_direction(1.0, 0.0, 0.0);
287
288 // Calculate (r,theta) position of qp relative to crack front
290 _q_point[_qp], crack_front_point_index, _r, _theta);
291
292 RankTwoTensor aux_stress;
293 RankTwoTensor aux_du;
294 RankTwoTensor aux_strain;
295 RankTwoTensor aux_disp;
296
298 computeAuxFields(aux_stress, aux_du, aux_strain, aux_disp);
299 else if (_sif_mode == SifMethod::T)
300 computeTFields(aux_stress, aux_du);
301
302 auto grad_disp = RankTwoTensor::initializeFromRows(
303 (*_grad_disp[0])[_qp], (*_grad_disp[1])[_qp], (*_grad_disp[2])[_qp]);
304
305 // Rotate stress, strain, displacement and temperature to crack front coordinate system
306 RealVectorValue grad_q_cf =
307 _crack_front_definition->rotateToCrackFrontCoords(grad_of_scalar_q, crack_front_point_index);
308 RankTwoTensor grad_disp_cf =
309 _crack_front_definition->rotateToCrackFrontCoords(grad_disp, crack_front_point_index);
311 MetaPhysicL::raw_value((_stress)[_qp]), crack_front_point_index);
313 MetaPhysicL::raw_value((_strain)[_qp]), crack_front_point_index);
314 RealVectorValue grad_temp_cf =
316
318 strain_cf(2, 2) = 0.0;
319
320 RankTwoTensor dq;
321 dq(0, 0) = crack_direction(0) * grad_q_cf(0);
322 dq(0, 1) = crack_direction(0) * grad_q_cf(1);
323 dq(0, 2) = crack_direction(0) * grad_q_cf(2);
324
325 // Calculate interaction integral terms
326
327 // Term1 = stress * x1-derivative of aux disp * dq
328 RankTwoTensor tmp1 = dq * stress_cf;
329 Real term1 = aux_du.doubleContraction(tmp1);
330
331 // Term2 = aux stress * x1-derivative of disp * dq
332 RankTwoTensor tmp2 = dq * aux_stress;
333 Real term2 = grad_disp_cf(0, 0) * tmp2(0, 0) + grad_disp_cf(1, 0) * tmp2(0, 1) +
334 grad_disp_cf(2, 0) * tmp2(0, 2);
335
336 // Term3 = aux stress * strain * dq_x (= stress * aux strain * dq_x)
337 Real term3 = -dq(0, 0) * aux_stress.doubleContraction(strain_cf);
338
339 // Term4 (thermal strain term) = q * aux_stress * alpha * dtheta_x
340 // - the term including the derivative of alpha is not implemented
341 Real term4 = 0.0;
342 if (_has_temp)
343 {
344 Real sigma_alpha =
345 aux_stress.doubleContraction(MetaPhysicL::raw_value((*_total_deigenstrain_dT)[_qp]));
346 term4 = scalar_q * sigma_alpha * grad_temp_cf(0);
347 }
348
349 Real term4a = 0.0; // Gradient of arbitrary eigenstrain material contribution
351 {
352 // Thermal strain gradient term in Nakamura and Parks, IJSS, 1992:
353 // alpha * dT/dx_k*aux_stress*scalar_q
354 // Generalization to the gradient of an arbitrary eigenstrain:
355 // d_eigenstrain/dx_k*aux_stress*scalar_q
356 const RealVectorValue & crack_dir =
357 _crack_front_definition->getCrackDirection(crack_front_point_index);
358 RankTwoTensor eigenstrain_grad_in_crack_dir =
360 term4a = scalar_q * aux_stress.doubleContraction(eigenstrain_grad_in_crack_dir);
361 }
362
363 // Gradient of arbitrary eigenstrain variable contribution.
364 // Note that, unlike approaches 4 and 4a, approach 4b can integrate any type of eigenstrain, i.e.
365 // it does not have to be thermal or volumetric.
366 Real term4b = 0.0;
367 // Term4b (eigen strain term) = q * aux_stress * d{eigen_strain}_x
369 {
371 I_x(0, 0) = 1.0;
373 I_xy(0, 1) = 1.0;
374 I_xy(1, 0) = 1.0;
376 I_y(1, 1) = 1.0;
378 I_z(2, 2) = 1.0;
379
380 const RealVectorValue & crack_dir =
381 _crack_front_definition->getCrackDirection(crack_front_point_index);
382
383 const auto eigenstrain_gradient_x =
384 I_x.mixedProductJkI((*_additional_eigenstrain_gradient_00)[_qp]);
385 const auto eigenstrain_gradient_xy =
386 I_xy.mixedProductJkI((*_additional_eigenstrain_gradient_01)[_qp]);
387 const auto eigenstrain_gradient_y =
388 I_y.mixedProductJkI((*_additional_eigenstrain_gradient_11)[_qp]);
389
390 GenericRankThreeTensor<is_ad> eigenstrain_gradient_z;
392 eigenstrain_gradient_z = I_z.mixedProductJkI((*_additional_eigenstrain_gradient_22)[_qp]);
393
394 RankTwoTensor eigenstrain_grad_in_crack_dir =
395 crack_dir * (MetaPhysicL::raw_value(eigenstrain_gradient_x) +
396 MetaPhysicL::raw_value(eigenstrain_gradient_xy) +
397 MetaPhysicL::raw_value(eigenstrain_gradient_y) +
398 MetaPhysicL::raw_value(eigenstrain_gradient_z));
399
400 GenericRankThreeTensor<is_ad> eigenstrain_gradient_xz;
401 GenericRankThreeTensor<is_ad> eigenstrain_gradient_yz;
402 // Add terms for three dimensions
403 if (_mesh.dimension() == 3)
404 {
405 // Add influence of xz and yz.
407 I_xz(0, 2) = I_xz(2, 0) = 1.0;
408 eigenstrain_gradient_xz = I_xz.mixedProductJkI((*_additional_eigenstrain_gradient_02)[_qp]);
410 I_yz(1, 2) = I_yz(2, 1) = 1.0;
411 eigenstrain_gradient_yz = I_yz.mixedProductJkI((*_additional_eigenstrain_gradient_12)[_qp]);
412
413 eigenstrain_grad_in_crack_dir = crack_dir * (MetaPhysicL::raw_value(eigenstrain_gradient_xz) +
414 MetaPhysicL::raw_value(eigenstrain_gradient_yz) +
415 MetaPhysicL::raw_value(eigenstrain_gradient_x) +
416 MetaPhysicL::raw_value(eigenstrain_gradient_xy) +
417 MetaPhysicL::raw_value(eigenstrain_gradient_y) +
418 MetaPhysicL::raw_value(eigenstrain_gradient_z));
419 }
420
421 term4b = scalar_q * aux_stress.doubleContraction(eigenstrain_grad_in_crack_dir);
422 }
423
424 Real term5 = 0.0; // Body force
425 if (_body_force)
426 {
427 // Body force term in Nakamura and Parks, IJSS, 1992:
428 // b_i*aux_du*crack_dir*scalar_q
429 const RealVectorValue & crack_dir =
430 _crack_front_definition->getCrackDirection(crack_front_point_index);
431 term5 = -scalar_q * MetaPhysicL::raw_value((*_body_force)[_qp]) * aux_du * crack_dir;
432 }
433
434 Real term6 = 0.0;
435 if (_fgm_crack && scalar_q != 0)
436 {
437 // See Equation 49 of J.-H. Kim and G. H. Paulino. Consistent formulations of the interaction
438 // integral method for fracture of functionally graded materials. Journal of Applied Mechanics,
439 // 72(3) 351-364 2004.
440
441 // Term 6_1 = Cijkl,j(x) epsilon_{kl}^{aux} disp_{i,1}
442 RankTwoTensor cijklj_epsilonkl_aux; // Temporary second order tensor.
443 RankFourTensor cijklj;
445 cijklj *= (*_functionally_graded_youngs_modulus_crack_dir_gradient)[_qp];
446 cijklj_epsilonkl_aux = cijklj * aux_strain;
447
448 const Real term6_a = grad_disp_cf(0, 0) * cijklj_epsilonkl_aux(0, 0) +
449 grad_disp_cf(1, 0) * cijklj_epsilonkl_aux(0, 1) +
450 grad_disp_cf(2, 0) * cijklj_epsilonkl_aux(0, 2);
451
452 // Term 6_2 = -Cijkl,1(x) epsilon_{kl} epsilon_{ij}^{aux}
453 RankTwoTensor cijkl1_epsilonkl;
454 cijkl1_epsilonkl = -cijklj * strain_cf;
455 const Real term6_b = cijkl1_epsilonkl.doubleContraction(aux_strain);
456
457 term6 = (term6_a + term6_b) * scalar_q;
458 }
459
460 // Add terms for possibly RZ (axisymmetric problem).
461 // See Nahta and Moran, 1993, Domain integrals for axisymmetric interface crack problems, 30(15)
462 // Note: Sign problem in Eq. (26). Also Kolosov constant is wrong in Eq. (13)
463 Real term7 = 0.0;
465 {
466 const Real u_r = (*_disp[0])[_qp];
467 const Real radius_qp = _q_point[_qp](0);
468
469 const Real term7a =
470 (u_r / radius_qp * aux_stress(2, 2) + aux_disp(0, 0) / radius_qp * stress_cf(2, 2) -
471 aux_stress.doubleContraction(strain_cf)) /
472 radius_qp;
473
474 // term7b1: sigma_aux_ralpha * u_alpha,r
475 const Real term7b1 = aux_stress(0, 0) * grad_disp_cf(0, 0) +
476 aux_stress(0, 1) * grad_disp_cf(1, 0) +
477 aux_stress(0, 2) * grad_disp_cf(2, 0);
478
479 const Real term7b = 1.0 / radius_qp *
480 (term7b1 - aux_stress(2, 2) * grad_disp_cf(0, 0) +
481 stress_cf(2, 2) * (aux_du(0, 0) - aux_disp(0, 0) / radius_qp));
482
483 term7 = (term7a + term7b) * scalar_q;
484 }
485
486 Real q_avg_seg = 1.0;
488 {
489 q_avg_seg =
492 2.0;
493 }
494
495 Real eq = term1 + term2 + term3 + term4 + term4a + term4b + term5 + term6 + term7;
496
498 {
499 const Real radius_qp = _q_point[_qp](0);
500 eq *= radius_qp;
501
502 std::size_t num_crack_front_points = _crack_front_definition->getNumCrackFrontPoints();
503 if (num_crack_front_points != 1)
504 mooseError("Crack front has more than one point, but this is a 2D-RZ problem. Please revise "
505 "your input file.");
506
507 const Point * crack_front_point = _crack_front_definition->getCrackFrontPoint(0);
508 eq = eq / (*crack_front_point)(0);
509 }
510
511 return eq / q_avg_seg;
512}
Moose::GenericType< RankThreeTensor, is_ad > GenericRankThreeTensor
const Point * getCrackFrontPoint(const std::size_t point_index) const
Get a Point object for a specified point on the crack front.
Real getCrackFrontBackwardSegmentLength(const std::size_t point_index) const
Get the length of the line segment on the crack front behind the specified position.
bool treatAs2D() const
Whether the fracture computations are treated as 2D for the model.
Real getCrackFrontForwardSegmentLength(const std::size_t point_index) const
Get the length of the line segment on the crack front ahead of the specified position.
std::size_t getNumCrackFrontPoints() const
Get the number of points defining the crack front as a set of line segments.
void calculateRThetaToCrackFront(const Point qp, const std::size_t point_index, Real &r, Real &theta) const
Calculate r and theta of a point in the crack front polar coordinates for a given crack point index.
const RealVectorValue & getCrackDirection(const std::size_t point_index) const
Get the unit vector of the crack extension direction at the specified position.
RealVectorValue rotateToCrackFrontCoords(const RealVectorValue vector, const std::size_t point_index) const
Rotate a vector in the global coordinate coordinate system to the crack front local coordinate system...
const MooseArray< Point > & _q_point
void computeTFields(RankTwoTensor &aux_stress, RankTwoTensor &grad_disp)
Compute the auxiliary fields, including the auxiliary stress and the gradient of the auxiliary displa...
void computeAuxFields(RankTwoTensor &aux_stress, RankTwoTensor &grad_disp, RankTwoTensor &aux_strain, RankTwoTensor &aux_disp)
Compute the auxiliary fields, including the auxiliary stress and the gradient of the auxiliary displa...
static RankTwoTensorTempl initializeFromRows(const libMesh::TypeVector< T > &row0, const libMesh::TypeVector< T > &row1, const libMesh::TypeVector< T > &row2)
T doubleContraction(const RankTwoTensorTempl< T > &a) const
auto raw_value(const Eigen::Map< T > &in)

◆ computeTFields()

template<bool is_ad>
void InteractionIntegralTempl< is_ad >::computeTFields ( RankTwoTensor aux_stress,
RankTwoTensor grad_disp 
)
protected

Compute the auxiliary fields, including the auxiliary stress and the gradient of the auxiliary displacement for the current point (as defined by the combination of _r and _theta) for the T stress.

Parameters
aux_stressAuxiliary stress – computed in this method
grad_dispGradient of auxiliary displacement – computed in this method

Definition at line 699 of file InteractionIntegral.C.

701{
702
703 Real t = _theta;
704 Real st = std::sin(t);
705 Real ct = std::cos(t);
706 Real stsq = Utility::pow<2>(st);
707 Real ctsq = Utility::pow<2>(ct);
708 Real ctcu = Utility::pow<3>(ct);
709 Real oneOverPiR = 1.0 / (libMesh::pi * _r);
710
711 aux_stress.zero();
712 aux_stress(0, 0) = -oneOverPiR * ctcu;
713 aux_stress(0, 1) = -oneOverPiR * st * ctsq;
714 aux_stress(1, 0) = -oneOverPiR * st * ctsq;
715 aux_stress(1, 1) = -oneOverPiR * ct * stsq;
716 aux_stress(2, 2) = -oneOverPiR * _poissons_ratio * (ctcu + ct * stsq);
717
718 grad_disp.zero();
719 grad_disp(0, 0) = oneOverPiR / (4.0 * _youngs_modulus) *
720 (ct * (4.0 * Utility::pow<2>(_poissons_ratio) - 3.0 + _poissons_ratio) -
721 std::cos(3.0 * t) * (1.0 + _poissons_ratio));
722 grad_disp(0, 1) = -oneOverPiR / (4.0 * _youngs_modulus) *
723 (st * (4.0 * Utility::pow<2>(_poissons_ratio) - 3.0 + _poissons_ratio) +
724 std::sin(3.0 * t) * (1.0 + _poissons_ratio));
725}

◆ execute()

template<bool is_ad>
void InteractionIntegralTempl< is_ad >::execute ( )
overridevirtual

Implements ElementVectorPostprocessor.

Definition at line 516 of file InteractionIntegral.C.

517{
518 // calculate phi and dphi for this element
519 const std::size_t dim = _current_elem->dim();
520 std::unique_ptr<FEBase> fe(FEBase::build(dim, _fe_type));
521 fe->attach_quadrature_rule(const_cast<QBase *>(_qrule));
522 _phi_curr_elem = &fe->get_phi();
523 _dphi_curr_elem = &fe->get_dphi();
524 fe->reinit(_current_elem);
525
526 // calculate q for all nodes in this element
527 std::size_t ring_base = (_q_function_type == QMethod::Topology) ? 0 : 1;
528
529 for (auto icfp = beginIndex(_interaction_integral); icfp < _interaction_integral.size(); icfp++)
530 {
531 _q_curr_elem.clear();
532 for (std::size_t i = 0; i < _current_elem->n_nodes(); ++i)
533 {
534 const Node * this_node = _current_elem->node_ptr(i);
535 Real q_this_node;
536
539 icfp, _ring_index - ring_base, this_node);
540 else // QMethod::Topology
542 icfp, _ring_index - ring_base, this_node);
543
544 _q_curr_elem.push_back(q_this_node);
545 }
546
547 for (_qp = 0; _qp < _qrule->n_points(); _qp++)
548 {
549 Real scalar_q = 0.0;
550 RealVectorValue grad_of_scalar_q(0.0, 0.0, 0.0);
551
552 for (std::size_t i = 0; i < _current_elem->n_nodes(); ++i)
553 {
554 scalar_q += (*_phi_curr_elem)[i][_qp] * _q_curr_elem[i];
555
556 for (std::size_t j = 0; j < _current_elem->dim(); ++j)
557 grad_of_scalar_q(j) += (*_dphi_curr_elem)[i][_qp](j) * _q_curr_elem[i];
558 }
559
561 _interaction_integral[icfp] +=
562 _JxW[_qp] * _coord[_qp] * computeQpIntegral(icfp, scalar_q, grad_of_scalar_q);
563 else
564 _interaction_integral[icfp] +=
565 _JxW[_qp] * computeQpIntegral(icfp, scalar_q, grad_of_scalar_q);
566 }
567 }
568}
unsigned int dim
Real DomainIntegralTopologicalQFunction(std::size_t crack_front_point_index, std::size_t ring_index, const Node *const current_node) const
Compute the q function for the case where it is defined through element connectivity.
Real DomainIntegralQFunction(std::size_t crack_front_point_index, std::size_t ring_index, const Node *const current_node) const
Compute the q function for the case where it is defined geometrically.
const QBase *const & _qrule
const Elem *const & _current_elem
const MooseArray< Real > & _coord
const MooseArray< Real > & _JxW
const std::vector< std::vector< libMesh::RealGradient > > * _dphi_curr_elem
Vector of gradients of shape function values for the current element.
std::vector< Real > _q_curr_elem
Vector of q function values for the nodes in the current element.
const std::vector< std::vector< Real > > * _phi_curr_elem
Vector of shape function values for the current element.
Real computeQpIntegral(const std::size_t crack_front_point_index, const Real scalar_q, const RealVectorValue &grad_of_scalar_q)
Compute the contribution of a specific quadrature point to a fracture integral for a point on the cra...

◆ finalize()

template<bool is_ad>
void InteractionIntegralTempl< is_ad >::finalize ( )
overridevirtual

Reimplemented from ElementVectorPostprocessor.

Definition at line 572 of file InteractionIntegral.C.

573{
575
576 for (auto i = beginIndex(_interaction_integral); i < _interaction_integral.size(); ++i)
577 {
579 _interaction_integral[i] *= 2.0;
580
581 const auto cfp = _crack_front_definition->getCrackFrontPoint(i);
582 _x[i] = (*cfp)(0);
583 _y[i] = (*cfp)(1);
584 _z[i] = (*cfp)(2);
585
588 else
590
594
596 }
597}
Real getCrackFrontTangentialStrain(const std::size_t node_index) const
Get the strain in the direction tangent to the crack front at a given point.
Real getDistanceAlongFront(const std::size_t point_index) const
Get the distance along the crack front from the beginning of the crack to the specified position.
Real getAngleAlongFront(const std::size_t point_index) const
Get the angle along the crack front from the beginning of the crack to the specified position.

◆ initialize()

template<bool is_ad>
void InteractionIntegralTempl< is_ad >::initialize ( )
overridevirtual

Implements ElementVectorPostprocessor.

Definition at line 253 of file InteractionIntegral.C.

254{
255 std::size_t num_pts;
256 if (_treat_as_2d && _using_mesh_cutter == false)
257 num_pts = 1;
258 else
260
261 _x.assign(num_pts, 0.0);
262 _y.assign(num_pts, 0.0);
263 _z.assign(num_pts, 0.0);
264 _position.assign(num_pts, 0.0);
265 _interaction_integral.assign(num_pts, 0.0);
266
267 for (const auto * fe_var : _fe_vars)
268 {
269 if (fe_var->feType() != _fe_type)
270 mooseError("All coupled displacements must have the same type");
271 }
272}
bool _using_mesh_cutter
Is the crack defined by an XFEM cutter mesh.

◆ initialSetup()

template<bool is_ad>
void InteractionIntegralTempl< is_ad >::initialSetup ( )
overridevirtual

Reimplemented from ElementVectorPostprocessor.

Definition at line 245 of file InteractionIntegral.C.

246{
249}
bool usingMeshCutter() const
Is the crack defined by a mesh cutter object.

◆ qFunctionType()

template<bool is_ad>
MooseEnum InteractionIntegralTempl< is_ad >::qFunctionType ( )
static

Get the MooseEnum defining the options for how the q function is defined.

Returns
MooseEnum with options for q function

Definition at line 25 of file InteractionIntegral.C.

26{
27 return MooseEnum("Geometry Topology", "Geometry");
28}

Referenced by InteractionIntegralTempl< is_ad >::validParams().

◆ sifModeType()

template<bool is_ad>
MooseEnum InteractionIntegralTempl< is_ad >::sifModeType ( )
static

Get the MooseEnum defining the options for the integral to be computed.

Returns
MooseEnum with options for the integral to be computed

Definition at line 32 of file InteractionIntegral.C.

33{
34 return MooseEnum("KI KII KIII T", "KI");
35}

Referenced by InteractionIntegralTempl< is_ad >::validParams().

◆ threadJoin()

template<bool is_ad>
void InteractionIntegralTempl< is_ad >::threadJoin ( const UserObject y)
overridevirtual

Implements ElementVectorPostprocessor.

Definition at line 601 of file InteractionIntegral.C.

602{
603 const auto & uo = static_cast<const InteractionIntegralTempl<is_ad> &>(y);
604
605 for (auto i = beginIndex(_interaction_integral); i < _interaction_integral.size(); ++i)
607}
const std::vector< double > y
This vectorpostprocessor computes the Interaction Integral, which is used to compute various fracture...

◆ validParams()

template<bool is_ad>
InputParameters InteractionIntegralTempl< is_ad >::validParams ( )
static

Definition at line 39 of file InteractionIntegral.C.

40{
43 "displacements",
44 "The displacements appropriate for the simulation geometry and coordinate system");
45 params.addCoupledVar("temperature",
46 "The temperature (optional). Must be provided to correctly compute "
47 "stress intensity factors in models with thermal strain gradients.");
48 params.addParam<MaterialPropertyName>(
49 "functionally_graded_youngs_modulus",
50 "Spatially varying elasticity modulus variable. This input is required when "
51 "using the functionally graded material capability.");
52 params.addParam<MaterialPropertyName>(
53 "functionally_graded_youngs_modulus_crack_dir_gradient",
54 "Gradient of the spatially varying Young's modulus provided in "
55 "'functionally_graded_youngs_modulus' in the direction of crack extension.");
56 params.addRequiredParam<UserObjectName>("crack_front_definition",
57 "The CrackFrontDefinition user object name");
58 MooseEnum position_type("Angle Distance", "Distance");
59 params.addParam<MooseEnum>(
60 "position_type",
61 position_type,
62 "The method used to calculate position along crack front. Options are: " +
63 position_type.getRawNames());
64 params.addRequiredParam<Real>(
65 "K_factor", "Conversion factor between interaction integral and stress intensity factor K");
66 params.addParam<unsigned int>("symmetry_plane",
67 "Account for a symmetry plane passing through "
68 "the plane of the crack, normal to the specified "
69 "axis (0=x, 1=y, 2=z)");
70 params.addRequiredParam<Real>("poissons_ratio", "Poisson's ratio for the material.");
71 params.addRequiredParam<Real>("youngs_modulus", "Young's modulus of the material.");
72 params.set<bool>("use_displaced_mesh") = false;
73 params.addRequiredParam<unsigned int>("ring_index", "Ring ID");
74 params.addParam<MooseEnum>("q_function_type",
76 "The method used to define the integration domain. Options are: " +
79 "sif_mode",
81 "Stress intensity factor to calculate. Choices are: " +
83 params.addParam<MaterialPropertyName>("eigenstrain_gradient",
84 "Material defining gradient of eigenstrain tensor");
85 params.addParam<MaterialPropertyName>("body_force", "Material defining body force");
86 params.addCoupledVar("additional_eigenstrain_00",
87 "Optional additional eigenstrain variable that will be accounted for in the "
88 "interaction integral (component 00 or XX).");
89 params.addCoupledVar("additional_eigenstrain_01",
90 "Optional additional eigenstrain variable that will be accounted for in the "
91 "interaction integral (component 01 or XY).");
92 params.addCoupledVar("additional_eigenstrain_11",
93 "Optional additional eigenstrain variable that will be accounted for in the "
94 "interaction integral (component 11 or YY).");
95 params.addCoupledVar("additional_eigenstrain_22",
96 "Optional additional eigenstrain variable that will be accounted for in the "
97 "interaction integral (component 22 or ZZ).");
98 params.addCoupledVar("additional_eigenstrain_02",
99 "Optional additional eigenstrain variable that will be accounted for in the "
100 "interaction integral (component 02 or XZ).");
101 params.addCoupledVar("additional_eigenstrain_12",
102 "Optional additional eigenstrain variable that will be accounted for in the "
103 "interaction integral (component 12 or XZ).");
105 "additional_eigenstrain_00 additional_eigenstrain_01 additional_eigenstrain_11 "
106 "additional_eigenstrain_22 additional_eigenstrain_02 additional_eigenstrain_12",
107 "Generic eigenstrains for the computation of the interaction integral.");
108 params.addClassDescription(
109 "Computes the interaction integral, which is used to compute various "
110 "fracture mechanics parameters at a crack tip, including KI, KII, KIII, "
111 "and the T stress.");
112 return params;
113}
static InputParameters validParams()
void addParamNamesToGroup(const std::string &space_delim_names, const std::string group_name)
void addRequiredCoupledVar(const std::string &name, const std::string &doc_string)
void addRequiredParam(const std::string &name, const std::string &doc_string)
void addParam(const std::string &name, const std::initializer_list< typename T::value_type > &value, const std::string &doc_string)
void addClassDescription(const std::string &doc_string)
T & set(const std::string &name, bool quiet_mode=false)
void addCoupledVar(const std::string &name, const std::string &doc_string)
static MooseEnum qFunctionType()
Get the MooseEnum defining the options for how the q function is defined.
static MooseEnum sifModeType()
Get the MooseEnum defining the options for the integral to be computed.
std::string getRawNames() const

Member Data Documentation

◆ _additional_eigenstrain_gradient_00

template<bool is_ad>
const VariableGradient* InteractionIntegralTempl< is_ad >::_additional_eigenstrain_gradient_00
protected

Gradient used to add contribution to the interaction integral (XX)

Definition at line 131 of file InteractionIntegral.h.

Referenced by InteractionIntegralTempl< is_ad >::InteractionIntegralTempl().

◆ _additional_eigenstrain_gradient_01

template<bool is_ad>
const VariableGradient* InteractionIntegralTempl< is_ad >::_additional_eigenstrain_gradient_01
protected

Gradient used to add contribution to the interaction integral (XY)

Definition at line 133 of file InteractionIntegral.h.

Referenced by InteractionIntegralTempl< is_ad >::InteractionIntegralTempl().

◆ _additional_eigenstrain_gradient_02

template<bool is_ad>
const VariableGradient* InteractionIntegralTempl< is_ad >::_additional_eigenstrain_gradient_02
protected

Gradient used to add contribution to the interaction integral (XZ)

Definition at line 139 of file InteractionIntegral.h.

Referenced by InteractionIntegralTempl< is_ad >::InteractionIntegralTempl().

◆ _additional_eigenstrain_gradient_11

template<bool is_ad>
const VariableGradient* InteractionIntegralTempl< is_ad >::_additional_eigenstrain_gradient_11
protected

Gradient used to add contribution to the interaction integral (YY)

Definition at line 135 of file InteractionIntegral.h.

Referenced by InteractionIntegralTempl< is_ad >::InteractionIntegralTempl().

◆ _additional_eigenstrain_gradient_12

template<bool is_ad>
const VariableGradient* InteractionIntegralTempl< is_ad >::_additional_eigenstrain_gradient_12
protected

Gradient used to add contribution to the interaction integral (YZ)

Definition at line 141 of file InteractionIntegral.h.

Referenced by InteractionIntegralTempl< is_ad >::InteractionIntegralTempl().

◆ _additional_eigenstrain_gradient_22

template<bool is_ad>
const VariableGradient* InteractionIntegralTempl< is_ad >::_additional_eigenstrain_gradient_22
protected

Gradient used to add contribution to the interaction integral (ZZ)

Definition at line 137 of file InteractionIntegral.h.

Referenced by InteractionIntegralTempl< is_ad >::InteractionIntegralTempl().

◆ _body_force

template<bool is_ad>
const MaterialProperty<RealVectorValue>* InteractionIntegralTempl< is_ad >::_body_force
protected

◆ _crack_front_definition

template<bool is_ad>
const CrackFrontDefinition* const InteractionIntegralTempl< is_ad >::_crack_front_definition
protected

Pointer to the crack front definition object.

Definition at line 89 of file InteractionIntegral.h.

◆ _disp

template<bool is_ad>
std::vector<const VariableValue *> InteractionIntegralTempl< is_ad >::_disp
protected

Displacement variables.

Definition at line 103 of file InteractionIntegral.h.

◆ _dphi_curr_elem

template<bool is_ad>
const std::vector<std::vector<libMesh::RealGradient> >* InteractionIntegralTempl< is_ad >::_dphi_curr_elem
protected

Vector of gradients of shape function values for the current element.

Definition at line 147 of file InteractionIntegral.h.

◆ _eigenstrain_gradient

template<bool is_ad>
const GenericMaterialProperty<RankThreeTensor, is_ad>* InteractionIntegralTempl< is_ad >::_eigenstrain_gradient
protected

Pointers to optionally-used eigenstrain gradient and body force.

Definition at line 183 of file InteractionIntegral.h.

Referenced by InteractionIntegralTempl< is_ad >::InteractionIntegralTempl().

◆ _fe_type

template<bool is_ad>
const libMesh::FEType& InteractionIntegralTempl< is_ad >::_fe_type
protected

FEType object defining order and family of displacement variables.

Definition at line 101 of file InteractionIntegral.h.

◆ _fe_vars

template<bool is_ad>
std::vector<MooseVariableFEBase *> InteractionIntegralTempl< is_ad >::_fe_vars
protected

Vector of all coupled variables.

Definition at line 99 of file InteractionIntegral.h.

◆ _fgm_crack

template<bool is_ad>
const bool InteractionIntegralTempl< is_ad >::_fgm_crack
protected

Whether to consider interaction integral and material properties for a crack in functionally graded material.

Definition at line 123 of file InteractionIntegral.h.

◆ _functionally_graded_youngs_modulus

template<bool is_ad>
const MaterialProperty<Real>* InteractionIntegralTempl< is_ad >::_functionally_graded_youngs_modulus
protected

Spatial elasticity modulus variable for FGM.

Definition at line 113 of file InteractionIntegral.h.

Referenced by InteractionIntegralTempl< is_ad >::InteractionIntegralTempl().

◆ _functionally_graded_youngs_modulus_crack_dir_gradient

template<bool is_ad>
const MaterialProperty<Real>* InteractionIntegralTempl< is_ad >::_functionally_graded_youngs_modulus_crack_dir_gradient
protected

Spatial derivative of the youngs modulus in the crack direction.

Definition at line 111 of file InteractionIntegral.h.

Referenced by InteractionIntegralTempl< is_ad >::InteractionIntegralTempl().

◆ _grad_disp

template<bool is_ad>
std::vector<const VariableGradient *> InteractionIntegralTempl< is_ad >::_grad_disp
protected

Gradient of displacements.

Definition at line 105 of file InteractionIntegral.h.

Referenced by InteractionIntegralTempl< is_ad >::InteractionIntegralTempl().

◆ _grad_temp

template<bool is_ad>
const VariableGradient& InteractionIntegralTempl< is_ad >::_grad_temp
protected

Gradient of temperature.

Definition at line 109 of file InteractionIntegral.h.

◆ _has_additional_eigenstrain

template<bool is_ad>
bool InteractionIntegralTempl< is_ad >::_has_additional_eigenstrain
protected

Whether the user chooses to add other eigenstrain influence (e.g. irradiation-induced)

Definition at line 129 of file InteractionIntegral.h.

Referenced by InteractionIntegralTempl< is_ad >::InteractionIntegralTempl().

◆ _has_symmetry_plane

template<bool is_ad>
bool InteractionIntegralTempl< is_ad >::_has_symmetry_plane
protected

Whether the crack plane is also a symmetry plane in the model.

Definition at line 117 of file InteractionIntegral.h.

◆ _has_temp

template<bool is_ad>
const bool InteractionIntegralTempl< is_ad >::_has_temp
protected

Whether the temperature variable is coupled.

Definition at line 107 of file InteractionIntegral.h.

Referenced by InteractionIntegralTempl< is_ad >::InteractionIntegralTempl().

◆ _interaction_integral

template<bool is_ad>
VectorPostprocessorValue& InteractionIntegralTempl< is_ad >::_interaction_integral
protected

◆ _K_factor

template<bool is_ad>
Real InteractionIntegralTempl< is_ad >::_K_factor
protected

Conversion factor applied to convert interaction integral to stress intensity factor K.

Definition at line 115 of file InteractionIntegral.h.

◆ _kappa

template<bool is_ad>
Real InteractionIntegralTempl< is_ad >::_kappa
protected

Kappa Lame constant.

Definition at line 149 of file InteractionIntegral.h.

Referenced by InteractionIntegralTempl< is_ad >::InteractionIntegralTempl().

◆ _ndisp

template<bool is_ad>
std::size_t InteractionIntegralTempl< is_ad >::_ndisp
protected

Number of displacement components.

Definition at line 87 of file InteractionIntegral.h.

Referenced by InteractionIntegralTempl< is_ad >::InteractionIntegralTempl().

◆ _phi_curr_elem

template<bool is_ad>
const std::vector<std::vector<Real> >* InteractionIntegralTempl< is_ad >::_phi_curr_elem
protected

Vector of shape function values for the current element.

Definition at line 145 of file InteractionIntegral.h.

◆ _poissons_ratio

template<bool is_ad>
Real InteractionIntegralTempl< is_ad >::_poissons_ratio
protected

Poisson's ratio of the material.

Definition at line 119 of file InteractionIntegral.h.

Referenced by InteractionIntegralTempl< is_ad >::InteractionIntegralTempl().

◆ _position

template<bool is_ad>
VectorPostprocessorValue& InteractionIntegralTempl< is_ad >::_position
protected

Definition at line 177 of file InteractionIntegral.h.

◆ _position_type

template<bool is_ad>
enum InteractionIntegralTempl::PositionType InteractionIntegralTempl< is_ad >::_position_type
protected

◆ _q_curr_elem

template<bool is_ad>
std::vector<Real> InteractionIntegralTempl< is_ad >::_q_curr_elem
protected

Vector of q function values for the nodes in the current element.

Definition at line 143 of file InteractionIntegral.h.

◆ _q_function_type

template<bool is_ad>
enum InteractionIntegralTempl::QMethod InteractionIntegralTempl< is_ad >::_q_function_type
protected

◆ _qp

template<bool is_ad>
unsigned int InteractionIntegralTempl< is_ad >::_qp
protected

Current quadrature point index.

Definition at line 157 of file InteractionIntegral.h.

◆ _r

template<bool is_ad>
Real InteractionIntegralTempl< is_ad >::_r
protected

Radial distance from the current point to the crack front.

Definition at line 153 of file InteractionIntegral.h.

◆ _ring_index

template<bool is_ad>
std::size_t InteractionIntegralTempl< is_ad >::_ring_index
protected

Index of the ring for the integral computed by this object.

Definition at line 125 of file InteractionIntegral.h.

◆ _shear_modulus

template<bool is_ad>
Real InteractionIntegralTempl< is_ad >::_shear_modulus
protected

Shear modulus.

Definition at line 151 of file InteractionIntegral.h.

Referenced by InteractionIntegralTempl< is_ad >::InteractionIntegralTempl().

◆ _sif_mode

template<bool is_ad>
enum InteractionIntegralTempl::SifMethod InteractionIntegralTempl< is_ad >::_sif_mode
protected

◆ _strain

template<bool is_ad>
const GenericMaterialProperty<RankTwoTensor, is_ad>& InteractionIntegralTempl< is_ad >::_strain
protected

Reference to the strain tensor computed by the material models.

Definition at line 97 of file InteractionIntegral.h.

◆ _stress

template<bool is_ad>
const GenericMaterialProperty<RankTwoTensor, is_ad>& InteractionIntegralTempl< is_ad >::_stress
protected

Reference to the stress tensor computed by the material models.

Definition at line 95 of file InteractionIntegral.h.

◆ _theta

template<bool is_ad>
Real InteractionIntegralTempl< is_ad >::_theta
protected

Angle of current point relative to the crack front.

Definition at line 155 of file InteractionIntegral.h.

◆ _total_deigenstrain_dT

template<bool is_ad>
const GenericMaterialProperty<RankTwoTensor, is_ad>* const InteractionIntegralTempl< is_ad >::_total_deigenstrain_dT
protected

Derivative of the total eigenstrain with respect to temperature.

Definition at line 127 of file InteractionIntegral.h.

Referenced by InteractionIntegralTempl< is_ad >::InteractionIntegralTempl().

◆ _treat_as_2d

template<bool is_ad>
bool InteractionIntegralTempl< is_ad >::_treat_as_2d
protected

Whether to treat a model as 2D for computation of fracture integrals.

Definition at line 91 of file InteractionIntegral.h.

◆ _using_mesh_cutter

template<bool is_ad>
bool InteractionIntegralTempl< is_ad >::_using_mesh_cutter
protected

Is the crack defined by an XFEM cutter mesh.

Definition at line 93 of file InteractionIntegral.h.

◆ _x

template<bool is_ad>
VectorPostprocessorValue& InteractionIntegralTempl< is_ad >::_x
protected

Vectors computed by this VectorPostprocessor: x,y,z coordinates, position of nodes along crack front, and interaction integral.

Definition at line 174 of file InteractionIntegral.h.

◆ _y

template<bool is_ad>
VectorPostprocessorValue& InteractionIntegralTempl< is_ad >::_y
protected

Definition at line 175 of file InteractionIntegral.h.

◆ _youngs_modulus

template<bool is_ad>
Real InteractionIntegralTempl< is_ad >::_youngs_modulus
protected

Young's modulus of the material.

Definition at line 121 of file InteractionIntegral.h.

Referenced by InteractionIntegralTempl< is_ad >::InteractionIntegralTempl().

◆ _z

template<bool is_ad>
VectorPostprocessorValue& InteractionIntegralTempl< is_ad >::_z
protected

Definition at line 176 of file InteractionIntegral.h.


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