https://mooseframework.inl.gov
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | 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
ComputeDynamicFrictionalForceLMMechanicalContact Class Reference

Computes the mortar tangential frictional forces for dynamic simulations. More...

#include <ComputeDynamicFrictionalForceLMMechanicalContact.h>

Inheritance diagram for ComputeDynamicFrictionalForceLMMechanicalContact:
[legend]

Public Types

enum  ResidualTagType
 
typedef DataFileName DataFileParameterType
 

Public Member Functions

 ComputeDynamicFrictionalForceLMMechanicalContact (const InputParameters &parameters)
 
void residualSetup () override
 
void post () override
 
void incorrectEdgeDroppingPost (const std::unordered_set< const Node * > &inactive_lm_nodes) override
 Copy of the post routine but that skips assembling inactive nodes.
 
const MooseVariable & variable () const override
 
const MooseVariable * variablePtr () const
 
bool useDual () const
 
void zeroInactiveLMDofs (const std::unordered_set< const Node * > &inactive_lm_nodes, const std::unordered_set< const Elem * > &inactive_lm_elems)
 
virtual bool addCouplingEntriesToJacobian ()
 
virtual void subdomainSetup () override final
 
virtual void residualEnd ()
 
void prepareNeighborShapes (unsigned int var_num)
 
virtual void computeOffDiagJacobian (unsigned int)
 
virtual void computeOffDiagJacobianScalar (unsigned int)
 
virtual void computeNonlocalJacobian ()
 
virtual void computeNonlocalOffDiagJacobian (unsigned int)
 
const SubProblem & subProblem () const
 
virtual void prepareShapes (unsigned int var_num)
 
virtual std::set< std::string > additionalROVariables ()
 
virtual bool enabled () const
 
std::shared_ptr< MooseObject > getSharedPtr ()
 
std::shared_ptr< const MooseObject > getSharedPtr () const
 
bool isKokkosObject () const
 
MooseApp & getMooseApp () 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 InputParameters & parameters () const
 
const hit::Node * getHitNode () const
 
bool hasBase () const
 
const std::string & getBase () const
 
const T & getParam (const std::string &name) const
 
std::vector< std::pair< T1, T2 > > getParam (const std::string &param1, const std::string &param2) const
 
const T * queryParam (const std::string &name) const
 
const T & getRenamedParam (const std::string &old_name, const std::string &new_name) const
 
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 initialSetup ()
 
virtual void customSetup (const ExecFlagType &)
 
const ExecFlagEnum & getExecuteOnEnum () const
 
const Function & getFunction (const std::string &name) const
 
