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.
 
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
 
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_real_tangential_velocity
 A map from node to two tangential velocities. Required to have direct connection to physics.
 
std::unordered_map< const DofObject *, std::array< Real, 2 > > _dof_to_old_real_tangential_velocity
 A map from node to two old tangential velocities. Required to have direct connection to physics.
 
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.
 
ADRealVectorValue _qp_real_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 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 62 of file ComputeDynamicFrictionalForceLMMechanicalContact.C.

65 _c_t(getParam<Real>("c_t")),
66 _friction_projection_degree(getParam<MooseEnum>("friction_projection_degree")
67 .getEnum<Moose::Mortar::Contact::FrictionProjectionDegree>()),
72 _secondary_z_dot(_has_disp_z ? &adCoupledDot("disp_z") : nullptr),
74 _epsilon(getParam<Real>("epsilon")),
75 _mu(isParamValid("mu") ? getParam<Real>("mu") : std::numeric_limits<double>::quiet_NaN()),
76 _function_friction(isParamValid("function_friction") ? &getFunction("function_friction")
77 : nullptr),
78 _has_friction_function(isParamValid("function_friction")),
80{
83 "A coefficient of friction needs to be provided as a constant value of via a function.");
84
86 paramError("mu",
87 "Either provide a constant coefficient of friction or a function defining the "
88 "coefficient of friction. Both inputs cannot be provided simultaneously.");
89
90 if (!getParam<bool>("use_displaced_mesh"))
91 paramError("use_displaced_mesh",
92 "'use_displaced_mesh' must be true for the "
93 "ComputeFrictionalForceLMMechanicalContact object");
94
95 if (_3d && !isParamValid("friction_lm_dir"))
96 paramError("friction_lm_dir",
97 "Three-dimensional mortar frictional contact simulations require an additional "
98 "frictional Lagrange's multiplier to enforce a second tangential pressure");
99
100 _friction_vars.push_back(getVar("friction_lm", 0));
101
102 if (_3d)
103 _friction_vars.push_back(getVar("friction_lm_dir", 0));
104
105 if (!_friction_vars[0]->isNodal())
106 if (_friction_vars[0]->feType().order != static_cast<Order>(0))
108 "friction_lm",
109 "Frictional contact constraints only support elemental variables of CONSTANT order");
110
111 // Request the old solution state in unison
113}
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 355 of file ComputeDynamicWeightedGapLMMechanicalContact.C.

356{
357 // We may have wear depth information that should go to other processes that own the dofs
358 using Datum = std::pair<dof_id_type, ADReal>;
359 std::unordered_map<processor_id_type, std::vector<Datum>> push_data;
360
361 for (auto & pr : _dof_to_nodal_wear_depth)
362 {
363 const auto * const dof_object = pr.first;
364 const auto proc_id = dof_object->processor_id();
365 if (proc_id == this->processor_id())
366 continue;
367
368 push_data[proc_id].push_back(std::make_pair(dof_object->id(), std::move(pr.second)));
369 }
370
371 const auto & lm_mesh = _mesh.getMesh();
372
373 auto action_functor = [this, &lm_mesh](const processor_id_type libmesh_dbg_var(pid),
374 const std::vector<Datum> & sent_data)
375 {
376 mooseAssert(pid != this->processor_id(), "We do not send messages to ourself here");
377 for (auto & pr : sent_data)
378 {
379 const auto dof_id = pr.first;
380 const auto * const dof_object = _nodal
381 ? cast_ptr<const DofObject *>(lm_mesh.node_ptr(dof_id))
382 : cast_ptr<const DofObject *>(lm_mesh.elem_ptr(dof_id));
383 mooseAssert(dof_object, "This should be non-null");
384 _dof_to_nodal_wear_depth[dof_object] += std::move(pr.second);
385 }
386 };
387
388 TIMPI::push_parallel_vector_data(_communicator, push_data, action_functor);
389}
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 369 of file ComputeDynamicFrictionalForceLMMechanicalContact.C.