const Function & getFunctionByName (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 T & getKokkosFunction (const std::string &name) const
 
Moose::Kokkos::Function getKokkosFunctionByName (const FunctionName &name) const
 
const T & getKokkosFunctionByName (const FunctionName &name) const
 
bool hasKokkosFunction (const std::string &param_name) const
 
bool hasKokkosFunctionByName (const FunctionName &name) const
 
UserObjectName getUserObjectName (const std::string &param_name) const
 
const T & getUserObject (const std::string &param_name, bool is_dependency=true) const
 
const T & getUserObjectByName (const UserObjectName &object_name, bool is_dependency=true) const
 
const UserObjectBase & getUserObjectBase (const std::string &param_name, bool is_dependency=true) const
 
const UserObjectBase & getUserObjectBaseByName (const UserObjectName &object_name, bool is_dependency=true) const
 
bool isImplicit ()
 
Moose::StateArg determineState () const
 
bool isDefaultPostprocessorValue (const std::string &param_name, const unsigned int index=0) const
 
bool hasPostprocessor (const std::string &param_name, const unsigned int index=0) const
 
bool hasPostprocessorByName (const PostprocessorName &name) const
 
std::size_t coupledPostprocessors (const std::string &param_name) const
 
const PostprocessorName & getPostprocessorName (const std::string &param_name, const unsigned int index=0) const
 
const VectorPostprocessorValue & getVectorPostprocessorValue (const std::string &param_name, const std::string &vector_name) const
 
const VectorPostprocessorValue & getVectorPostprocessorValue (const std::string &param_name, const std::string &vector_name, bool needs_broadcast) const
 
const VectorPostprocessorValue & getVectorPostprocessorValueByName (const VectorPostprocessorName &name, const std::string &vector_name) const
 
const VectorPostprocessorValue & getVectorPostprocessorValueByName (const VectorPostprocessorName &name, const std::string &vector_name, bool needs_broadcast) const
 
const VectorPostprocessorValue & getVectorPostprocessorValueOld (const std::string &param_name, const std::string &vector_name) const
 
const VectorPostprocessorValue & getVectorPostprocessorValueOld (const std::string &param_name, const std::string &vector_name, bool needs_broadcast) const
 
const VectorPostprocessorValue & getVectorPostprocessorValueOldByName (const VectorPostprocessorName &name, const std::string &vector_name) const
 
const VectorPostprocessorValue & getVectorPostprocessorValueOldByName (const VectorPostprocessorName &name, const std::string &vector_name, bool needs_broadcast) const
 
const ScatterVectorPostprocessorValue & getScatterVectorPostprocessorValue (const std::string &param_name, const std::string &vector_name) const
 
const ScatterVectorPostprocessorValue & getScatterVectorPostprocessorValueByName (const VectorPostprocessorName &name, const std::string &vector_name) const
 
const ScatterVectorPostprocessorValue & getScatterVectorPostprocessorValueOld (const std::string &param_name, const std::string &vector_name) const
 
const ScatterVectorPostprocessorValue & getScatterVectorPostprocessorValueOldByName (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
 
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 void meshChanged ()
 
void useVectorTag (const TagName &tag_name, VectorTagsKey)
 
void useVectorTag (TagID tag_id, VectorTagsKey)
 
void useMatrixTag (const TagName &tag_name, MatrixTagsKey)
 
void useMatrixTag (TagID tag_id, MatrixTagsKey)
 
bool isVectorTagged ()
 
bool isMatrixTagged ()
 
bool hasVectorTags () const
 
const std::set< TagID > & getVectorTags (VectorTagsKey) const
 
const std::set< TagID > & getMatrixTags (MatrixTagsKey) const
 
virtual const VariableValue & coupledNeighborValue (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const VariableValue * > coupledNeighborValues (const std::string &var_name) const
 
std::vector< const VariableValue * > coupledNeighborValuesOld (const std::string &var_name) const
 
std::vector< const VariableValue * > coupledNeighborValuesOlder (const std::string &var_name) const
 
virtual const ADVariableValue & adCoupledNeighborValue (const std::string &var_name, unsigned int comp=0) const
 
const auto & coupledGenericNeighborValue (const std::string &var_name, unsigned int comp=0) const
 
const auto & coupledGenericNeighborGradient (const std::string &var_name, unsigned int comp=0) const
 
virtual const ADVariableValue & adCoupledNeighborValueDot (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const ADVariableValue * > adCoupledNeighborValues (const std::string &var_name) const
 
virtual const ADVectorVariableValue & adCoupledVectorNeighborValue (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValue & coupledNeighborValueDot (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValue & coupledNeighborValueDotDu (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValue & coupledNeighborValueOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValue & coupledNeighborValueOlder (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableGradient & coupledNeighborGradient (const std::string &var_name, unsigned int comp=0) const
 
virtual std::vector< const VariableGradient * > coupledNeighborGradients (const std::string &var_name) const
 
virtual const VariableGradient & coupledNeighborGradientOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableGradient & coupledNeighborGradientOlder (const std::string &var_name, unsigned int comp=0) const
 
virtual const ADVariableGradient & adCoupledNeighborGradient (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableGradient & coupledVectorNeighborGradient (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableGradient & coupledVectorNeighborGradientOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableGradient & coupledVectorNeighborGradientOlder (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableValue & coupledArrayNeighborValue (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableGradient & coupledArrayNeighborGradient (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableGradient & coupledArrayNeighborGradientOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableGradient & coupledArrayNeighborGradientOlder (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableSecond & coupledNeighborSecond (const std::string &var_name, unsigned int i=0) const
 
virtual const VariableValue & coupledNeighborDofValues (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValue & coupledNeighborDofValuesOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValue & coupledNeighborDofValuesOlder (const std::string &var_name, unsigned int comp=0) const
 
const std::unordered_map< std::string, std::vector< MooseVariableFieldBase * > > & getCoupledVars () const
 
const std::vector< MooseVariableFieldBase * > & getCoupledMooseVars () const
 
const std::vector< MooseVariable * > & getCoupledStandardMooseVars () const
 
const std::vector< VectorMooseVariable * > & getCoupledVectorMooseVars () const
 
const std::vector< ArrayMooseVariable * > & getCoupledArrayMooseVars () const
 
void addFEVariableCoupleableVectorTag (TagID tag)
 
void addFEVariableCoupleableMatrixTag (TagID tag)
 
std::set< TagID > & getFEVariableCoupleableVectorTags ()
 
const std::set< TagID > & getFEVariableCoupleableVectorTags () const
 
std::set< TagID > & getFEVariableCoupleableMatrixTags ()
 
const std::set< TagID > & getFEVariableCoupleableMatrixTags () const
 
auto & getWritableCoupledVariables () const
 
bool hasWritableCoupledVariables () const
 
const ADVariableValue * getADDefaultValue (const std::string &var_name) const
 
const ADVectorVariableValue * getADDefaultVectorValue (const std::string &var_name) const
 
const ADVariableGradient & getADDefaultGradient () const
 
const ADVectorVariableGradient & getADDefaultVectorGradient () const
 
const ADVariableSecond & getADDefaultSecond () const
 
const ADVectorVariableCurl & getADDefaultCurl () 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)
 
SubdomainID primarySubdomain () const
 
SubdomainID secondarySubdomain () const
 
bool onInterface (BoundaryID primary_boundary_id, BoundaryID secondary_boundary_id) 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< SubdomainID > getMaterialPropertyBlocks (const std::string &name)
 
std::vector< SubdomainName > getMaterialPropertyBlockNames (const std::string &name)
 
std::set< BoundaryID > getMaterialPropertyBoundaryIDs (const std::string &name)
 
std::vector< BoundaryName > getMaterialPropertyBoundaryNames (const std::string &name)
 
void checkBlockAndBoundaryCompatibility (std::shared_ptr< MaterialBase > discrete)
 
std::unordered_map< SubdomainID, std::vector< MaterialBase * > > buildRequiredMaterials (bool allow_stateful=true)
 
void statefulPropertiesAllowed (bool)
 
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)
 
MooseVariableBase * mooseVariableBase () const
 
MooseVariableField< Real > & mooseVariableField ()
 
MooseVariableFE< Real > * mooseVariable () const
 
MooseVariableFV< Real > * mooseVariableFV () const
 
MooseLinearVariableFV< Real > * mooseLinearVariableFV () const
 
bool hasUserObject (const std::string &param_name) const
 
bool hasUserObject (const std::string &param_name) const
 
bool hasUserObject (const std::string &param_name) const
 
bool hasUserObject (const std::string &param_name) const
 
bool hasUserObjectByName (const UserObjectName &object_name) const
 
bool hasUserObjectByName (const UserObjectName &object_name) const
 
bool hasUserObjectByName (const UserObjectName &object_name) const
 
bool hasUserObjectByName (const UserObjectName &object_name) const
 
const PostprocessorValue & getPostprocessorValue (const std::string &param_name, const unsigned int index=0) const
 
const PostprocessorValue & getPostprocessorValue (const std::string &param_name, const unsigned int index=0) const
 
const PostprocessorValue & getPostprocessorValueOld (const std::string &param_name, const unsigned int index=0) const
 
const PostprocessorValue & getPostprocessorValueOld (const std::string &param_name, const unsigned int index=0) const
 
const PostprocessorValue & getPostprocessorValueOlder (const std::string &param_name, const unsigned int index=0) const
 
const PostprocessorValue & getPostprocessorValueOlder (const std::string &param_name, const unsigned int index=0) const
 
virtual const PostprocessorValue & getPostprocessorValueByName (const PostprocessorName &name) const
 
virtual const PostprocessorValue & getPostprocessorValueByName (const PostprocessorName &name) const
 
const PostprocessorValue & getPostprocessorValueOldByName (const PostprocessorName &name) const
 
const PostprocessorValue & getPostprocessorValueOldByName (const PostprocessorName &name) const
 
const PostprocessorValue & getPostprocessorValueOlderByName (const PostprocessorName &name) const
 
const PostprocessorValue & getPostprocessorValueOlderByName (const PostprocessorName &name) const
 
bool isVectorPostprocessorDistributed (const std::string &param_name) const
 
bool isVectorPostprocessorDistributed (const std::string &param_name) const
 
bool isVectorPostprocessorDistributedByName (const VectorPostprocessorName &name) const
 
bool isVectorPostprocessorDistributedByName (const VectorPostprocessorName &name) const
 
const GenericMaterialProperty< T, is_ad > & getGenericNeighborMaterialProperty (const std::string &name, const unsigned int state=0)
 
const GenericMaterialProperty< T, is_ad > & getGenericNeighborMaterialProperty (const std::string &name, const unsigned int state=0)
 
const MaterialProperty< T > & getNeighborMaterialProperty (const std::string &name, const unsigned int state=0)
 
const MaterialProperty< T > & getNeighborMaterialProperty (const std::string &name, const unsigned int state=0)
 
const ADMaterialProperty< T > & getNeighborADMaterialProperty (const std::string &name)
 
const ADMaterialProperty< T > & getNeighborADMaterialProperty (const std::string &name)
 
const MaterialProperty< T > & getNeighborMaterialPropertyOld (const std::string &name)
 
const MaterialProperty< T > & getNeighborMaterialPropertyOld (const std::string &name)
 
const MaterialProperty< T > & getNeighborMaterialPropertyOlder (const std::string &name)
 
const MaterialProperty< T > & getNeighborMaterialPropertyOlder (const std::string &name)
 
const GenericMaterialProperty< T, is_ad > & getGenericNeighborMaterialPropertyByName (const std::string &name, const unsigned int state=0)
 
const GenericMaterialProperty< T, is_ad > & getGenericNeighborMaterialPropertyByName (const std::string &name, const unsigned int state=0)
 
const MaterialProperty< T > & getNeighborMaterialPropertyByName (const std::string &name, const unsigned int state=0)
 
const MaterialProperty< T > & getNeighborMaterialPropertyByName (const std::string &name, const unsigned int state=0)
 
const ADMaterialProperty< T > & getNeighborADMaterialPropertyByName (const std::string &name)
 
const ADMaterialProperty< T > & getNeighborADMaterialPropertyByName (const std::string &name)
 
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)
 
MaterialBase & getMaterial (const std::string &name)
 
MaterialBase & getMaterial (const std::string &name)
 
MaterialBase & getMaterialByName (const std::string &name, bool no_warn=false)
 
MaterialBase & getMaterialByName (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)
 
PenetrationLocator & getPenetrationLocator (const BoundaryName &primary, const BoundaryName &secondary, Order order)
 
PenetrationLocator & getQuadraturePenetrationLocator (const BoundaryName &primary, const BoundaryName &secondary, Order order)
 
NearestNodeLocator & getNearestNodeLocator (const BoundaryName &primary, const BoundaryName &secondary)
 
NearestNodeLocator & getQuadratureNearestNodeLocator (const BoundaryName &primary, const BoundaryName &secondary)
 
bool requiresGeometricSearch () const
 
const Parallel::Communicator & comm () const
 
processor_id_type n_processors () const
 
processor_id_type processor_id () const
 

Static Public Member Functions

static InputParameters validParams ()
 
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 InputParameters triangulationParams ()
 

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
 

Protected Member Functions

virtual void computeQpProperties () override
 Computes properties that are functions only of the current quadrature point (_qp), e.g.
 
virtual void computeQpIProperties () override
 Computes properties that are functions both of _qp and _i, for example the weighted gap.
 
virtual void enforceConstraintOnDof (const DofObject *const dof) override
 Method called from post().
 
virtual void enforceConstraintOnDof3d (const DofObject *const dof)
 Method called from post().
 
void timestepSetup () override
 
ADReal computeFrictionValue (const ADReal &contact_pressure, const Real &tangential_vel, const Real &tangential_vel_dir)
 Apply constant or function-based friction coefficient.
 
std::array< Real, 2 > oldNodalSlipRate (const DofObject *const dof) const
 Nodal slip rates of the previous step at a locally owned dof, or zero if the dof has no history yet (first step, or the dof just entered the mortar interface)
 
ADReal computeQpResidual (Moose::MortarType mortar_type) final
 
void computeResidual (Moose::MortarType mortar_type) override
 
void computeResidual (Moose::MortarType mortar_type) override
 
virtual void computeResidual () override
 
virtual void computeResidual (Moose::MortarType mortar_type)=0
 
void computeJacobian (Moose::MortarType mortar_type) override
 
void computeJacobian (Moose::MortarType mortar_type) override
 
virtual void computeJacobian () override
 
virtual void computeJacobian (Moose::MortarType mortar_type)=0
 
void jacobianSetup () override final
 
void communicateWear ()
 
void computeResidualAndJacobian () override
 
bool usesFaceCoupledValues () const override
 
const FEProblemBase & feProblem () const
 
virtual void precalculateResidual ()
 
virtual void precalculateJacobian ()
 
virtual void precalculateOffDiagJacobian (unsigned int)
 
const MooseVariableFieldBase & getVariable (unsigned int jvar_num) const
 
void flagInvalidSolutionInternal (const InvalidSolutionID invalid_solution_id) const
 
InvalidSolutionID registerInvalidSolutionInternal (const std::string &message, const bool warning) const
 
virtual void addUserObjectDependencyHelper (const UserObjectBase &) const
 
virtual void addPostprocessorDependencyHelper (const PostprocessorName &) const
 
virtual void addVectorPostprocessorDependencyHelper (const VectorPostprocessorName &) const
 
T & declareRestartableData (const std::string &data_name, Args &&... args)
 
ManagedValue< T > declareManagedRestartableDataWithContext (const std::string &data_name, void *context, Args &&... args)
 
const T & getRestartableData (const std::string &data_name) const
 
T & declareRestartableDataWithContext (const std::string &data_name, void *context, Args &&... args)
 
T & declareRecoverableData (const std::string &data_name, Args &&... args)
 
T & declareRestartableDataWithObjectName (const std::string &data_name, const std::string &object_name, Args &&... args)
 
T & declareRestartableDataWithObjectNameWithContext (const std::string &data_name, const std::string &object_name, void *context, Args &&... args)
 
std::string restartableName (const std::string &data_name) const
 
void prepareVectorTag (Assembly &assembly, unsigned int ivar)
 
void prepareVectorTag (Assembly &assembly, unsigned int ivar, ResidualTagType tag_type)
 
void prepareVectorTag (Assembly &assembly, unsigned int ivar, ResidualTagType tag_type)
 
void prepareVectorTag (Assembly &assembly, unsigned int ivar, ResidualTagType tag_type)
 
void prepareVectorTag (Assembly &assembly, unsigned int ivar, ResidualTagType tag_type)
 
void prepareVectorTag (Assembly &assembly, unsigned int ivar, ResidualTagType tag_type)
 
void prepareVectorTag (Assembly &assembly, unsigned int ivar, ResidualTagType tag_type)
 
void prepareVectorTagNeighbor (Assembly &assembly, unsigned int ivar)
 
void prepareVectorTagLower (Assembly &assembly, unsigned int ivar)
 
void prepareMatrixTag (Assembly &assembly, unsigned int ivar, unsigned int jvar)
 
void prepareMatrixTag (Assembly &assembly, unsigned int ivar, unsigned int jvar, DenseMatrix< Number > &k) const
 
void prepareMatrixTagNonlocal (Assembly &assembly, unsigned int ivar, unsigned int jvar)
 
void prepareMatrixTagNeighbor (Assembly &assembly, unsigned int ivar, unsigned int jvar, Moose::DGJacobianType type)
 
void prepareMatrixTagNeighbor (Assembly &assembly, unsigned int ivar, unsigned int jvar, Moose::DGJacobianType type, DenseMatrix< Number > &k) const
 
void prepareMatrixTagLower (Assembly &assembly, unsigned int ivar, unsigned int jvar, Moose::ConstraintJacobianType type)
 
void accumulateTaggedLocalResidual ()
 
void assignTaggedLocalResidual ()
 
void accumulateTaggedLocalMatrix ()
 
void accumulateTaggedLocalMatrix (Assembly &assembly, unsigned int ivar, unsigned int jvar, const DenseMatrix< Number > &k)
 
void accumulateTaggedLocalMatrix (Assembly &assembly, unsigned int ivar, unsigned int jvar, Moose::DGJacobianType type, const DenseMatrix< Number > &k)
 
void accumulateTaggedNonlocalMatrix ()
 
void assignTaggedLocalMatrix ()
 
void addResiduals (Assembly &assembly, const Residuals &residuals, const Indices &dof_indices, Real scaling_factor)
 
void addResiduals (Assembly &assembly, const Residuals &residuals, const Indices &dof_indices, const std::vector< Real > &scaling_factors)
 
void addResiduals (Assembly &assembly, const DenseVector< T > &residuals, const Indices &dof_indices, Real scaling_factor)
 
void addResiduals (Assembly &assembly, const ADResidualsPacket &packet)
 
void addResidualsAndJacobian (Assembly &assembly, const Residuals &residuals, const Indices &dof_indices, Real scaling_factor)
 
void addResidualsAndJacobian (Assembly &assembly, const ADResidualsPacket &packet)
 
void addJacobian (Assembly &assembly, const Residuals &residuals, const Indices &dof_indices, Real scaling_factor)
 
void addJacobian (Assembly &assembly, const Residuals &residuals, const Indices &dof_indices, const std::vector< Real > &scaling_factors)
 
void addJacobian (Assembly &assembly, const ADResidualsPacket &packet)
 
void addJacobian (Assembly &assembly, const DenseMatrix< Real > &local_k, const std::vector< dof_id_type > &row_indices, const std::vector< dof_id_type > &column_indices, Real scaling_factor)
 
void addResidualsWithoutConstraints (Assembly &assembly, const Residuals &residuals, const Indices &dof_indices, Real scaling_factor)
 
void addResidualsAndJacobianWithoutConstraints (Assembly &assembly, const Residuals &residuals, const Indices &dof_indices, Real scaling_factor)
 
void addJacobianWithoutConstraints (Assembly &assembly, const Residuals &residuals, const Indices &dof_indices, Real scaling_factor)
 
void addJacobianElement (Assembly &assembly, Real value, dof_id_type row_index, dof_id_type column_index, Real scaling_factor)
 
void setResidual (SystemBase &sys, const T &residual, MooseVariableFE< T > &var)
 
void setResidual (SystemBase &sys, Real residual, dof_id_type dof_index)
 
void setResidual (SystemBase &sys, SetResidualFunctor set_residual_functor)
 
virtual void coupledCallback (const std::string &, bool) const
 
virtual bool isCoupled (const std::string &var_name, unsigned int i=0) const
 
virtual bool isCoupledConstant (const std::string &var_name) const
 
unsigned int coupledComponents (const std::string &var_name) const
 
VariableName coupledName (const std::string &var_name, unsigned int comp=0) const
 
std::vector< VariableName > coupledNames (const std::string &var_name) const
 
virtual unsigned int coupled (const std::string &var_name, unsigned int comp=0) const
 
std::vector< unsigned int > coupledIndices (const std::string &var_name) const
 
virtual const VariableValue & coupledValue (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const VariableValue * > coupledValues (const std::string &var_name) const
 
std::vector< const VectorVariableValue * > coupledVectorValues (const std::string &var_name) const
 
const GenericVariableValue< is_ad > & coupledGenericValue (const std::string &var_name, unsigned int comp=0) const
 
const GenericVariableValue< false > & coupledGenericValue (const std::string &var_name, unsigned int comp) const
 
const GenericVariableValue< true > & coupledGenericValue (const std::string &var_name, unsigned int comp) const
 
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 VariableValue & coupledValueLower (const std::string &var_name, unsigned int comp=0) const
 
const ADVariableValue & adCoupledValue (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const ADVariableValue * > adCoupledValues (const std::string &var_name) const
 
const ADVariableValue & adCoupledLowerValue (const std::string &var_name, unsigned int comp=0) const
 
const ADVectorVariableValue & adCoupledVectorValue (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const ADVectorVariableValue * > adCoupledVectorValues (const std::string &var_name) const
 
virtual const VariableValue & coupledVectorTagValue (const std::string &var_names, TagID tag, unsigned int index=0) const
 
virtual const VariableValue & coupledVectorTagValue (const std::string &var_names, const std::string &tag_name, unsigned int index=0) const
 
std::vector< const VariableValue * > coupledVectorTagValues (const std::string &var_names, TagID tag) const
 
std::vector< const VariableValue * > coupledVectorTagValues (const std::string &var_names, const std::string &tag_name) const
 
virtual const ArrayVariableValue & coupledVectorTagArrayValue (const std::string &var_names, TagID tag, unsigned int index=0) const
 
virtual const ArrayVariableValue & coupledVectorTagArrayValue (const std::string &var_names, const std::string &tag_name, unsigned int index=0) const
 
std::vector< const ArrayVariableValue * > coupledVectorTagArrayValues (const std::string &var_names, TagID tag) const
 
std::vector< const ArrayVariableValue * > coupledVectorTagArrayValues (const std::string &var_names, const std::string &tag_name) const
 
virtual const VariableGradient & coupledVectorTagGradient (const std::string &var_names, TagID tag, unsigned int index=0) const
 
virtual const VariableGradient & coupledVectorTagGradient (const std::string &var_names, const std::string &tag_name, unsigned int index=0) const
 
std::vector< const VariableGradient * > coupledVectorTagGradients (const std::string &var_names, TagID tag) const
 
std::vector< const VariableGradient * > coupledVectorTagGradients (const std::string &var_names, const std::string &tag_name) const
 
virtual const ArrayVariableGradient & coupledVectorTagArrayGradient (const std::string &var_names, TagID tag, unsigned int index=0) const
 
virtual const ArrayVariableGradient & coupledVectorTagArrayGradient (const std::string &var_names, const std::string &tag_name, unsigned int index=0) const
 
std::vector< const ArrayVariableGradient * > coupledVectorTagArrayGradients (const std::string &var_names, TagID tag) const
 
std::vector< const ArrayVariableGradient * > coupledVectorTagArrayGradients (const std::string &var_names, const std::string &tag_name) const
 
virtual const VariableValue & coupledVectorTagDofValue (const std::string &var_name, TagID tag, unsigned int index=0) const
 
virtual const VariableValue & coupledVectorTagDofValue (const std::string &var_names, const std::string &tag_name, unsigned int index=0) const
 
const ArrayVariableValue & coupledVectorTagArrayDofValue (const std::string &var_name, const std::string &tag_name, unsigned int comp=0) const
 
std::vector< const VariableValue * > coupledVectorTagDofValues (const std::string &var_names, TagID tag) const
 
std::vector< const VariableValue * > coupledVectorTagDofValues (const std::string &var_names, const std::string &tag_name) const
 
virtual const VariableValue & coupledMatrixTagValue (const std::string &var_names, TagID tag, unsigned int index=0) const
 
virtual const VariableValue & coupledMatrixTagValue (const std::string &var_names, const std::string &tag_name, unsigned int index=0) const
 
std::vector< const VariableValue * > coupledMatrixTagValues (const std::string &var_names, TagID tag) const
 
std::vector< const VariableValue * > coupledMatrixTagValues (const std::string &var_names, const std::string &tag_name) const
 
virtual const VectorVariableValue & coupledVectorValue (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableValue & coupledArrayValue (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const ArrayVariableValue * > coupledArrayValues (const std::string &var_name) const
 
MooseWritableVariable & writableVariable (const std::string &var_name, unsigned int comp=0)
 
virtual VariableValue & writableCoupledValue (const std::string &var_name, unsigned int comp=0)
 
void checkWritableVar (MooseWritableVariable *var)
 
virtual const VariableValue & coupledValueOld (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const VariableValue * > coupledValuesOld (const std::string &var_name) const
 
std::vector< const VectorVariableValue * > coupledVectorValuesOld (const std::string &var_name) const
 
virtual const VariableValue & coupledValueOlder (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const VariableValue * > coupledValuesOlder (const std::string &var_name) const
 
virtual const VariableValue & coupledValuePreviousNL (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableValue & coupledVectorValueOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableValue & coupledVectorValueOlder (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableValue & coupledArrayValueOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableValue & coupledArrayValueOlder (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableGradient & coupledGradient (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const VariableGradient * > coupledGradients (const std::string &var_name) const
 
const ADVariableGradient & adCoupledGradient (const std::string &var_name, unsigned int comp=0) const
 
const ADVariableGradient & adCoupledGradientDot (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const ADVariableGradient * > adCoupledGradients (const std::string &var_name) const
 
const GenericVariableGradient< is_ad > & coupledGenericGradient (const std::string &var_name, unsigned int comp=0) const
 
const GenericVariableGradient< false > & coupledGenericGradient (const std::string &var_name, unsigned int comp) const
 
const GenericVariableGradient< true > & coupledGenericGradient (const std::string &var_name, unsigned int comp) const
 
std::vector< const GenericVariableGradient< is_ad > * > coupledGenericGradients (const std::string &var_name) const
 
std::vector< const GenericVariableGradient< false > * > coupledGenericGradients (const std::string &var_name) const
 
std::vector< const GenericVariableGradient< true > * > coupledGenericGradients (const std::string &var_name) const
 
const ADVectorVariableGradient & adCoupledVectorGradient (const std::string &var_name, unsigned int comp=0) const
 
const ADVariableSecond & adCoupledSecond (const std::string &var_name, unsigned int comp=0) const
 
const ADVectorVariableSecond & adCoupledVectorSecond (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableGradient & coupledGradientOld (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const VariableGradient * > coupledGradientsOld (const std::string &var_name) const
 
virtual const VariableGradient & coupledGradientOlder (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableGradient & coupledGradientPreviousNL (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableGradient & coupledGradientDot (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableGradient & coupledGradientDotDot (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableGradient & coupledVectorGradient (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableGradient & coupledVectorGradientOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableGradient & coupledVectorGradientOlder (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableGradient & coupledArrayGradient (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableGradient & coupledArrayGradientOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableGradient & coupledArrayGradientOlder (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableGradient & coupledArrayGradientDot (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableCurl & coupledCurl (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableCurl & coupledCurlOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableCurl & coupledCurlOlder (const std::string &var_name, unsigned int comp=0) const
 
const ADVectorVariableCurl & adCoupledCurl (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableDivergence & coupledDiv (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableDivergence & coupledDivOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableDivergence & coupledDivOlder (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableSecond & coupledSecond (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableSecond & coupledSecondOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableSecond & coupledSecondOlder (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableSecond & coupledSecondPreviousNL (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValue & coupledDot (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const VariableValue * > coupledDots (const std::string &var_name) const
 
virtual const VariableValue & coupledDotDot (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValue & coupledDotOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValue & coupledDotDotOld (const std::string &var_name, unsigned int comp=0) const
 
const ADVariableValue & adCoupledDot (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const ADVariableValue * > adCoupledDots (const std::string &var_name) const
 
const ADVariableValue & adCoupledDotDot (const std::string &var_name, unsigned int comp=0) const
 
const ADVectorVariableValue & adCoupledVectorDot (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableValue & coupledVectorDot (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableValue & coupledVectorDotDot (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableValue & coupledVectorDotOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableValue & coupledVectorDotDotOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValue & coupledVectorDotDu (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValue & coupledVectorDotDotDu (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableValue & coupledArrayDot (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableValue & coupledArrayDotDot (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableValue & coupledArrayDotOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableValue & coupledArrayDotDotOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValue & coupledDotDu (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValue & coupledDotDotDu (const std::string &var_name, unsigned int comp=0) const
 
const VariableValue & coupledArrayDotDu (const std::string &var_name, unsigned int comp=0) const
 
const T & coupledNodalValue (const std::string &var_name, unsigned int comp=0) const
 
const Moose::ADType< T >::type & adCoupledNodalValue (const std::string &var_name, unsigned int comp=0) const
 
const T & coupledNodalValueOld (const std::string &var_name, unsigned int comp=0) const
 
const T & coupledNodalValueOlder (const std::string &var_name, unsigned int comp=0) const
 
const T & coupledNodalValuePreviousNL (const std::string &var_name, unsigned int comp=0) const
 
const T & coupledNodalDot (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValue & coupledNodalDotDot (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValue & coupledNodalDotOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValue & coupledNodalDotDotOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValue & coupledDofValues (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const VariableValue * > coupledAllDofValues (const std::string &var_name) const
 
virtual const VariableValue & coupledDofValuesOld (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const VariableValue * > coupledAllDofValuesOld (const std::string &var_name) const
 
virtual const VariableValue & coupledDofValuesOlder (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const VariableValue * > coupledAllDofValuesOlder (const std::string &var_name) const
 
virtual const ArrayVariableValue & coupledArrayDofValues (const std::string &var_name, unsigned int comp=0) const
 
virtual const ADVariableValue & adCoupledDofValues (const std::string &var_name, unsigned int comp=0) const
 
const ADVariableValue & adZeroValue () const
 
const ADVariableGradient & adZeroGradient () const
 
const ADVariableSecond & adZeroSecond () const
 
const GenericVariableValue< is_ad > & genericZeroValue ()
 
const GenericVariableValue< false > & genericZeroValue ()
 
const GenericVariableValue< true > & genericZeroValue ()
 
const GenericVariableGradient< is_ad > & genericZeroGradient ()
 
const GenericVariableGradient< false > & genericZeroGradient ()
 
const GenericVariableGradient< true > & genericZeroGradient ()
 
const GenericVariableSecond< is_ad > & genericZeroSecond ()
 
const GenericVariableSecond< false > & genericZeroSecond ()
 
const GenericVariableSecond< true > & genericZeroSecond ()
 
bool checkVar (const std::string &var_name, unsigned int comp=0, unsigned int comp_bound=0) const
 
const MooseVariableFieldBase * getFEVar (const std::string &var_name, unsigned int comp) const
 
const MooseVariableFieldBase * getFieldVar (const std::string &var_name, unsigned int comp) const
 
MooseVariableFieldBase * getFieldVar (const std::string &var_name, unsigned int comp)
 
std::vector< const MooseVariableFieldBase * > getFieldVars (const std::string &var_name) const
 
const T * getVarHelper (const std::string &var_name, unsigned int comp) const
 
T * getVarHelper (const std::string &var_name, unsigned int comp)
 
std::vector< const T * > getVarsHelper (const std::string &var_name) const
 
MooseVariable * getVar (const std::string &var_name, unsigned int comp)
 
const MooseVariable * getVar (const std::string &var_name, unsigned int comp) const
 
VectorMooseVariable * getVectorVar (const std::string &var_name, unsigned int comp)
 
const VectorMooseVariable * getVectorVar (const std::string &var_name, unsigned int comp) const
 
ArrayMooseVariable * getArrayVar (const std::string &var_name, unsigned int comp)
 
const ArrayMooseVariable * getArrayVar (const std::string &var_name, unsigned int comp) const
 
void validateExecutionerType (const std::string &name, const std::string &fn_name) const
 
std::vector< T > coupledVectorHelper (const std::string &var_name, const Func &func) const
 
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 VariableValue & coupledScalarValue (const std::string &var_name, unsigned int comp=0) const
 
const ADVariableValue & adCoupledScalarValue (const std::string &var_name, unsigned int comp=0) const
 
const GenericVariableValue< is_ad > & coupledGenericScalarValue (const std::string &var_name, unsigned int comp=0) const
 
const GenericVariableValue< false > & coupledGenericScalarValue (const std::string &var_name, const unsigned int comp) const
 
const GenericVariableValue< true > & coupledGenericScalarValue (const std::string &var_name, const unsigned int comp) const
 
const VariableValue & coupledVectorTagScalarValue (const std::string &var_name, const std::string &tag_param_name, unsigned int comp=0) const
 
const VariableValue & coupledMatrixTagScalarValue (const std::string &var_name, const std::string &tag_param_name, unsigned int comp=0) const
 
const VariableValue & coupledScalarValueOld (const std::string &var_name, unsigned int comp=0) const
 
const VariableValue & coupledScalarValueOlder (const std::string &var_name, unsigned int comp=0) const
 
const VariableValue & coupledScalarDot (const std::string &var_name, unsigned int comp=0) const
 
const ADVariableValue & adCoupledScalarDot (const std::string &var_name, unsigned int comp=0) const
 
const VariableValue & coupledScalarDotDot (const std::string &var_name, unsigned int comp=0) const
 
const VariableValue & coupledScalarDotOld (const std::string &var_name, unsigned int comp=0) const
 
const VariableValue & coupledScalarDotDotOld (const std::string &var_name, unsigned int comp=0) const
 
const VariableValue & coupledScalarDotDu (const std::string &var_name, unsigned int comp=0) const
 
const VariableValue & coupledScalarDotDotDu (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VariableValue kokkosCoupledVectorTagScalarValueByName (const std::string &var_name, const std::string &tag_name, unsigned int comp=0) const
 
Moose::Kokkos::VariableValue kokkosCoupledVectorTagScalarValue (const std::string &var_name, const std::string &tag_param_name, unsigned int comp=0) const
 
Moose::Kokkos::VariableValue kokkosCoupledScalarValue (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VariableValue kokkosCoupledScalarValueOld (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VariableValue kokkosCoupledScalarValueOlder (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VariableValue kokkosCoupledScalarDot (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::Scalar< const Real > kokkosCoupledScalarDotDu (const std::string &var_name, unsigned int comp=0) const
 
const MooseVariableScalar * getScalarVar (const std::string &var_name, unsigned int comp) const
 
const std::set< SubdomainID > & getHigherDimSubdomainIDs () const
 
const std::set< BoundaryID > & getBoundaryIDs () const
 
const AutomaticMortarGeneration & amg () const
 
bool interpolateNormals () 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 const OutputTools< Real >::VariableValue & value ()
 
virtual const OutputTools< Real >::VariableValue & valueOld ()
 
virtual const OutputTools< Real >::VariableValue & valueOlder ()
 
virtual const OutputTools< Real >::VariableValue & dot ()
 
virtual const OutputTools< Real >::VariableValue & dotDot ()
 
virtual const OutputTools< Real >::VariableValue & dotOld ()
 
virtual const OutputTools< Real >::VariableValue & dotDotOld ()
 
virtual const VariableValue & dotDu ()
 
virtual const VariableValue & dotDotDu ()
 
virtual const OutputTools< Real >::VariableGradient & gradient ()
 
virtual const OutputTools< Real >::VariableGradient & gradientOld ()
 
virtual const OutputTools< Real >::VariableGradient & gradientOlder ()
 
virtual const OutputTools< Real >::VariableSecond & second ()
 
virtual const OutputTools< Real >::VariableSecond & secondOld ()
 
virtual const OutputTools< Real >::VariableSecond & secondOlder ()
 
virtual const OutputTools< Real >::VariableTestSecond & secondTest ()
 
virtual const OutputTools< Real >::VariableTestSecond & secondTestFace ()
 
virtual const OutputTools< Real >::VariablePhiSecond & secondPhi ()
 
virtual const OutputTools< Real >::VariablePhiSecond & secondPhiFace ()
 
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 void trimDerivative (dof_id_type remove_derivative_index, ADReal &dual_number)
 
static void trimInteriorNodeDerivatives (const std::map< unsigned int, unsigned int > &primary_ip_lowerd_map, const Variables &moose_var, DualNumbers &ad_vars, const bool is_secondary)
 

Protected Attributes

std::unordered_map< const DofObject *, std::array< ADReal, 2 > > _dof_to_weighted_tangential_velocity
 A map from node to two weighted tangential velocities.
 
std::unordered_map< const DofObject *, std::array< Real, 2 > > _dof_to_old_real_tangential_velocity
 A map from node to the two nodal slip rates of the previous step, used to evaluate the friction function.
 
std::array< const ADReal *, 2 > _tangential_vel_ptr = {{nullptr, nullptr}}
 An array of two pointers to avoid copies.
 
ADRealVectorValue _qp_tangential_velocity_nodal
 The value of the tangential velocity vectors at the current node.
 
const Real _c_t
 Numerical factor used in the tangential constraints for convergence purposes.
 
const Moose::Mortar::Contact::FrictionProjectionDegree _friction_projection_degree
 Degree of the friction-residual projection used by frictionalContactResidual (see MortarContactUtils.h): ONE selects Alart-Curnier, TWO (the default) selects Hueber-Stadler-Wohlmuth.
 
std::vector< MooseVariable * > _friction_vars
 Frictional Lagrange's multiplier variable pointers.
 
const ADVariableValue & _secondary_x_dot
 x-velocity on the secondary face
 
const ADVariableValue & _primary_x_dot
 x-velocity on the primary face
 
const ADVariableValue & _secondary_y_dot
 y-velocity on the secondary face
 
const ADVariableValue & _primary_y_dot
 y-velocity on the primary face
 
const ADVariableValue *const _secondary_z_dot
 z-velocity on the secondary face
 
const ADVariableValue *const _primary_z_dot
 z-velocity on the primary face
 
const Real _epsilon
 Minimum value of contact pressure that will trigger including tangential forces in the contact residual calculation.
 
const Real _mu
 Friction coefficient.
 
const Function *const _function_friction
 input function
 
const bool _has_friction_function
 Boolean to determine whether the friction coefficient is taken from a function.
 
bool _3d
 Automatic flag to determine whether we are doing three-dimensional work.
 
const ADVariableValue & _secondary_disp_x
 x-displacement on the secondary face
 
const ADVariableValue & _primary_disp_x
 x-displacement on the primary face
 
const ADVariableValue & _secondary_disp_y
 y-displacement on the secondary face
 
const ADVariableValue & _primary_disp_y
 y-displacement on the primary face
 
const bool _has_disp_z
 For 2D mortar contact no displacement will be specified, so const pointers used.
 
const ADVariableValue *const _secondary_disp_z
 z-displacement on the secondary face
 
const ADVariableValue *const _primary_disp_z
 z-displacement on the primary face
 
const Real _c
 This factor multiplies the weighted gap.
 
ADReal _qp_gap
 The value of the gap at the current quadrature point.
 
Real _qp_factor
 The value of the LM at the current quadrature point.
 
bool _normalize_c
 Whether to normalize weighted gap by weighting function norm.
 
const bool _nodal
 Whether the dof objects are nodal; if they're not, then they're elemental.
 
const MooseVariable *const _disp_x_var
 The x displacement variable.
 
const MooseVariable *const _disp_y_var
 The y displacement variable.
 
const MooseVariable *const _disp_z_var
 The z displacement variable.
 
ADRealVectorValue _qp_gap_nodal
 Vector for computation of weighted gap with nodal normals.
 
std::unordered_map< const DofObject *, std::pair< ADReal, Real > > _dof_to_weighted_gap
 A map from node to weighted gap and normalization (if requested)
 
const ADReal * _weighted_gap_ptr = nullptr
 A pointer members that can be used to help avoid copying ADReals.
 
const Real * _normalization_ptr = nullptr
 
const Real _capture_tolerance
 A small threshold gap value to consider that a node needs a "persistency" constraint.
 
const bool _has_wear
 Flag to determine whether wear needs to be included in the contact constraints.
 
const VariableValue & _wear_depth
 Wear depth to include contact.
 
std::unordered_map< const DofObject *, ADReal > _dof_to_old_weighted_gap
 A map from dof-object to the old weighted gap.
 
ADRealVectorValue _qp_gap_nodal_dynamics
 Vector for computation of weighted gap velocity to fulfill "persistency" condition.
 
ADRealVectorValue _qp_velocity
 Vector for computation of weighted gap velocity to fulfill "persistency" condition.
 
std::unordered_map< const DofObject *, ADReal > _dof_to_weighted_gap_dynamics
 A map from node to weighted gap velocity times _dt.
 
std::unordered_map< const DofObject *, ADReal > _dof_to_velocity
 A map from node to weighted gap velocity times _dt.
 
std::unordered_map< const DofObject *, ADReal > _dof_to_old_velocity
 A map from node to weighted gap velocity times _dt.
 
const Real _newmark_beta
 
const Real _newmark_gamma
 
std::unordered_map< const DofObject *, ADReal > _dof_to_nodal_wear_depth
 A map from node to wear in this step.
 
std::unordered_map< const DofObject *, ADReal > _dof_to_nodal_old_wear_depth
 A map from node to wear in old step.
 
ADRealVectorValue _relative_velocity
 The relative velocity.
 
int & _t_step_old
 The timestep index at which the history maps (_dof_to_old_weighted_gap, _dof_to_old_velocity, _dof_to_nodal_old_wear_depth) were last advanced.
 
bool _retried_timestep
 Set by timestepSetup() to indicate whether the current call is for a retried timestep, so that derived classes advancing their own history in an overriding timestepSetup() can skip doing so as well.
 
const ADVariableValue & _lambda
 
const ADVariableValue & _u_secondary
 
const ADVariableValue & _u_primary
 
const ADVariableGradient & _grad_u_secondary
 
const ADVariableGradient & _grad_u_primary
 
FEProblemBase & _fe_problem
 
MooseVariable *const _var
 
MooseVariableField< Real > & _secondary_var
 
MooseVariableField< Real > & _primary_var
 
const bool _compute_primal_residuals
 
const bool _compute_lm_residuals
 
const VariableTestValue _test_dummy
 
const bool _use_dual
 
const MooseArray< std::vector< Point > > & _tangents
 
const MooseArray< Real > & _coord
 
const std::vector< Point > & _q_point
 
const bool _use_petrov_galerkin
 
const MooseVariable *const _aux_lm_var
 
const VariableTestValue & _test
 
const VariableTestValue & _test_secondary
 
const VariableTestValue & _test_primary
 
const VariableTestGradient & _grad_test_secondary
 
const VariableTestGradient & _grad_test_primary
 
const Elem *const & _interior_secondary_elem
 
const Elem *const & _interior_primary_elem
 
const bool _displaced
 
unsigned int _i
 
unsigned int _j
 
unsigned int _qp
 
SubProblem & _subproblem
 
SystemBase & _sys
 
THREAD_ID _tid
 
Assembly & _assembly
 
MooseMesh & _mesh
 
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
 
const InputParameters & _ti_params
 
FEProblemBase & _ti_feproblem
 
bool _is_implicit
 
Real & _t
 
const Real & _t_old
 
int & _t_step
 
Real & _dt
 
Real & _dt_old
 
bool _is_transient
 
MooseApp & _restartable_app
 
const std::string _restartable_system_name
 
const THREAD_ID _restartable_tid
 
const bool _restartable_read_only
 
FEProblemBase & _mci_feproblem
 
DenseVector< Number > _local_re
 
DenseMatrix< Number > _local_ke
 
DenseMatrix< Number > _nonlocal_ke
 
GeometricSearchData & _geometric_search_data
 
bool _requires_geometric_search
 
bool _neighbor_nodal
 
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
 
FEProblemBase & _mci_fe_problem
 
SubProblem & _mci_subproblem
 
const THREAD_ID _mci_tid
 
MooseMesh & _mci_mesh
 
Assembly & _mci_assembly
 
const MortarInterfaceWarehouse & _mortar_data
 
const BoundaryID _secondary_id
 
const BoundaryID _primary_id
 
const SubdomainID _secondary_subdomain_id
 
const SubdomainID _primary_subdomain_id
 
std::set< BoundaryID > _secondary_set
 
std::set< BoundaryID > _boundary_ids
 
std::set< SubdomainID > _higher_dim_subdomain_ids
 
const bool _interpolate_normals
 
const MooseArray< Point > & _phys_points_secondary
 
const MooseArray< Point > & _phys_points_primary
 
const libMesh::QBase *const & _qrule_msm
 
const libMesh::QBase *const & _qrule_face
 
Elem const *const & _lower_secondary_elem
 
Elem const *const & _lower_primary_elem
 
const std::vector< Real > & _JxW_msm
 
const Elem *const & _msm_elem
 
std::vector< Point > _normals
 
MaterialData & _neighbor_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
 
MooseVariableFE< Real > * _variable
 
MooseVariableFV< Real > * _fv_variable
 
MooseLinearVariableFV< Real > * _linear_fv_variable
 
MooseVariableField< Real > * _field_variable
 
Assembly * _mvi_assembly
 
const Parallel::Communicator & _communicator
 

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::FunctionBase * getKokkosFunctionByNameHelper (const FunctionName &name) const
 
const UserObjectBase & getUserObjectFromFEProblem (const UserObjectName &object_name, const THREAD_ID tid=0) const
 
const T & castUserObject (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 VectorPostprocessorValue & getVectorPostprocessorByNameHelper (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
 
RestartableDataValue & registerRestartableDataOnApp (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
 
void prepareVectorTagInternal (Assembly &assembly, unsigned int ivar, const std::set< TagID > &vector_tags, const std::set< TagID > &absolute_value_vector_tags)
 
void checkForNans () const
 
const OutputTools< T >::VariableValue & vectorTagValueHelper (const std::string &var_names, TagID tag, unsigned int index=0) const
 
const OutputTools< T >::VariableValue & vectorTagValueHelper (const std::string &var_names, const std::string &tag_name, unsigned int index=0) const
 
const OutputTools< T >::VariableValue & vectorTagDofValueHelper (const std::string &var_name, TagID tag, unsigned int comp=0) const
 
const OutputTools< T >::VariableValue & vectorTagDofValueHelper (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 VariableValue * getDefaultValue (const std::string &var_name, unsigned int comp) const
 
const VectorVariableValue * getDefaultVectorValue (const std::string &var_name) const
 
const ArrayVariableValue * getDefaultArrayValue (const std::string &var_name) const
 
const T & getDefaultNodalValue (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
 
Moose::Kokkos::Variable kokkosCoupledVectorTagScalarVariable (const std::string &var_name, const std::string &tag_name, unsigned int comp) const
 
std::set< MooseVariableFieldBase * > checkVariablesHelper (const DofObjectType &dof_object, const std::set< MooseVariableFieldBase * > &vars_to_check)
 
void setNormals ()
 
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 PostprocessorValue & getPostprocessorValueInternal (const std::string &param_name, unsigned int index, std::size_t t_index) const
 
const PostprocessorValue & getPostprocessorValueInternal (const std::string &param_name, unsigned int index, std::size_t t_index) const
 
const PostprocessorValue & getPostprocessorValueByNameInternal (const PostprocessorName &name, std::size_t t_index) const
 
const PostprocessorValue & getPostprocessorValueByNameInternal (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

const ADVariableValue _lambda_dummy
 
const ADVariableGradient _grad_u_dummy
 
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 std::string _ti_name
 
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
 
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 RestartableDataMapName _metaname
 
std::string _restartable_name
 
std::set< TagID > _vector_tags
 
std::set< TagID > _abs_vector_tags
 
std::set< TagID > _matrix_tags
 
std::set< TagID > _non_ref_vector_tags
 
std::set< TagID > _non_ref_abs_vector_tags
 
std::set< TagID > _ref_vector_tags
 
std::set< TagID > _ref_abs_vector_tags
 
const MooseObject & _moose_object
 
const InputParameters & _tag_params
 
std::vector< DenseVector< Number > * > _re_blocks
 
std::vector< DenseVector< Number > * > _absre_blocks
 
std::vector< DenseMatrix< Number > * > _ke_blocks
 
std::vector< Real > _absolute_residuals
 
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 AutomaticMortarGeneration * _amg
 
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
 

Detailed Description

Computes the mortar tangential frictional forces for dynamic simulations.

Definition at line 28 of file ComputeDynamicFrictionalForceLMMechanicalContact.h.

Constructor & Destructor Documentation

◆ ComputeDynamicFrictionalForceLMMechanicalContact()

ComputeDynamicFrictionalForceLMMechanicalContact::ComputeDynamicFrictionalForceLMMechanicalContact ( const InputParameters &  parameters)

Definition at line 63 of file ComputeDynamicFrictionalForceLMMechanicalContact.C.

66 _c_t(getParam<Real>("c_t")),
67 _friction_projection_degree(getParam<MooseEnum>("friction_projection_degree")
68 .getEnum<Moose::Mortar::Contact::FrictionProjectionDegree>()),
73 _secondary_z_dot(_has_disp_z ? &adCoupledDot("disp_z") : nullptr),
75 _epsilon(getParam<Real>("epsilon")),
76 _mu(isParamValid("mu") ? getParam<Real>("mu") : std::numeric_limits<double>::quiet_NaN()),
77 _function_friction(isParamValid("function_friction") ? &getFunction("function_friction")
78 : nullptr),
79 _has_friction_function(isParamValid("function_friction")),
81{
84 "A coefficient of friction needs to be provided as a constant value of via a function.");
85
87 paramError("mu",
88 "Either provide a constant coefficient of friction or a function defining the "
89 "coefficient of friction. Both inputs cannot be provided simultaneously.");
90
91 if (!getParam<bool>("use_displaced_mesh"))
92 paramError("use_displaced_mesh",
93 "'use_displaced_mesh' must be true for the "
94 "ComputeFrictionalForceLMMechanicalContact object");
95
96 if (_3d && !isParamValid("friction_lm_dir"))
97 paramError("friction_lm_dir",
98 "Three-dimensional mortar frictional contact simulations require an additional "
99 "frictional Lagrange's multiplier to enforce a second tangential pressure");
100
101 _friction_vars.push_back(getVar("friction_lm", 0));
102
103 if (_3d)
104 _friction_vars.push_back(getVar("friction_lm_dir", 0));
105
106 if (!_friction_vars[0]->isNodal())
107 if (_friction_vars[0]->feType().order != static_cast<Order>(0))
109 "friction_lm",
110 "Frictional contact constraints only support elemental variables of CONSTANT order");
111
112 // Request the old solution state in unison
114}
const bool _has_friction_function
Boolean to determine whether the friction coefficient is taken from a function.
const Real _epsilon
Minimum value of contact pressure that will trigger including tangential forces in the contact residu...
const ADVariableValue *const _primary_z_dot
z-velocity on the primary face
std::vector< MooseVariable * > _friction_vars
Frictional Lagrange's multiplier variable pointers.
const ADVariableValue & _secondary_y_dot
y-velocity on the secondary face
const ADVariableValue *const _secondary_z_dot
z-velocity on the secondary face
const Moose::Mortar::Contact::FrictionProjectionDegree _friction_projection_degree
Degree of the friction-residual projection used by frictionalContactResidual (see MortarContactUtils....
bool _3d
Automatic flag to determine whether we are doing three-dimensional work.
const ADVariableValue & _secondary_x_dot
x-velocity on the secondary face
const ADVariableValue & _primary_y_dot
y-velocity on the primary face
const Real _c_t
Numerical factor used in the tangential constraints for convergence purposes.
const ADVariableValue & _primary_x_dot
x-velocity on the primary face
Computes the normal contact mortar constraints for dynamic simulations.
const bool _has_disp_z
For 2D mortar contact no displacement will be specified, so const pointers used.
MooseVariable * getVar(const std::string &var_name, unsigned int comp)
const ADVariableValue & adCoupledDot(const std::string &var_name, unsigned int comp=0) const
const Function & getFunction(const std::string &name) const
const InputParameters & parameters() const
void paramError(const std::string &param, Args... args) const
void mooseError(Args &&... args) const
const T & getParam(const std::string &name) const
bool isParamValid(const std::string &name) const
virtual const ADTemplateVariableValue< OutputType > & adUDot() const=0
virtual const ADTemplateVariableValue< OutputType > & adUDotNeighbor() const=0
MooseVariableField< Real > & _primary_var
MooseVariableField< Real > & _secondary_var
virtual const ADVariableValue & adCoupledNeighborValueDot(const std::string &var_name, unsigned int comp=0) const
bool isNodal() const
SystemBase & _sys
NumericVector< Number > & solutionOld()
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real

Member Function Documentation

◆ communicateWear()

void ComputeDynamicWeightedGapLMMechanicalContact::communicateWear ( )
protectedinherited

Definition at line 357 of file ComputeDynamicWeightedGapLMMechanicalContact.C.

358{
359 // We may have wear depth information that should go to other processes that own the dofs
360 using Datum = std::pair<dof_id_type, ADReal>;
361 std::unordered_map<processor_id_type, std::vector<Datum>> push_data;
362
363 for (auto & pr : _dof_to_nodal_wear_depth)
364 {
365 const auto * const dof_object = pr.first;
366 const auto proc_id = dof_object->processor_id();
367 if (proc_id == this->processor_id())
368 continue;
369
370 push_data[proc_id].push_back(std::make_pair(dof_object->id(), std::move(pr.second)));
371 }
372
373 const auto & lm_mesh = _mesh.getMesh();
374
375 auto action_functor = [this, &lm_mesh](const processor_id_type libmesh_dbg_var(pid),
376 const std::vector<Datum> & sent_data)
377 {
378 mooseAssert(pid != this->processor_id(), "We do not send messages to ourself here");
379 for (auto & pr : sent_data)
380 {
381 const auto dof_id = pr.first;
382 const auto * const dof_object = _nodal
383 ? cast_ptr<const DofObject *>(lm_mesh.node_ptr(dof_id))
384 : cast_ptr<const DofObject *>(lm_mesh.elem_ptr(dof_id));
385 mooseAssert(dof_object, "This should be non-null");
386 _dof_to_nodal_wear_depth[dof_object] += std::move(pr.second);
387 }
388 };
389
390 TIMPI::push_parallel_vector_data(_communicator, push_data, action_functor);
391}
std::unordered_map< const DofObject *, ADReal > _dof_to_nodal_wear_depth
A map from node to wear in this step.
const bool _nodal
Whether the dof objects are nodal; if they're not, then they're elemental.
MeshBase & getMesh()
MooseMesh & _mesh
const Parallel::Communicator & _communicator
processor_id_type processor_id() const
uint8_t processor_id_type
void push_parallel_vector_data(const Communicator &comm, MapToVectors &&data, const ActionFunctor &act_on_data)
Tnew cast_ptr(Told *oldvar)

Referenced by ComputeDynamicWeightedGapLMMechanicalContact::incorrectEdgeDroppingPost(), and ComputeDynamicWeightedGapLMMechanicalContact::post().

◆ computeFrictionValue()

ADReal ComputeDynamicFrictionalForceLMMechanicalContact::computeFrictionValue ( const ADReal &  contact_pressure,
const Real &  tangential_vel,
const Real &  tangential_vel_dir 
)
protected

Apply constant or function-based friction coefficient.

Definition at line 362 of file ComputeDynamicFrictionalForceLMMechanicalContact.C.

364{
365 using std::sqrt;
366
367 // TODO: Introduce temperature dependence in the function. Do this when we have an example.
368 ADReal mu_ad;
369
371 mu_ad = _mu;
372 else
373 {
374 ADReal tangential_vel_magnitude =
375 sqrt(tangential_vel * tangential_vel + tangential_vel_dir * tangential_vel_dir + 1.0e-24);
376
377 mu_ad = _function_friction->value<ADReal>(0.0, contact_pressure, tangential_vel_magnitude, 0.0);
378 }
379
380 return mu_ad;
381}
DualNumber< Real, DNDerivativeType, true > ADReal
virtual Real value(Real t, const Point &p) const
CTSub CT_OPERATOR_BINARY CTMul CTCompareLess CTCompareGreater CTCompareEqual _arg template * sqrt(_arg)) *_arg.template D< dtag >()) CT_SIMPLE_UNARY_FUNCTION(tanh

Referenced by enforceConstraintOnDof(), and enforceConstraintOnDof3d().

◆ computeJacobian() [1/4]

virtual void ADMortarConstraint::computeJacobian ( )
protectedvirtualinherited

Reimplemented from ADMortarConstraint.

◆ computeJacobian() [2/4]

void ADMortarConstraint::computeJacobian ( Moose::MortarType  mortar_type)
protectedvirtualinherited

Reimplemented from ADMortarConstraint.

◆ computeJacobian() [3/4]

void ComputeDynamicWeightedGapLMMechanicalContact::computeJacobian ( Moose::MortarType  mortar_type)
overrideprotectedvirtualinherited

Reimplemented from ADMortarConstraint.

Definition at line 434 of file ComputeDynamicWeightedGapLMMechanicalContact.C.

435{
436 // During "computeResidual" and "computeJacobian" we are actually just computing properties on the
437 // mortar segment element mesh. We are *not* actually assembling into the residual/Jacobian. For
438 // the zero-penetration constraint, the property of interest is the map from node to weighted gap.
439 // Computation of the properties proceeds identically for residual and Jacobian evaluation hence
440 // why we simply call computeResidual here. We will assemble into the residual/Jacobian later from
441 // the post() method
442 computeResidual(mortar_type);
443}

◆ computeJacobian() [4/4]

virtual void ADMortarConstraint::computeJacobian ( Moose::MortarType  mortar_type)
protectedvirtualinherited

Reimplemented from ADMortarConstraint.

◆ computeQpIProperties()

void ComputeDynamicFrictionalForceLMMechanicalContact::computeQpIProperties ( )
overrideprotectedvirtual

Computes properties that are functions both of _qp and _i, for example the weighted gap.

Reimplemented from ComputeDynamicWeightedGapLMMechanicalContact.

Definition at line 128 of file ComputeDynamicFrictionalForceLMMechanicalContact.C.

129{
130 // Get the _dof_to_weighted_gap map
132
133 const auto & nodal_tangents = amg().getNodalTangents(*_lower_secondary_elem);
134
135 // Get the _dof_to_weighted_tangential_velocity map
136 const DofObject * const dof =
137 _friction_vars[0]->isNodal()
138 ? cast_ptr<const DofObject *>(_lower_secondary_elem->node_ptr(_i))
139 : cast_ptr<const DofObject *>(_lower_secondary_elem);
140
142 _test[_i][_qp] * _qp_tangential_velocity_nodal * nodal_tangents[0][_i];
143
144 // Get the _dof_to_weighted_tangential_velocity map for a second direction
145 if (_3d)
146 {
148 _test[_i][_qp] * _qp_tangential_velocity_nodal * nodal_tangents[1][_i];
149 }
150}
std::array< MooseUtils::SemidynamicVector< Point, 9 >, 2 > getNodalTangents(const Elem &secondary_elem) const
std::unordered_map< const DofObject *, std::array< ADReal, 2 > > _dof_to_weighted_tangential_velocity
A map from node to two weighted tangential velocities.
ADRealVectorValue _qp_tangential_velocity_nodal
The value of the tangential velocity vectors at the current node.
unsigned int _qp
unsigned int _i
const VariableTestValue & _test
Elem const *const & _lower_secondary_elem
const AutomaticMortarGeneration & amg() const

◆ computeQpProperties()

void ComputeDynamicFrictionalForceLMMechanicalContact::computeQpProperties ( )
overrideprotectedvirtual

Computes properties that are functions only of the current quadrature point (_qp), e.g.

indepedent of shape functions

Reimplemented from ComputeDynamicWeightedGapLMMechanicalContact.

Definition at line 117 of file ComputeDynamicFrictionalForceLMMechanicalContact.C.

118{
119 // Compute the value of _qp_gap
121
122 // It appears that the relative velocity between weighted gap and this class have a sign
123 // difference
125}
virtual void computeQpProperties()
Computes properties that are functions only of the current quadrature point (_qp),...
const MooseArray< Real > & _coord
const std::vector< Real > & _JxW_msm

◆ computeQpResidual()

ADReal ComputeDynamicWeightedGapLMMechanicalContact::computeQpResidual ( Moose::MortarType  mortar_type)
finalprotectedvirtualinherited

Implements ADMortarConstraint.

Definition at line 196 of file ComputeDynamicWeightedGapLMMechanicalContact.C.

197{
199 "We should never call computeQpResidual for ComputeDynamicWeightedGapLMMechanicalContact");
200}

◆ computeResidual() [1/4]

virtual void ADMortarConstraint::computeResidual ( )
protectedvirtualinherited

◆ computeResidual() [2/4]

void ADMortarConstraint::computeResidual ( Moose::MortarType  mortar_type)
protectedvirtualinherited

Reimplemented from ADMortarConstraint.

◆ computeResidual() [3/4]

void ComputeDynamicWeightedGapLMMechanicalContact::computeResidual ( Moose::MortarType  mortar_type)
overrideprotectedvirtualinherited

Reimplemented from ADMortarConstraint.

Definition at line 412 of file ComputeDynamicWeightedGapLMMechanicalContact.C.

413{
414 if (mortar_type != Moose::MortarType::Lower)
415 return;
416
417 mooseAssert(_var, "LM variable is null");
418
419 for (_qp = 0; _qp < _qrule_msm->n_points(); _qp++)
420 {
422 for (_i = 0; _i < _test.size(); ++_i)
424 }
425}
MooseVariable *const _var
const libMesh::QBase *const & _qrule_msm
unsigned int n_points() const

◆ computeResidual() [4/4]

virtual void ADMortarConstraint::computeResidual ( Moose::MortarType  mortar_type)
protectedvirtualinherited

Reimplemented from ADMortarConstraint.

◆ enforceConstraintOnDof()

void ComputeDynamicFrictionalForceLMMechanicalContact::enforceConstraintOnDof ( const DofObject *const  dof)
overrideprotectedvirtual

Method called from post().

Used to enforce node-associated constraints. E.g. for the base ComputeFrictionalForceLMMechanicalContact we enforce PDASS frictional constraints. This is also where we actually feed the node-based constraint information into the system residual and Jacobian

Reimplemented from ComputeDynamicWeightedGapLMMechanicalContact.

Definition at line 317 of file ComputeDynamicFrictionalForceLMMechanicalContact.C.

319{
320 // Get friction LM
321 const auto friction_dof_index = dof->dof_number(_sys.number(), _friction_vars[0]->number(), 0);
322 const ADReal & tangential_vel = *_tangential_vel_ptr[0];
323 ADReal friction_lm_value = (*_sys.currentSolution())(friction_dof_index);
324 Moose::derivInsert(friction_lm_value.derivatives(), friction_dof_index, 1.);
325
326 // Get normal LM
327 const auto normal_dof_index = dof->dof_number(_sys.number(), _var->number(), 0);
328 const ADReal & weighted_gap = *_weighted_gap_ptr;
329 ADReal contact_pressure = (*_sys.currentSolution())(normal_dof_index);
330 Moose::derivInsert(contact_pressure.derivatives(), normal_dof_index, 1.);
331
332 const Real contact_pressure_old = _sys.solutionOld()(normal_dof_index);
333
334 // Get normalized c and c_t values (if normalization specified
335 const Real c = _normalize_c ? _c / *_normalization_ptr : _c;
336 const Real c_t = _normalize_c ? _c_t / *_normalization_ptr : _c_t;
337
338 // Compute the friction coefficient (constant or function)
339 ADReal mu_ad = computeFrictionValue(contact_pressure_old, oldNodalSlipRate(dof)[0], 0.0);
340
341 const std::array<ADReal, 1> tangential_pressure{{friction_lm_value}};
342 const std::array<ADReal, 1> tangential_velocity{{tangential_vel}};
343
344 const ADReal dof_residual =
346 tangential_velocity,
347 ADReal(c_t),
348 ADReal(_dt),
349 contact_pressure,
350 c * weighted_gap,
351 mu_ad,
354
356 std::array<ADReal, 1>{{dof_residual}},
357 std::array<dof_id_type, 1>{{friction_dof_index}},
358 _friction_vars[0]->scalingFactor());
359}
ADReal computeFrictionValue(const ADReal &contact_pressure, const Real &tangential_vel, const Real &tangential_vel_dir)
Apply constant or function-based friction coefficient.
std::array< Real, 2 > oldNodalSlipRate(const DofObject *const dof) const
Nodal slip rates of the previous step at a locally owned dof, or zero if the dof has no history yet (...
std::array< const ADReal *, 2 > _tangential_vel_ptr
An array of two pointers to avoid copies.
const ADReal * _weighted_gap_ptr
A pointer members that can be used to help avoid copying ADReals.
bool _normalize_c
Whether to normalize weighted gap by weighting function norm.
unsigned int number() const
Assembly & _assembly
virtual const NumericVector< Number > *const & currentSolution() const=0
unsigned int number() const
void addResidualsAndJacobian(Assembly &assembly, const Residuals &residuals, const Indices &dof_indices, Real scaling_factor)
std::array< T, N > frictionalContactResidual(const std::array< T, N > &tangential_pressure, const std::array< T, N > &tangential_velocity, const T &c_t, const T &dt, const T &normal_pressure, const T &scaled_normal_gap, const T &friction_coefficient, const T &epsilon, const FrictionProjectionDegree projection_degree)
Compute the epsilon-gated frictional residual for a mortar contact node.
void derivInsert(SemiDynamicSparseNumberArray< Real, libMesh::dof_id_type, NWrapper< N > > &derivs, libMesh::dof_id_type index, Real value)

Referenced by incorrectEdgeDroppingPost(), and post().

◆ enforceConstraintOnDof3d()

void ComputeDynamicFrictionalForceLMMechanicalContact::enforceConstraintOnDof3d ( const DofObject *const  dof)
protectedvirtual

Method called from post().

Used to enforce node-associated constraints. E.g. for the base ComputeFrictionalForceLMMechanicalContact we enforce PDASS frictional constraints. This is also where we actually feed the node-based constraint information into the system residual and Jacobian. Method used to enforce frictional constraints in three-dimensional simulations.

Definition at line 259 of file ComputeDynamicFrictionalForceLMMechanicalContact.C.

261{
262 // Get normal LM
263 const auto normal_dof_index = dof->dof_number(_sys.number(), _var->number(), 0);
264 const ADReal & weighted_gap = *_weighted_gap_ptr;
265 ADReal contact_pressure = (*_sys.currentSolution())(normal_dof_index);
266 Moose::derivInsert(contact_pressure.derivatives(), normal_dof_index, 1.);
267
268 // Get friction LMs
269 std::array<const ADReal *, 2> & tangential_vel = _tangential_vel_ptr;
270 std::array<dof_id_type, 2> friction_dof_indices;
271 std::array<ADReal, 2> friction_lm_values;
272
273 const unsigned int num_tangents = 2;
274 for (const auto i : make_range(num_tangents))
275 {
276 friction_dof_indices[i] = dof->dof_number(_sys.number(), _friction_vars[i]->number(), 0);
277 friction_lm_values[i] = (*_sys.currentSolution())(friction_dof_indices[i]);
278 Moose::derivInsert(friction_lm_values[i].derivatives(), friction_dof_indices[i], 1.);
279 }
280
281 // Get normalized c and c_t values (if normalization specified
282 const Real c = _normalize_c ? _c / *_normalization_ptr : _c;
283 const Real c_t = _normalize_c ? _c_t / *_normalization_ptr : _c_t;
284
285 const Real contact_pressure_old = _sys.solutionOld()(normal_dof_index);
286
287 // Compute the friction coefficient (constant or function)
288 const auto old_slip_rate = oldNodalSlipRate(dof);
289 ADReal mu_ad = computeFrictionValue(contact_pressure_old, old_slip_rate[0], old_slip_rate[1]);
290
291 const std::array<ADReal, 2> tangential_velocity{{*tangential_vel[0], *tangential_vel[1]}};
292
293 const auto residual =
295 tangential_velocity,
296 ADReal(c_t),
297 ADReal(_dt),
298 contact_pressure,
299 c * weighted_gap,
300 mu_ad,
303 const ADReal dof_residual = residual[0];
304 const ADReal dof_residual_dir = residual[1];
305
307 std::array<ADReal, 1>{{dof_residual}},
308 std::array<dof_id_type, 1>{{friction_dof_indices[0]}},
309 _friction_vars[0]->scalingFactor());
311 std::array<ADReal, 1>{{dof_residual_dir}},
312 std::array<dof_id_type, 1>{{friction_dof_indices[1]}},
313 _friction_vars[1]->scalingFactor());
314}
IntRange< T > make_range(T beg, T end)

Referenced by incorrectEdgeDroppingPost(), and post().

◆ incorrectEdgeDroppingPost()

void ComputeDynamicFrictionalForceLMMechanicalContact::incorrectEdgeDroppingPost ( const std::unordered_set< const Node * > &  inactive_lm_nodes)
overridevirtual

Copy of the post routine but that skips assembling inactive nodes.

Reimplemented from ComputeDynamicWeightedGapLMMechanicalContact.

Definition at line 225 of file ComputeDynamicFrictionalForceLMMechanicalContact.C.

227{
229
232
233 // Enforce frictional complementarity constraints
234 for (const auto & pr : _dof_to_weighted_tangential_velocity)
235 {
236 const DofObject * const dof = pr.first;
237
238 // If node inactive, skip
239 if ((inactive_lm_nodes.find(static_cast<const Node *>(dof)) != inactive_lm_nodes.end()) ||
240 (dof->processor_id() != this->processor_id()))
241 continue;
242
243 // Use always weighted gap for dynamic PDASS
246 _tangential_vel_ptr[0] = &pr.second[0];
247
248 if (_3d)
249 {
250 _tangential_vel_ptr[1] = &pr.second[1];
252 }
253 else
255 }
256}
virtual void enforceConstraintOnDof(const DofObject *const dof) override
Method called from post().
virtual void enforceConstraintOnDof3d(const DofObject *const dof)
Method called from post().
std::unordered_map< const DofObject *, std::pair< ADReal, Real > > _dof_to_weighted_gap
A map from node to weighted gap and normalization (if requested)
virtual void incorrectEdgeDroppingPost(const std::unordered_set< const Node * > &inactive_lm_nodes) override
void communicateVelocities(std::unordered_map< const DofObject *, T > &dof_map, const MooseMesh &mesh, const bool nodal, const Parallel::Communicator &communicator, const bool send_data_back)
This function is used to communicate velocities across processes.

◆ jacobianSetup()

void ComputeDynamicWeightedGapLMMechanicalContact::jacobianSetup ( )
finaloverrideprotectedvirtualinherited

◆ oldNodalSlipRate()

std::array< Real, 2 > ComputeDynamicFrictionalForceLMMechanicalContact::oldNodalSlipRate ( const DofObject *const  dof) const
protected

Nodal slip rates of the previous step at a locally owned dof, or zero if the dof has no history yet (first step, or the dof just entered the mortar interface)

Definition at line 384 of file ComputeDynamicFrictionalForceLMMechanicalContact.C.

386{
387 mooseAssert(dof->processor_id() == this->processor_id(),
388 "Slip rate history is only stored for locally owned dofs");
389
390 // A dof has no history on the first step or when it just entered the mortar interface; it has
391 // not slipped yet
392 const auto it = _dof_to_old_real_tangential_velocity.find(dof);
393 return it != _dof_to_old_real_tangential_velocity.end() ? it->second
394 : std::array<Real, 2>{{0.0, 0.0}};
395}
std::unordered_map< const DofObject *, std::array< Real, 2 > > _dof_to_old_real_tangential_velocity
A map from node to the two nodal slip rates of the previous step, used to evaluate the friction funct...

Referenced by enforceConstraintOnDof(), and enforceConstraintOnDof3d().

◆ post()

void ComputeDynamicFrictionalForceLMMechanicalContact::post ( )
overridevirtual

Reimplemented from ComputeDynamicWeightedGapLMMechanicalContact.

Definition at line 191 of file ComputeDynamicFrictionalForceLMMechanicalContact.C.

192{
194
197
198 // Enforce frictional complementarity constraints
199 for (const auto & pr : _dof_to_weighted_tangential_velocity)
200 {
201 const DofObject * const dof = pr.first;
202
203 if (dof->processor_id() != this->processor_id())
204 continue;
205
206 // Use always weighted gap for dynamic PDASS. Omit the dynamic weighted gap approach that is
207 // used in normal contact where the discretized gap velocity is enforced if a node has
208 // identified to be into contact.
209
212 _tangential_vel_ptr[0] = &(pr.second[0]);
213
214 if (_3d)
215 {
216 _tangential_vel_ptr[1] = &(pr.second[1]);
218 }
219 else
221 }
222}

◆ residualSetup()

void ComputeDynamicFrictionalForceLMMechanicalContact::residualSetup ( )
overridevirtual

◆ timestepSetup()

void ComputeDynamicFrictionalForceLMMechanicalContact::timestepSetup ( )
overrideprotectedvirtual

Reimplemented from ADMortarConstraint.

Definition at line 161 of file ComputeDynamicFrictionalForceLMMechanicalContact.C.

162{
163
165
166 // The base class sets _retried_timestep to indicate whether this call is for a retried
167 // timestep (e.g. --test-restep or a rejected step); if so, the history below has already been
168 // advanced from the accepted state and must not be advanced again.
170 return;
171
173
174 // The nodal slip rate is the weighted tangential velocity divided by the integral of the same
175 // test function, which is the nodal coefficient of the mortar projection of the relative
176 // tangential velocity (Wohlmuth 2011, eq. 3.10a)
177 for (const auto & [dof, weighted_velocities] : _dof_to_weighted_tangential_velocity)
178 {
179 // Only the owning process holds the fully summed values
180 if (dof->processor_id() != this->processor_id())
181 continue;
182
183 const Real normalization = libmesh_map_find(_dof_to_weighted_gap, dof).second;
185 {MetaPhysicL::raw_value(weighted_velocities[0]) / normalization,
186 _3d ? MetaPhysicL::raw_value(weighted_velocities[1]) / normalization : 0.0}};
187 }
188}
bool _retried_timestep
Set by timestepSetup() to indicate whether the current call is for a retried timestep,...
auto raw_value(const Eigen::Map< T > &in)

◆ validParams()

InputParameters ComputeDynamicFrictionalForceLMMechanicalContact::validParams ( )
static

Definition at line 33 of file ComputeDynamicFrictionalForceLMMechanicalContact.C.

34{
36 params.addClassDescription("Computes the tangential frictional forces for dynamic simulations");
37 params.addRequiredCoupledVar("friction_lm", "The frictional Lagrange's multiplier");
38 params.addCoupledVar("friction_lm_dir",
39 "The frictional Lagrange's multiplier for an addtional direction.");
40 params.addParam<FunctionName>(
41 "function_friction",
42 "Coupled function to evaluate friction with values from contact pressure and relative "
43 "tangential velocities (from the previous step).");
44 params.addParam<Real>("c_t", 1e0, "Numerical parameter for tangential constraints");
45 params.addParam<Real>(
46 "epsilon",
47 1.0e-7,
48 "Minimum value of contact pressure that will trigger frictional enforcement");
50 "mu", "mu > 0", "The friction coefficient for the Coulomb friction law");
51 MooseEnum friction_projection_degree("ONE TWO", "TWO");
52 friction_projection_degree.addDocumentation(
53 "ONE", "Use the degree-one Alart-Curnier friction residual.");
54 friction_projection_degree.addDocumentation(
55 "TWO", "Use the degree-two Hueber-Stadler-Wohlmuth friction residual.");
56 params.addParam<MooseEnum>(
57 "friction_projection_degree",
58 friction_projection_degree,
59 "Degree of the friction-residual projection; see MortarContactUtils.h.");
60 return params;
61}
void addRequiredCoupledVar(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)
void addCoupledVar(const std::string &name, const std::string &doc_string)
void addRangeCheckedParam(const std::string &name, const T &value, const std::string &parsed_function, const std::string &doc_string)

Member Data Documentation

◆ _3d

bool ComputeDynamicFrictionalForceLMMechanicalContact::_3d
protected

Automatic flag to determine whether we are doing three-dimensional work.

Definition at line 143 of file ComputeDynamicFrictionalForceLMMechanicalContact.h.

Referenced by ComputeDynamicFrictionalForceLMMechanicalContact(), computeQpIProperties(), incorrectEdgeDroppingPost(), post(), and timestepSetup().

◆ _c

const Real ComputeDynamicWeightedGapLMMechanicalContact::_c
protectedinherited

This factor multiplies the weighted gap.

This member, provided through a user parameter, should be of a value such that its product with the gap is on the same scale as the lagrange multiplier

Definition at line 80 of file ComputeDynamicWeightedGapLMMechanicalContact.h.

Referenced by ComputeDynamicWeightedGapLMMechanicalContact::enforceConstraintOnDof(), enforceConstraintOnDof(), and enforceConstraintOnDof3d().

◆ _c_t

const Real ComputeDynamicFrictionalForceLMMechanicalContact::_c_t
protected

Numerical factor used in the tangential constraints for convergence purposes.

Definition at line 101 of file ComputeDynamicFrictionalForceLMMechanicalContact.h.

Referenced by enforceConstraintOnDof(), and enforceConstraintOnDof3d().

◆ _capture_tolerance

const Real ComputeDynamicWeightedGapLMMechanicalContact::_capture_tolerance
protectedinherited

A small threshold gap value to consider that a node needs a "persistency" constraint.

Definition at line 112 of file ComputeDynamicWeightedGapLMMechanicalContact.h.

Referenced by ComputeDynamicWeightedGapLMMechanicalContact::incorrectEdgeDroppingPost(), and ComputeDynamicWeightedGapLMMechanicalContact::post().

◆ _disp_x_var

const MooseVariable* const ComputeDynamicWeightedGapLMMechanicalContact::_disp_x_var
protectedinherited

◆ _disp_y_var

const MooseVariable* const ComputeDynamicWeightedGapLMMechanicalContact::_disp_y_var
protectedinherited

◆ _disp_z_var

const MooseVariable* const ComputeDynamicWeightedGapLMMechanicalContact::_disp_z_var
protectedinherited

◆ _dof_to_nodal_old_wear_depth

std::unordered_map<const DofObject *, ADReal> ComputeDynamicWeightedGapLMMechanicalContact::_dof_to_nodal_old_wear_depth
protectedinherited

A map from node to wear in old step.

Definition at line 155 of file ComputeDynamicWeightedGapLMMechanicalContact.h.

Referenced by ComputeDynamicWeightedGapLMMechanicalContact::timestepSetup().

◆ _dof_to_nodal_wear_depth

std::unordered_map<const DofObject *, ADReal> ComputeDynamicWeightedGapLMMechanicalContact::_dof_to_nodal_wear_depth
protectedinherited

◆ _dof_to_old_real_tangential_velocity

std::unordered_map<const DofObject *, std::array<Real, 2> > ComputeDynamicFrictionalForceLMMechanicalContact::_dof_to_old_real_tangential_velocity
protected

A map from node to the two nodal slip rates of the previous step, used to evaluate the friction function.

Definition at line 92 of file ComputeDynamicFrictionalForceLMMechanicalContact.h.

Referenced by oldNodalSlipRate(), and timestepSetup().

◆ _dof_to_old_velocity

std::unordered_map<const DofObject *, ADReal> ComputeDynamicWeightedGapLMMechanicalContact::_dof_to_old_velocity
protectedinherited

◆ _dof_to_old_weighted_gap

std::unordered_map<const DofObject *, ADReal> ComputeDynamicWeightedGapLMMechanicalContact::_dof_to_old_weighted_gap
protectedinherited

◆ _dof_to_velocity

std::unordered_map<const DofObject *, ADReal> ComputeDynamicWeightedGapLMMechanicalContact::_dof_to_velocity
protectedinherited

◆ _dof_to_weighted_gap

std::unordered_map<const DofObject *, std::pair<ADReal, Real> > ComputeDynamicWeightedGapLMMechanicalContact::_dof_to_weighted_gap
protectedinherited

◆ _dof_to_weighted_gap_dynamics

std::unordered_map<const DofObject *, ADReal> ComputeDynamicWeightedGapLMMechanicalContact::_dof_to_weighted_gap_dynamics
protectedinherited

◆ _dof_to_weighted_tangential_velocity

std::unordered_map<const DofObject *, std::array<ADReal, 2> > ComputeDynamicFrictionalForceLMMechanicalContact::_dof_to_weighted_tangential_velocity
protected

A map from node to two weighted tangential velocities.

Definition at line 88 of file ComputeDynamicFrictionalForceLMMechanicalContact.h.

Referenced by computeQpIProperties(), incorrectEdgeDroppingPost(), post(), residualSetup(), and timestepSetup().

◆ _epsilon

const Real ComputeDynamicFrictionalForceLMMechanicalContact::_epsilon
protected

Minimum value of contact pressure that will trigger including tangential forces in the contact residual calculation.

Definition at line 131 of file ComputeDynamicFrictionalForceLMMechanicalContact.h.

Referenced by enforceConstraintOnDof(), and enforceConstraintOnDof3d().

◆ _friction_projection_degree

const Moose::Mortar::Contact::FrictionProjectionDegree ComputeDynamicFrictionalForceLMMechanicalContact::_friction_projection_degree
protected

Degree of the friction-residual projection used by frictionalContactResidual (see MortarContactUtils.h): ONE selects Alart-Curnier, TWO (the default) selects Hueber-Stadler-Wohlmuth.

Definition at line 106 of file ComputeDynamicFrictionalForceLMMechanicalContact.h.

Referenced by enforceConstraintOnDof(), and enforceConstraintOnDof3d().

◆ _friction_vars

std::vector<MooseVariable *> ComputeDynamicFrictionalForceLMMechanicalContact::_friction_vars
protected

◆ _function_friction

const Function* const ComputeDynamicFrictionalForceLMMechanicalContact::_function_friction
protected

input function

Definition at line 137 of file ComputeDynamicFrictionalForceLMMechanicalContact.h.

Referenced by computeFrictionValue().

◆ _has_disp_z

const bool ComputeDynamicWeightedGapLMMechanicalContact::_has_disp_z
protectedinherited

For 2D mortar contact no displacement will be specified, so const pointers used.

Definition at line 71 of file ComputeDynamicWeightedGapLMMechanicalContact.h.

Referenced by ComputeDynamicWeightedGapLMMechanicalContact::computeQpProperties().

◆ _has_friction_function

const bool ComputeDynamicFrictionalForceLMMechanicalContact::_has_friction_function
protected

Boolean to determine whether the friction coefficient is taken from a function.

Definition at line 140 of file ComputeDynamicFrictionalForceLMMechanicalContact.h.

Referenced by ComputeDynamicFrictionalForceLMMechanicalContact(), and computeFrictionValue().

◆ _has_wear

const bool ComputeDynamicWeightedGapLMMechanicalContact::_has_wear
protectedinherited

Flag to determine whether wear needs to be included in the contact constraints.

Definition at line 123 of file ComputeDynamicWeightedGapLMMechanicalContact.h.

Referenced by ComputeDynamicWeightedGapLMMechanicalContact::incorrectEdgeDroppingPost(), and ComputeDynamicWeightedGapLMMechanicalContact::post().

◆ _mu

const Real ComputeDynamicFrictionalForceLMMechanicalContact::_mu
protected

Friction coefficient.

Definition at line 134 of file ComputeDynamicFrictionalForceLMMechanicalContact.h.

Referenced by computeFrictionValue().

◆ _newmark_beta

const Real ComputeDynamicWeightedGapLMMechanicalContact::_newmark_beta
protectedinherited

◆ _newmark_gamma

const Real ComputeDynamicWeightedGapLMMechanicalContact::_newmark_gamma
protectedinherited

◆ _nodal

const bool ComputeDynamicWeightedGapLMMechanicalContact::_nodal
protectedinherited

◆ _normalization_ptr

const Real* ComputeDynamicWeightedGapLMMechanicalContact::_normalization_ptr = nullptr
protectedinherited

◆ _normalize_c

bool ComputeDynamicWeightedGapLMMechanicalContact::_normalize_c
protectedinherited

Whether to normalize weighted gap by weighting function norm.

Definition at line 89 of file ComputeDynamicWeightedGapLMMechanicalContact.h.

Referenced by ComputeDynamicWeightedGapLMMechanicalContact::enforceConstraintOnDof(), enforceConstraintOnDof(), and enforceConstraintOnDof3d().

◆ _primary_disp_x

const ADVariableValue& ComputeDynamicWeightedGapLMMechanicalContact::_primary_disp_x
protectedinherited

x-displacement on the primary face

Definition at line 64 of file ComputeDynamicWeightedGapLMMechanicalContact.h.

Referenced by ComputeDynamicWeightedGapLMMechanicalContact::computeQpProperties().

◆ _primary_disp_y

const ADVariableValue& ComputeDynamicWeightedGapLMMechanicalContact::_primary_disp_y
protectedinherited

y-displacement on the primary face

Definition at line 68 of file ComputeDynamicWeightedGapLMMechanicalContact.h.

Referenced by ComputeDynamicWeightedGapLMMechanicalContact::computeQpProperties().

◆ _primary_disp_z

const ADVariableValue* const ComputeDynamicWeightedGapLMMechanicalContact::_primary_disp_z
protectedinherited

z-displacement on the primary face

Definition at line 75 of file ComputeDynamicWeightedGapLMMechanicalContact.h.

◆ _primary_x_dot

const ADVariableValue& ComputeDynamicFrictionalForceLMMechanicalContact::_primary_x_dot
protected

x-velocity on the primary face

Definition at line 115 of file ComputeDynamicFrictionalForceLMMechanicalContact.h.

◆ _primary_y_dot

const ADVariableValue& ComputeDynamicFrictionalForceLMMechanicalContact::_primary_y_dot
protected

y-velocity on the primary face

Definition at line 121 of file ComputeDynamicFrictionalForceLMMechanicalContact.h.

◆ _primary_z_dot

const ADVariableValue* const ComputeDynamicFrictionalForceLMMechanicalContact::_primary_z_dot
protected

z-velocity on the primary face

Definition at line 127 of file ComputeDynamicFrictionalForceLMMechanicalContact.h.

◆ _qp_factor

Real ComputeDynamicWeightedGapLMMechanicalContact::_qp_factor
protectedinherited

◆ _qp_gap

ADReal ComputeDynamicWeightedGapLMMechanicalContact::_qp_gap
protectedinherited

The value of the gap at the current quadrature point.

Definition at line 83 of file ComputeDynamicWeightedGapLMMechanicalContact.h.

◆ _qp_gap_nodal

ADRealVectorValue ComputeDynamicWeightedGapLMMechanicalContact::_qp_gap_nodal
protectedinherited

◆ _qp_gap_nodal_dynamics

ADRealVectorValue ComputeDynamicWeightedGapLMMechanicalContact::_qp_gap_nodal_dynamics
protectedinherited

Vector for computation of weighted gap velocity to fulfill "persistency" condition.

Definition at line 132 of file ComputeDynamicWeightedGapLMMechanicalContact.h.

Referenced by ComputeDynamicWeightedGapLMMechanicalContact::computeQpIProperties(), and ComputeDynamicWeightedGapLMMechanicalContact::computeQpProperties().

◆ _qp_tangential_velocity_nodal

ADRealVectorValue ComputeDynamicFrictionalForceLMMechanicalContact::_qp_tangential_velocity_nodal
protected

The value of the tangential velocity vectors at the current node.

Definition at line 98 of file ComputeDynamicFrictionalForceLMMechanicalContact.h.

Referenced by computeQpIProperties(), and computeQpProperties().

◆ _qp_velocity

ADRealVectorValue ComputeDynamicWeightedGapLMMechanicalContact::_qp_velocity
protectedinherited

Vector for computation of weighted gap velocity to fulfill "persistency" condition.

Definition at line 135 of file ComputeDynamicWeightedGapLMMechanicalContact.h.

Referenced by ComputeDynamicWeightedGapLMMechanicalContact::computeQpIProperties(), and ComputeDynamicWeightedGapLMMechanicalContact::computeQpProperties().

◆ _relative_velocity

ADRealVectorValue ComputeDynamicWeightedGapLMMechanicalContact::_relative_velocity
protectedinherited

◆ _retried_timestep

bool ComputeDynamicWeightedGapLMMechanicalContact::_retried_timestep
protectedinherited

Set by timestepSetup() to indicate whether the current call is for a retried timestep, so that derived classes advancing their own history in an overriding timestepSetup() can skip doing so as well.

Definition at line 169 of file ComputeDynamicWeightedGapLMMechanicalContact.h.

Referenced by timestepSetup(), and ComputeDynamicWeightedGapLMMechanicalContact::timestepSetup().

◆ _secondary_disp_x

const ADVariableValue& ComputeDynamicWeightedGapLMMechanicalContact::_secondary_disp_x
protectedinherited

x-displacement on the secondary face

Definition at line 62 of file ComputeDynamicWeightedGapLMMechanicalContact.h.

Referenced by ComputeDynamicWeightedGapLMMechanicalContact::computeQpProperties().

◆ _secondary_disp_y

const ADVariableValue& ComputeDynamicWeightedGapLMMechanicalContact::_secondary_disp_y
protectedinherited

y-displacement on the secondary face

Definition at line 66 of file ComputeDynamicWeightedGapLMMechanicalContact.h.

Referenced by ComputeDynamicWeightedGapLMMechanicalContact::computeQpProperties().

◆ _secondary_disp_z

const ADVariableValue* const ComputeDynamicWeightedGapLMMechanicalContact::_secondary_disp_z
protectedinherited

z-displacement on the secondary face

Definition at line 73 of file ComputeDynamicWeightedGapLMMechanicalContact.h.

◆ _secondary_x_dot

const ADVariableValue& ComputeDynamicFrictionalForceLMMechanicalContact::_secondary_x_dot
protected

x-velocity on the secondary face

Definition at line 112 of file ComputeDynamicFrictionalForceLMMechanicalContact.h.

◆ _secondary_y_dot

const ADVariableValue& ComputeDynamicFrictionalForceLMMechanicalContact::_secondary_y_dot
protected

y-velocity on the secondary face

Definition at line 118 of file ComputeDynamicFrictionalForceLMMechanicalContact.h.

◆ _secondary_z_dot

const ADVariableValue* const ComputeDynamicFrictionalForceLMMechanicalContact::_secondary_z_dot
protected

z-velocity on the secondary face

Definition at line 124 of file ComputeDynamicFrictionalForceLMMechanicalContact.h.

◆ _t_step_old

int& ComputeDynamicWeightedGapLMMechanicalContact::_t_step_old
protectedinherited

The timestep index at which the history maps (_dof_to_old_weighted_gap, _dof_to_old_velocity, _dof_to_nodal_old_wear_depth) were last advanced.

Used to detect a retried timestep (e.g. –test-restep or a rejected step), since timestepSetup() runs once per time step attempt rather than once per accepted step.

Definition at line 164 of file ComputeDynamicWeightedGapLMMechanicalContact.h.

Referenced by ComputeDynamicWeightedGapLMMechanicalContact::timestepSetup().

◆ _tangential_vel_ptr

std::array<const ADReal *, 2> ComputeDynamicFrictionalForceLMMechanicalContact::_tangential_vel_ptr = {{nullptr, nullptr}}
protected

An array of two pointers to avoid copies.

Definition at line 95 of file ComputeDynamicFrictionalForceLMMechanicalContact.h.

95{{nullptr, nullptr}};

Referenced by enforceConstraintOnDof(), enforceConstraintOnDof3d(), incorrectEdgeDroppingPost(), and post().

◆ _wear_depth

const VariableValue& ComputeDynamicWeightedGapLMMechanicalContact::_wear_depth
protectedinherited

Wear depth to include contact.

Definition at line 126 of file ComputeDynamicWeightedGapLMMechanicalContact.h.

Referenced by ComputeDynamicWeightedGapLMMechanicalContact::computeQpIProperties().

◆ _weighted_gap_ptr

const ADReal* ComputeDynamicWeightedGapLMMechanicalContact::_weighted_gap_ptr = nullptr
protectedinherited

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