371{
372 using std::sqrt;
373
374 // TODO: Introduce temperature dependence in the function. Do this when we have an example.
375 ADReal mu_ad;
376
378 mu_ad = _mu;
379 else
380 {
381 ADReal tangential_vel_magnitude =
382 sqrt(tangential_vel * tangential_vel + tangential_vel_dir * tangential_vel_dir + 1.0e-24);
383
384 mu_ad = _function_friction->value<ADReal>(0.0, contact_pressure, tangential_vel_magnitude, 0.0);
385 }
386
387 return mu_ad;
388}
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 432 of file ComputeDynamicWeightedGapLMMechanicalContact.C.

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

◆ 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
146 nodal_tangents[0][_i];
147
148 // Get the _dof_to_weighted_tangential_velocity map for a second direction
149 if (_3d)
150 {
152 _test[_i][_qp] * _qp_tangential_velocity_nodal * nodal_tangents[1][_i];
153
156 nodal_tangents[1][_i];
157 }
158}
std::array< MooseUtils::SemidynamicVector< Point, 9 >, 2 > getNodalTangents(const Elem &secondary_elem) const
std::unordered_map< const DofObject *, std::array< Real, 2 > > _dof_to_real_tangential_velocity
A map from node to two tangential velocities. Required to have direct connection to physics.
ADRealVectorValue _qp_real_tangential_velocity_nodal
The value of the tangential velocity vectors at the current node.
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
auto raw_value(const Eigen::Map< T > &in)

◆ 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 116 of file ComputeDynamicFrictionalForceLMMechanicalContact.C.

117{
118 // Compute the value of _qp_gap
120
121 // It appears that the relative velocity between weighted gap and this class have a sign
122 // 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 194 of file ComputeDynamicWeightedGapLMMechanicalContact.C.

195{
197 "We should never call computeQpResidual for ComputeDynamicWeightedGapLMMechanicalContact");
198}

◆ 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 410 of file ComputeDynamicWeightedGapLMMechanicalContact.C.

411{
412 if (mortar_type != Moose::MortarType::Lower)
413 return;
414
415 mooseAssert(_var, "LM variable is null");
416
417 for (_qp = 0; _qp < _qrule_msm->n_points(); _qp++)
418 {
420 for (_i = 0; _i < _test.size(); ++_i)
422 }
423}
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 323 of file ComputeDynamicFrictionalForceLMMechanicalContact.C.

325{
326 // Get friction LM
327 const auto friction_dof_index = dof->dof_number(_sys.number(), _friction_vars[0]->number(), 0);
328 const ADReal & tangential_vel = *_tangential_vel_ptr[0];
329 ADReal friction_lm_value = (*_sys.currentSolution())(friction_dof_index);
330 Moose::derivInsert(friction_lm_value.derivatives(), friction_dof_index, 1.);
331
332 // Get normal LM
333 const auto normal_dof_index = dof->dof_number(_sys.number(), _var->number(), 0);
334 const ADReal & weighted_gap = *_weighted_gap_ptr;
335 ADReal contact_pressure = (*_sys.currentSolution())(normal_dof_index);
336 Moose::derivInsert(contact_pressure.derivatives(), normal_dof_index, 1.);
337
338 const Real contact_pressure_old = _sys.solutionOld()(normal_dof_index);
339
340 // Get normalized c and c_t values (if normalization specified
341 const Real c = _normalize_c ? _c / *_normalization_ptr : _c;
342 const Real c_t = _normalize_c ? _c_t / *_normalization_ptr : _c_t;
343
344 // Compute the friction coefficient (constant or function)
345 ADReal mu_ad =
346 computeFrictionValue(contact_pressure_old, _dof_to_old_real_tangential_velocity[dof][0], 0.0);
347
348 const std::array<ADReal, 1> tangential_pressure{{friction_lm_value}};
349 const std::array<ADReal, 1> tangential_velocity{{tangential_vel}};
350
351 const ADReal dof_residual =
353 tangential_velocity,
354 ADReal(c_t),
355 ADReal(_dt),
356 contact_pressure,
357 c * weighted_gap,
358 mu_ad,
361
363 std::array<ADReal, 1>{{dof_residual}},
364 std::array<dof_id_type, 1>{{friction_dof_index}},
365 _friction_vars[0]->scalingFactor());
366}
ADReal computeFrictionValue(const ADReal &contact_pressure, const Real &tangential_vel, const Real &tangential_vel_dir)
Apply constant or function-based friction coefficient.
std::array< const ADReal *, 2 > _tangential_vel_ptr
An array of two pointers to avoid copies.
std::unordered_map< const DofObject *, std::array< Real, 2 > > _dof_to_old_real_tangential_velocity
A map from node to two old tangential velocities. Required to have direct connection to physics.
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 264 of file ComputeDynamicFrictionalForceLMMechanicalContact.C.

266{
267 // Get normal LM
268 const auto normal_dof_index = dof->dof_number(_sys.number(), _var->number(), 0);
269 const ADReal & weighted_gap = *_weighted_gap_ptr;
270 ADReal contact_pressure = (*_sys.currentSolution())(normal_dof_index);
271 Moose::derivInsert(contact_pressure.derivatives(), normal_dof_index, 1.);
272
273 // Get friction LMs
274 std::array<const ADReal *, 2> & tangential_vel = _tangential_vel_ptr;
275 std::array<dof_id_type, 2> friction_dof_indices;
276 std::array<ADReal, 2> friction_lm_values;
277
278 const unsigned int num_tangents = 2;
279 for (const auto i : make_range(num_tangents))
280 {
281 friction_dof_indices[i] = dof->dof_number(_sys.number(), _friction_vars[i]->number(), 0);
282 friction_lm_values[i] = (*_sys.currentSolution())(friction_dof_indices[i]);
283 Moose::derivInsert(friction_lm_values[i].derivatives(), friction_dof_indices[i], 1.);
284 }
285
286 // Get normalized c and c_t values (if normalization specified
287 const Real c = _normalize_c ? _c / *_normalization_ptr : _c;
288 const Real c_t = _normalize_c ? _c_t / *_normalization_ptr : _c_t;
289
290 const Real contact_pressure_old = _sys.solutionOld()(normal_dof_index);
291
292 // Compute the friction coefficient (constant or function)
293 ADReal mu_ad = computeFrictionValue(contact_pressure_old,
296
297 const std::array<ADReal, 2> tangential_velocity{{*tangential_vel[0], *tangential_vel[1]}};
298
299 const auto residual =
301 tangential_velocity,
302 ADReal(c_t),
303 ADReal(_dt),
304 contact_pressure,
305 c * weighted_gap,
306 mu_ad,
309 const ADReal dof_residual = residual[0];
310 const ADReal dof_residual_dir = residual[1];
311
313 std::array<ADReal, 1>{{dof_residual}},
314 std::array<dof_id_type, 1>{{friction_dof_indices[0]}},
315 _friction_vars[0]->scalingFactor());
317 std::array<ADReal, 1>{{dof_residual_dir}},
318 std::array<dof_id_type, 1>{{friction_dof_indices[1]}},
319 _friction_vars[1]->scalingFactor());
320}
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 226 of file ComputeDynamicFrictionalForceLMMechanicalContact.C.

228{
230
233
237
238 // Enforce frictional complementarity constraints
239 for (const auto & pr : _dof_to_weighted_tangential_velocity)
240 {
241 const DofObject * const dof = pr.first;
242
243 // If node inactive, skip
244 if ((inactive_lm_nodes.find(static_cast<const Node *>(dof)) != inactive_lm_nodes.end()) ||
245 (dof->processor_id() != this->processor_id()))
246 continue;
247
248 // Use always weighted gap for dynamic PDASS
251 _tangential_vel_ptr[0] = &pr.second[0];
252
253 if (_3d)
254 {
255 _tangential_vel_ptr[1] = &pr.second[1];
257 }
258 else
260 }
261}
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

◆ post()

void ComputeDynamicFrictionalForceLMMechanicalContact::post ( )
overridevirtual

Reimplemented from ComputeDynamicWeightedGapLMMechanicalContact.

Definition at line 188 of file ComputeDynamicFrictionalForceLMMechanicalContact.C.

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

◆ residualSetup()

void ComputeDynamicFrictionalForceLMMechanicalContact::residualSetup ( )
overridevirtual

◆ timestepSetup()

void ComputeDynamicFrictionalForceLMMechanicalContact::timestepSetup ( )
overrideprotectedvirtual

Reimplemented from ADMortarConstraint.

Definition at line 170 of file ComputeDynamicFrictionalForceLMMechanicalContact.C.

171{
172
174
175 // The base class sets _retried_timestep to indicate whether this call is for a retried
176 // timestep (e.g. --test-restep or a rejected step); if so, the history below has already been
177 // advanced from the accepted state and must not be advanced again.
179 return;
180
182
183 for (auto & map_pr : _dof_to_real_tangential_velocity)
185}
bool _retried_timestep
Set by timestepSetup() to indicate whether the current call is for a retried timestep,...

◆ 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");
49 params.addParam<Real>("mu", "The friction coefficient for the Coulomb friction law");
50 MooseEnum friction_projection_degree("ONE TWO", "TWO");
51 friction_projection_degree.addDocumentation(
52 "ONE", "Use the degree-one Alart-Curnier friction residual.");
53 friction_projection_degree.addDocumentation(
54 "TWO", "Use the degree-two Hueber-Stadler-Wohlmuth friction residual.");
55 params.addParam<MooseEnum>(
56 "friction_projection_degree",
57 friction_projection_degree,
58 "Degree of the friction-residual projection; see MortarContactUtils.h.");
59 return params;
60}
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)

Member Data Documentation

◆ _3d

bool ComputeDynamicFrictionalForceLMMechanicalContact::_3d
protected

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

Definition at line 142 of file ComputeDynamicFrictionalForceLMMechanicalContact.h.

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

◆ _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 100 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 two old tangential velocities. Required to have direct connection to physics.

Definition at line 88 of file ComputeDynamicFrictionalForceLMMechanicalContact.h.

Referenced by enforceConstraintOnDof(), enforceConstraintOnDof3d(), 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_real_tangential_velocity

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

A map from node to two tangential velocities. Required to have direct connection to physics.

Definition at line 85 of file ComputeDynamicFrictionalForceLMMechanicalContact.h.

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

◆ _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 82 of file ComputeDynamicFrictionalForceLMMechanicalContact.h.

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

◆ _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 130 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 105 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 136 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 139 of file ComputeDynamicFrictionalForceLMMechanicalContact.h.

Referenced by ComputeDynamicFrictionalForceLMMechanicalContact(), computeFrictionValue(), incorrectEdgeDroppingPost(), and post().

◆ _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 133 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

◆ _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 114 of file ComputeDynamicFrictionalForceLMMechanicalContact.h.

◆ _primary_y_dot

const ADVariableValue& ComputeDynamicFrictionalForceLMMechanicalContact::_primary_y_dot
protected

y-velocity on the primary face

Definition at line 120 of file ComputeDynamicFrictionalForceLMMechanicalContact.h.

◆ _primary_z_dot

const ADVariableValue* const ComputeDynamicFrictionalForceLMMechanicalContact::_primary_z_dot
protected

z-velocity on the primary face

Definition at line 126 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_real_tangential_velocity_nodal

ADRealVectorValue ComputeDynamicFrictionalForceLMMechanicalContact::_qp_real_tangential_velocity_nodal
protected

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

Definition at line 97 of file ComputeDynamicFrictionalForceLMMechanicalContact.h.

Referenced by computeQpIProperties(), and 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 94 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 111 of file ComputeDynamicFrictionalForceLMMechanicalContact.h.

◆ _secondary_y_dot

const ADVariableValue& ComputeDynamicFrictionalForceLMMechanicalContact::_secondary_y_dot
protected

y-velocity on the secondary face

Definition at line 117 of file ComputeDynamicFrictionalForceLMMechanicalContact.h.

◆ _secondary_z_dot

const ADVariableValue* const ComputeDynamicFrictionalForceLMMechanicalContact::_secondary_z_dot
protected

z-velocity on the secondary face

Definition at line 123 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 91 of file ComputeDynamicFrictionalForceLMMechanicalContact.h.

91{{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: