https://mooseframework.inl.gov
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 | List of all members
ComputeFrictionalForceLMMechanicalContact Class Reference

Computes frictional constraints (and normal contact constraints by calling its parent object) More...

#include <ComputeFrictionalForceLMMechanicalContact.h>

Inheritance diagram for ComputeFrictionalForceLMMechanicalContact:
[legend]

Public Types

enum  ResidualTagType { ResidualTagType::NonReference, ResidualTagType::Reference }
 
typedef DataFileName DataFileParameterType
 

Public Member Functions

 ComputeFrictionalForceLMMechanicalContact (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. More...
 
void computeResidual (Moose::MortarType mortar_type) override
 
virtual void computeResidual () override
 
void computeResidual (Moose::MortarType mortar_type) override
 
virtual void computeResidual () override
 
virtual void computeResidual (Moose::MortarType mortar_type)=0
 
virtual void computeResidual () override
 
void computeJacobian (Moose::MortarType mortar_type) override
 
virtual void computeJacobian () override
 
void computeJacobian (Moose::MortarType mortar_type) override
 
virtual void computeJacobian () override
 
virtual void computeJacobian (Moose::MortarType mortar_type)=0
 
virtual void computeJacobian () override
 
void jacobianSetup () override final
 
const MooseVariablevariable () const override
 
const MooseVariablevariablePtr () 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 SubProblemsubProblem () const
 
virtual void prepareShapes (unsigned int var_num)
 
virtual std::set< std::string > additionalROVariables ()
 
virtual bool enabled () const
 
std::shared_ptr< MooseObjectgetSharedPtr ()
 
std::shared_ptr< const MooseObjectgetSharedPtr () const
 
MooseAppgetMooseApp () const
 
const std::string & type () const
 
virtual const std::string & name () const
 
std::string typeAndName () const
 
std::string errorPrefix (const std::string &error_type) const
 
void callMooseError (std::string msg, const bool with_prefix) const
 
MooseObjectParameterName uniqueParameterName (const std::string &parameter_name) const
 
const InputParametersparameters () const
 
MooseObjectName uniqueName () const
 
const T & getParam (const std::string &name) const
 
std::vector< std::pair< T1, T2 > > getParam (const std::string &param1, const std::string &param2) const
 
const T * queryParam (const std::string &name) const
 
const T & getRenamedParam (const std::string &old_name, const std::string &new_name) const
 
getCheckedPointerParam (const std::string &name, const std::string &error_string="") const
 
bool isParamValid (const std::string &name) const
 
bool isParamSetByUser (const std::string &nm) const
 
void paramError (const std::string &param, Args... args) const
 
void paramWarning (const std::string &param, Args... args) const
 
void paramInfo (const std::string &param, Args... args) const
 
void connectControllableParams (const std::string &parameter, const std::string &object_type, const std::string &object_name, const std::string &object_parameter) const
 
void mooseError (Args &&... args) const
 
void mooseErrorNonPrefixed (Args &&... args) const
 
void mooseDocumentedError (const std::string &repo_name, const unsigned int issue_num, Args &&... args) const
 
void mooseWarning (Args &&... args) const
 
void mooseWarningNonPrefixed (Args &&... args) const
 
void mooseDeprecated (Args &&... args) const
 
void mooseInfo (Args &&... args) const
 
std::string getDataFileName (const std::string &param) const
 
std::string getDataFileNameByName (const std::string &relative_path) const
 
std::string getDataFilePath (const std::string &relative_path) const
 
virtual void initialSetup ()
 
virtual void timestepSetup ()
 
virtual void customSetup (const ExecFlagType &)
 
const ExecFlagEnumgetExecuteOnEnum () const
 
const FunctiongetFunction (const std::string &name) const
 
const FunctiongetFunctionByName (const FunctionName &name) const
 
bool hasFunction (const std::string &param_name) const
 
bool hasFunctionByName (const FunctionName &name) const
 
UserObjectName getUserObjectName (const std::string &param_name) const
 
const T & getUserObject (const std::string &param_name, bool is_dependency=true) const
 
const T & getUserObjectByName (const UserObjectName &object_name, bool is_dependency=true) const
 
const UserObjectgetUserObjectBase (const std::string &param_name, bool is_dependency=true) const
 
const UserObjectgetUserObjectBaseByName (const UserObjectName &object_name, bool is_dependency=true) const
 
bool isImplicit ()
 
Moose::StateArg determineState () const
 
bool isDefaultPostprocessorValue (const std::string &param_name, const unsigned int index=0) const
 
bool hasPostprocessor (const std::string &param_name, const unsigned int index=0) const
 
bool hasPostprocessorByName (const PostprocessorName &name) const
 
std::size_t coupledPostprocessors (const std::string &param_name) const
 
const PostprocessorName & getPostprocessorName (const std::string &param_name, const unsigned int index=0) const
 
const VectorPostprocessorValuegetVectorPostprocessorValue (const std::string &param_name, const std::string &vector_name) const
 
const VectorPostprocessorValuegetVectorPostprocessorValue (const std::string &param_name, const std::string &vector_name, bool needs_broadcast) const
 
const VectorPostprocessorValuegetVectorPostprocessorValueByName (const VectorPostprocessorName &name, const std::string &vector_name) const
 
const VectorPostprocessorValuegetVectorPostprocessorValueByName (const VectorPostprocessorName &name, const std::string &vector_name, bool needs_broadcast) const
 
const VectorPostprocessorValuegetVectorPostprocessorValueOld (const std::string &param_name, const std::string &vector_name) const
 
const VectorPostprocessorValuegetVectorPostprocessorValueOld (const std::string &param_name, const std::string &vector_name, bool needs_broadcast) const
 
const VectorPostprocessorValuegetVectorPostprocessorValueOldByName (const VectorPostprocessorName &name, const std::string &vector_name) const
 
const VectorPostprocessorValuegetVectorPostprocessorValueOldByName (const VectorPostprocessorName &name, const std::string &vector_name, bool needs_broadcast) const
 
const ScatterVectorPostprocessorValuegetScatterVectorPostprocessorValue (const std::string &param_name, const std::string &vector_name) const
 
const ScatterVectorPostprocessorValuegetScatterVectorPostprocessorValueByName (const VectorPostprocessorName &name, const std::string &vector_name) const
 
const ScatterVectorPostprocessorValuegetScatterVectorPostprocessorValueOld (const std::string &param_name, const std::string &vector_name) const
 
const ScatterVectorPostprocessorValuegetScatterVectorPostprocessorValueOldByName (const VectorPostprocessorName &name, const std::string &vector_name) const
 
bool hasVectorPostprocessor (const std::string &param_name, const std::string &vector_name) const
 
bool hasVectorPostprocessor (const std::string &param_name) const
 
bool hasVectorPostprocessorByName (const VectorPostprocessorName &name, const std::string &vector_name) const
 
bool hasVectorPostprocessorByName (const VectorPostprocessorName &name) const
 
const VectorPostprocessorName & getVectorPostprocessorName (const std::string &param_name) const
 
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 VariableValuecoupledNeighborValue (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 ADVariableValueadCoupledNeighborValue (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 ADVariableValueadCoupledNeighborValueDot (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const ADVariableValue *> adCoupledNeighborValues (const std::string &var_name) const
 
virtual const ADVectorVariableValueadCoupledVectorNeighborValue (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValuecoupledNeighborValueDot (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValuecoupledNeighborValueDotDu (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValuecoupledNeighborValueOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValuecoupledNeighborValueOlder (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableGradientcoupledNeighborGradient (const std::string &var_name, unsigned int comp=0) const
 
virtual std::vector< const VariableGradient *> coupledNeighborGradients (const std::string &var_name) const
 
virtual const VariableGradientcoupledNeighborGradientOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableGradientcoupledNeighborGradientOlder (const std::string &var_name, unsigned int comp=0) const
 
virtual const ADVariableGradientadCoupledNeighborGradient (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableGradientcoupledVectorNeighborGradient (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableGradientcoupledVectorNeighborGradientOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableGradientcoupledVectorNeighborGradientOlder (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableValuecoupledArrayNeighborValue (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableGradientcoupledArrayNeighborGradient (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableGradientcoupledArrayNeighborGradientOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableGradientcoupledArrayNeighborGradientOlder (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableSecondcoupledNeighborSecond (const std::string &var_name, unsigned int i=0) const
 
virtual const VariableValuecoupledNeighborDofValues (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValuecoupledNeighborDofValuesOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValuecoupledNeighborDofValuesOlder (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 ADVariableValuegetADDefaultValue (const std::string &var_name) const
 
const ADVectorVariableValuegetADDefaultVectorValue (const std::string &var_name) const
 
const ADVariableGradientgetADDefaultGradient () const
 
const ADVectorVariableGradientgetADDefaultVectorGradient () const
 
const ADVariableSecondgetADDefaultSecond () const
 
const ADVectorVariableCurlgetADDefaultCurl () const
 
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={})
 
std::set< MooseVariableFieldBase *> checkVariables (const DofObjectType &dof_object, const std::set< MooseVariableFieldBase * > &vars_to_check)
 
void addMooseVariableDependency (MooseVariableFieldBase *var)
 
void addMooseVariableDependency (const std::vector< MooseVariableFieldBase * > &vars)
 
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)
 
std::pair< const MaterialProperty< T > *, std::set< SubdomainID > > getBlockMaterialProperty (const MaterialPropertyName &name)
 
const GenericMaterialProperty< T, is_ad > & getGenericZeroMaterialProperty (const std::string &name)
 
const GenericMaterialProperty< T, is_ad > & getGenericZeroMaterialProperty ()
 
const GenericMaterialProperty< T, is_ad > & getGenericZeroMaterialPropertyByName (const std::string &prop_name)
 
const MaterialProperty< T > & getZeroMaterialProperty (Ts... args)
 
std::set< SubdomainIDgetMaterialPropertyBlocks (const std::string &name)
 
std::vector< SubdomainName > getMaterialPropertyBlockNames (const std::string &name)
 
std::set< BoundaryIDgetMaterialPropertyBoundaryIDs (const std::string &name)
 
std::vector< BoundaryName > getMaterialPropertyBoundaryNames (const std::string &name)
 
void checkBlockAndBoundaryCompatibility (std::shared_ptr< MaterialBase > discrete)
 
std::unordered_map< SubdomainID, std::vector< MaterialBase *> > buildRequiredMaterials (bool allow_stateful=true)
 
void statefulPropertiesAllowed (bool)
 
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)
 
MooseVariableBasemooseVariableBase () 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 PostprocessorValuegetPostprocessorValue (const std::string &param_name, const unsigned int index=0) const
 
const PostprocessorValuegetPostprocessorValue (const std::string &param_name, const unsigned int index=0) const
 
const PostprocessorValuegetPostprocessorValueOld (const std::string &param_name, const unsigned int index=0) const
 
const PostprocessorValuegetPostprocessorValueOld (const std::string &param_name, const unsigned int index=0) const
 
const PostprocessorValuegetPostprocessorValueOlder (const std::string &param_name, const unsigned int index=0) const
 
const PostprocessorValuegetPostprocessorValueOlder (const std::string &param_name, const unsigned int index=0) const
 
virtual const PostprocessorValuegetPostprocessorValueByName (const PostprocessorName &name) const
 
virtual const PostprocessorValuegetPostprocessorValueByName (const PostprocessorName &name) const
 
const PostprocessorValuegetPostprocessorValueOldByName (const PostprocessorName &name) const
 
const PostprocessorValuegetPostprocessorValueOldByName (const PostprocessorName &name) const
 
const PostprocessorValuegetPostprocessorValueOlderByName (const PostprocessorName &name) const
 
const PostprocessorValuegetPostprocessorValueOlderByName (const PostprocessorName &name) const
 
bool isVectorPostprocessorDistributed (const std::string &param_name) const
 
bool isVectorPostprocessorDistributed (const std::string &param_name) const
 
bool isVectorPostprocessorDistributedByName (const VectorPostprocessorName &name) const
 
bool isVectorPostprocessorDistributedByName (const VectorPostprocessorName &name) const
 
const 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)
 
MaterialBasegetMaterial (const std::string &name)
 
MaterialBasegetMaterial (const std::string &name)
 
MaterialBasegetMaterialByName (const std::string &name, bool no_warn=false)
 
MaterialBasegetMaterialByName (const std::string &name, bool no_warn=false)
 
bool hasMaterialProperty (const std::string &name)
 
bool hasMaterialProperty (const std::string &name)
 
bool hasMaterialPropertyByName (const std::string &name)
 
bool hasMaterialPropertyByName (const std::string &name)
 
bool hasADMaterialProperty (const std::string &name)
 
bool hasADMaterialProperty (const std::string &name)
 
bool hasADMaterialPropertyByName (const std::string &name)
 
bool hasADMaterialPropertyByName (const std::string &name)
 
bool hasGenericMaterialProperty (const std::string &name)
 
bool hasGenericMaterialProperty (const std::string &name)
 
bool hasGenericMaterialPropertyByName (const std::string &name)
 
bool hasGenericMaterialPropertyByName (const std::string &name)
 
PenetrationLocatorgetPenetrationLocator (const BoundaryName &primary, const BoundaryName &secondary, Order order)
 
PenetrationLocatorgetQuadraturePenetrationLocator (const BoundaryName &primary, const BoundaryName &secondary, Order order)
 
NearestNodeLocatorgetNearestNodeLocator (const BoundaryName &primary, const BoundaryName &secondary)
 
NearestNodeLocatorgetQuadratureNearestNodeLocator (const BoundaryName &primary, const BoundaryName &secondary)
 
bool requiresGeometricSearch () const
 
const Parallel::Communicator & comm () const
 
processor_id_type n_processors () const
 
processor_id_type processor_id () const
 

Static Public Member Functions

static InputParameters validParams ()
 

Public Attributes

const ConsoleStream _console
 

Static Public Attributes

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. More...
 
virtual void computeQpIProperties () override
 Computes properties that are functions both of _qp and _i, for example the weighted gap. More...
 
virtual void enforceConstraintOnDof (const DofObject *const dof) override
 Method called from post(). More...
 
virtual void enforceConstraintOnDof3d (const DofObject *const dof)
 Method called from post(). More...
 
ADReal computeFrictionValue (const ADReal &contact_pressure, const ADReal &tangential_vel, const ADReal &tangential_vel_dir)
 Compute coefficient of friction. More...
 
ADReal computeQpResidual (Moose::MortarType mortar_type) final
 
void computeResidualAndJacobian () override
 
const FEProblemBasefeProblem () const
 
virtual void precalculateResidual ()
 
virtual void precalculateJacobian ()
 
virtual void precalculateOffDiagJacobian (unsigned int)
 
const MooseVariableFieldBasegetVariable (unsigned int jvar_num) const
 
virtual void addUserObjectDependencyHelper (const UserObject &) const
 
virtual void addPostprocessorDependencyHelper (const PostprocessorName &) const
 
virtual void addVectorPostprocessorDependencyHelper (const VectorPostprocessorName &) const
 
T & declareRestartableData (const std::string &data_name, Args &&... args)
 
ManagedValue< T > declareManagedRestartableDataWithContext (const std::string &data_name, void *context, Args &&... args)
 
const T & getRestartableData (const std::string &data_name) const
 
T & declareRestartableDataWithContext (const std::string &data_name, void *context, Args &&... args)
 
T & declareRecoverableData (const std::string &data_name, Args &&... args)
 
T & declareRestartableDataWithObjectName (const std::string &data_name, const std::string &object_name, Args &&... args)
 
T & declareRestartableDataWithObjectNameWithContext (const std::string &data_name, const std::string &object_name, void *context, Args &&... args)
 
std::string restartableName (const std::string &data_name) const
 
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 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 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 ADResidualsPacket &packet)
 
void addJacobian (Assembly &assembly, 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 intcoupledIndices (const std::string &var_name) const
 
virtual const VariableValuecoupledValue (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const VariableValue *> coupledValues (const std::string &var_name) const
 
std::vector< const VectorVariableValue *> coupledVectorValues (const std::string &var_name) const
 
const GenericVariableValue< is_ad > & coupledGenericValue (const std::string &var_name, unsigned int comp=0) const
 
const GenericVariableValue< false > & coupledGenericValue (const std::string &var_name, unsigned int comp) const
 
const GenericVariableValue< true > & coupledGenericValue (const std::string &var_name, unsigned int comp) const
 
const GenericVectorVariableValue< is_ad > & coupledGenericVectorValue (const std::string &var_name, unsigned int comp=0) const
 
const GenericVectorVariableValue< false > & coupledGenericVectorValue (const std::string &var_name, unsigned int comp) const
 
const GenericVectorVariableValue< true > & coupledGenericVectorValue (const std::string &var_name, unsigned int comp) const
 
std::vector< const GenericVariableValue< is_ad > *> coupledGenericValues (const std::string &var_name) const
 
std::vector< const GenericVariableValue< false > *> coupledGenericValues (const std::string &var_name) const
 
std::vector< const GenericVariableValue< true > *> coupledGenericValues (const std::string &var_name) const
 
const GenericVariableValue< is_ad > & coupledGenericDofValue (const std::string &var_name, unsigned int comp=0) const
 
const GenericVariableValue< false > & coupledGenericDofValue (const std::string &var_name, unsigned int comp) const
 
const GenericVariableValue< true > & coupledGenericDofValue (const std::string &var_name, unsigned int comp) const
 
const GenericVariableValue< is_ad > & coupledGenericDot (const std::string &var_name, unsigned int comp=0) const
 
const GenericVariableValue< false > & coupledGenericDot (const std::string &var_name, unsigned int comp) const
 
const GenericVariableValue< true > & coupledGenericDot (const std::string &var_name, unsigned int comp) const
 
const GenericVariableValue< is_ad > & coupledGenericDotDot (const std::string &var_name, unsigned int comp=0) const
 
const GenericVariableValue< false > & coupledGenericDotDot (const std::string &var_name, unsigned int comp) const
 
const GenericVariableValue< true > & coupledGenericDotDot (const std::string &var_name, unsigned int comp) const
 
virtual const VariableValuecoupledValueLower (const std::string &var_name, unsigned int comp=0) const
 
const ADVariableValueadCoupledValue (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const ADVariableValue *> adCoupledValues (const std::string &var_name) const
 
const ADVariableValueadCoupledLowerValue (const std::string &var_name, unsigned int comp=0) const
 
const ADVectorVariableValueadCoupledVectorValue (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const ADVectorVariableValue *> adCoupledVectorValues (const std::string &var_name) const
 
virtual const VariableValuecoupledVectorTagValue (const std::string &var_names, TagID tag, unsigned int index=0) const
 
virtual const VariableValuecoupledVectorTagValue (const std::string &var_names, const std::string &tag_name, unsigned int index=0) const
 
std::vector< const VariableValue *> coupledVectorTagValues (const std::string &var_names, TagID tag) const
 
std::vector< const VariableValue *> coupledVectorTagValues (const std::string &var_names, const std::string &tag_name) const
 
virtual const ArrayVariableValuecoupledVectorTagArrayValue (const std::string &var_names, TagID tag, unsigned int index=0) const
 
virtual const ArrayVariableValuecoupledVectorTagArrayValue (const std::string &var_names, const std::string &tag_name, unsigned int index=0) const
 
std::vector< const ArrayVariableValue *> coupledVectorTagArrayValues (const std::string &var_names, TagID tag) const
 
std::vector< const ArrayVariableValue *> coupledVectorTagArrayValues (const std::string &var_names, const std::string &tag_name) const
 
virtual const VariableGradientcoupledVectorTagGradient (const std::string &var_names, TagID tag, unsigned int index=0) const
 
virtual const VariableGradientcoupledVectorTagGradient (const std::string &var_names, const std::string &tag_name, unsigned int index=0) const
 
std::vector< const VariableGradient *> coupledVectorTagGradients (const std::string &var_names, TagID tag) const
 
std::vector< const VariableGradient *> coupledVectorTagGradients (const std::string &var_names, const std::string &tag_name) const
 
virtual const ArrayVariableGradientcoupledVectorTagArrayGradient (const std::string &var_names, TagID tag, unsigned int index=0) const
 
virtual const ArrayVariableGradientcoupledVectorTagArrayGradient (const std::string &var_names, const std::string &tag_name, unsigned int index=0) const
 
std::vector< const ArrayVariableGradient *> coupledVectorTagArrayGradients (const std::string &var_names, TagID tag) const
 
std::vector< const ArrayVariableGradient *> coupledVectorTagArrayGradients (const std::string &var_names, const std::string &tag_name) const
 
virtual const VariableValuecoupledVectorTagDofValue (const std::string &var_name, TagID tag, unsigned int index=0) const
 
virtual const VariableValuecoupledVectorTagDofValue (const std::string &var_names, const std::string &tag_name, unsigned int index=0) const
 
const ArrayVariableValuecoupledVectorTagArrayDofValue (const std::string &var_name, const std::string &tag_name, unsigned int comp=0) const
 
std::vector< const VariableValue *> coupledVectorTagDofValues (const std::string &var_names, TagID tag) const
 
std::vector< const VariableValue *> coupledVectorTagDofValues (const std::string &var_names, const std::string &tag_name) const
 
virtual const VariableValuecoupledMatrixTagValue (const std::string &var_names, TagID tag, unsigned int index=0) const
 
virtual const VariableValuecoupledMatrixTagValue (const std::string &var_names, const std::string &tag_name, unsigned int index=0) const
 
std::vector< const VariableValue *> coupledMatrixTagValues (const std::string &var_names, TagID tag) const
 
std::vector< const VariableValue *> coupledMatrixTagValues (const std::string &var_names, const std::string &tag_name) const
 
virtual const VectorVariableValuecoupledVectorValue (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableValuecoupledArrayValue (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const ArrayVariableValue *> coupledArrayValues (const std::string &var_name) const
 
MooseWritableVariablewritableVariable (const std::string &var_name, unsigned int comp=0)
 
virtual VariableValuewritableCoupledValue (const std::string &var_name, unsigned int comp=0)
 
void checkWritableVar (MooseWritableVariable *var)
 
virtual const VariableValuecoupledValueOld (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const VariableValue *> coupledValuesOld (const std::string &var_name) const
 
std::vector< const VectorVariableValue *> coupledVectorValuesOld (const std::string &var_name) const
 
virtual const VariableValuecoupledValueOlder (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const VariableValue *> coupledValuesOlder (const std::string &var_name) const
 
virtual const VariableValuecoupledValuePreviousNL (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableValuecoupledVectorValueOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableValuecoupledVectorValueOlder (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableValuecoupledArrayValueOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableValuecoupledArrayValueOlder (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableGradientcoupledGradient (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const VariableGradient *> coupledGradients (const std::string &var_name) const
 
const ADVariableGradientadCoupledGradient (const std::string &var_name, unsigned int comp=0) const
 
const ADVariableGradientadCoupledGradientDot (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const ADVariableGradient *> adCoupledGradients (const std::string &var_name) const
 
const GenericVariableGradient< is_ad > & coupledGenericGradient (const std::string &var_name, unsigned int comp=0) const
 
const GenericVariableGradient< false > & coupledGenericGradient (const std::string &var_name, unsigned int comp) const
 
const GenericVariableGradient< true > & coupledGenericGradient (const std::string &var_name, unsigned int comp) const
 
std::vector< const GenericVariableGradient< is_ad > *> coupledGenericGradients (const std::string &var_name) const
 
std::vector< const GenericVariableGradient< false > *> coupledGenericGradients (const std::string &var_name) const
 
std::vector< const GenericVariableGradient< true > *> coupledGenericGradients (const std::string &var_name) const
 
const ADVectorVariableGradientadCoupledVectorGradient (const std::string &var_name, unsigned int comp=0) const
 
const ADVariableSecondadCoupledSecond (const std::string &var_name, unsigned int comp=0) const
 
const ADVectorVariableSecondadCoupledVectorSecond (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableGradientcoupledGradientOld (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const VariableGradient *> coupledGradientsOld (const std::string &var_name) const
 
virtual const VariableGradientcoupledGradientOlder (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableGradientcoupledGradientPreviousNL (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableGradientcoupledGradientDot (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableGradientcoupledGradientDotDot (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableGradientcoupledVectorGradient (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableGradientcoupledVectorGradientOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableGradientcoupledVectorGradientOlder (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableGradientcoupledArrayGradient (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableGradientcoupledArrayGradientOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableGradientcoupledArrayGradientOlder (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableGradientcoupledArrayGradientDot (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableCurlcoupledCurl (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableCurlcoupledCurlOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableCurlcoupledCurlOlder (const std::string &var_name, unsigned int comp=0) const
 
const ADVectorVariableCurladCoupledCurl (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableDivergencecoupledDiv (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableDivergencecoupledDivOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableDivergencecoupledDivOlder (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableSecondcoupledSecond (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableSecondcoupledSecondOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableSecondcoupledSecondOlder (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableSecondcoupledSecondPreviousNL (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValuecoupledDot (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const VariableValue *> coupledDots (const std::string &var_name) const
 
virtual const VariableValuecoupledDotDot (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValuecoupledDotOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValuecoupledDotDotOld (const std::string &var_name, unsigned int comp=0) const
 
const ADVariableValueadCoupledDot (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const ADVariableValue *> adCoupledDots (const std::string &var_name) const
 
const ADVariableValueadCoupledDotDot (const std::string &var_name, unsigned int comp=0) const
 
const ADVectorVariableValueadCoupledVectorDot (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableValuecoupledVectorDot (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableValuecoupledVectorDotDot (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableValuecoupledVectorDotOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableValuecoupledVectorDotDotOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValuecoupledVectorDotDu (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValuecoupledVectorDotDotDu (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableValuecoupledArrayDot (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableValuecoupledArrayDotDot (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableValuecoupledArrayDotOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableValuecoupledArrayDotDotOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValuecoupledDotDu (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValuecoupledDotDotDu (const std::string &var_name, unsigned int comp=0) const
 
const VariableValuecoupledArrayDotDu (const std::string &var_name, unsigned int comp=0) const
 
const T & coupledNodalValue (const std::string &var_name, unsigned int comp=0) const
 
const Moose::ADType< T >::typeadCoupledNodalValue (const std::string &var_name, unsigned int comp=0) const
 
const T & coupledNodalValueOld (const std::string &var_name, unsigned int comp=0) const
 
const T & coupledNodalValueOlder (const std::string &var_name, unsigned int comp=0) const
 
const T & coupledNodalValuePreviousNL (const std::string &var_name, unsigned int comp=0) const
 
const T & coupledNodalDot (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValuecoupledNodalDotDot (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValuecoupledNodalDotOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValuecoupledNodalDotDotOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValuecoupledDofValues (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const VariableValue *> coupledAllDofValues (const std::string &var_name) const
 
virtual const VariableValuecoupledDofValuesOld (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const VariableValue *> coupledAllDofValuesOld (const std::string &var_name) const
 
virtual const VariableValuecoupledDofValuesOlder (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const VariableValue *> coupledAllDofValuesOlder (const std::string &var_name) const
 
virtual const ArrayVariableValuecoupledArrayDofValues (const std::string &var_name, unsigned int comp=0) const
 
virtual const ADVariableValueadCoupledDofValues (const std::string &var_name, unsigned int comp=0) const
 
const ADVariableValueadZeroValue () const
 
const ADVariableGradientadZeroGradient () const
 
const ADVariableSecondadZeroSecond () const
 
const GenericVariableValue< is_ad > & genericZeroValue ()
 
const GenericVariableValue< false > & genericZeroValue ()
 
const GenericVariableValue< true > & genericZeroValue ()
 
const GenericVariableGradient< is_ad > & genericZeroGradient ()
 
const GenericVariableGradient< false > & genericZeroGradient ()
 
const GenericVariableGradient< true > & genericZeroGradient ()
 
const GenericVariableSecond< is_ad > & genericZeroSecond ()
 
const GenericVariableSecond< false > & genericZeroSecond ()
 
const GenericVariableSecond< true > & genericZeroSecond ()
 
bool checkVar (const std::string &var_name, unsigned int comp=0, unsigned int comp_bound=0) const
 
const MooseVariableFieldBasegetFEVar (const std::string &var_name, unsigned int comp) const
 
const MooseVariableFieldBasegetFieldVar (const std::string &var_name, unsigned int comp) const
 
MooseVariableFieldBasegetFieldVar (const std::string &var_name, unsigned int comp)
 
const T * getVarHelper (const std::string &var_name, unsigned int comp) const
 
T * getVarHelper (const std::string &var_name, unsigned int comp)
 
MooseVariablegetVar (const std::string &var_name, unsigned int comp)
 
const MooseVariablegetVar (const std::string &var_name, unsigned int comp) const
 
VectorMooseVariablegetVectorVar (const std::string &var_name, unsigned int comp)
 
const VectorMooseVariablegetVectorVar (const std::string &var_name, unsigned int comp) const
 
ArrayMooseVariablegetArrayVar (const std::string &var_name, unsigned int comp)
 
const ArrayMooseVariablegetArrayVar (const std::string &var_name, unsigned int comp) const
 
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 VariableValuecoupledScalarValue (const std::string &var_name, unsigned int comp=0) const
 
const ADVariableValueadCoupledScalarValue (const std::string &var_name, unsigned int comp=0) const
 
const GenericVariableValue< is_ad > & coupledGenericScalarValue (const std::string &var_name, unsigned int comp=0) const
 
const GenericVariableValue< false > & coupledGenericScalarValue (const std::string &var_name, const unsigned int comp) const
 
const GenericVariableValue< true > & coupledGenericScalarValue (const std::string &var_name, const unsigned int comp) const
 
const VariableValuecoupledVectorTagScalarValue (const std::string &var_name, TagID tag, unsigned int comp=0) const
 
const VariableValuecoupledMatrixTagScalarValue (const std::string &var_name, TagID tag, unsigned int comp=0) const
 
const VariableValuecoupledScalarValueOld (const std::string &var_name, unsigned int comp=0) const
 
const VariableValuecoupledScalarValueOlder (const std::string &var_name, unsigned int comp=0) const
 
const VariableValuecoupledScalarDot (const std::string &var_name, unsigned int comp=0) const
 
const ADVariableValueadCoupledScalarDot (const std::string &var_name, unsigned int comp=0) const
 
const VariableValuecoupledScalarDotDot (const std::string &var_name, unsigned int comp=0) const
 
const VariableValuecoupledScalarDotOld (const std::string &var_name, unsigned int comp=0) const
 
const VariableValuecoupledScalarDotDotOld (const std::string &var_name, unsigned int comp=0) const
 
const VariableValuecoupledScalarDotDu (const std::string &var_name, unsigned int comp=0) const
 
const VariableValuecoupledScalarDotDotDu (const std::string &var_name, unsigned int comp=0) const
 
const MooseVariableScalargetScalarVar (const std::string &var_name, unsigned int comp) const
 
const std::set< SubdomainID > & getHigherDimSubdomainIDs () const
 
const std::set< BoundaryID > & getBoundaryIDs () const
 
const AutomaticMortarGenerationamg () const
 
bool interpolateNormals () const
 
virtual void checkMaterialProperty (const std::string &name, const unsigned int state)
 
void markMatPropRequested (const std::string &)
 
MaterialPropertyName getMaterialPropertyName (const std::string &name) const
 
void checkExecutionStage ()
 
virtual const OutputTools< Real >::VariableValuevalue ()
 
virtual const OutputTools< Real >::VariableValuevalueOld ()
 
virtual const OutputTools< Real >::VariableValuevalueOlder ()
 
virtual const OutputTools< Real >::VariableValuedot ()
 
virtual const OutputTools< Real >::VariableValuedotDot ()
 
virtual const OutputTools< Real >::VariableValuedotOld ()
 
virtual const OutputTools< Real >::VariableValuedotDotOld ()
 
virtual const VariableValuedotDu ()
 
virtual const VariableValuedotDotDu ()
 
virtual const OutputTools< Real >::VariableGradientgradient ()
 
virtual const OutputTools< Real >::VariableGradientgradientOld ()
 
virtual const OutputTools< Real >::VariableGradientgradientOlder ()
 
virtual const OutputTools< Real >::VariableSecondsecond ()
 
virtual const OutputTools< Real >::VariableSecondsecondOld ()
 
virtual const OutputTools< Real >::VariableSecondsecondOlder ()
 
virtual const OutputTools< Real >::VariableTestSecondsecondTest ()
 
virtual const OutputTools< Real >::VariableTestSecondsecondTestFace ()
 
virtual const OutputTools< Real >::VariablePhiSecondsecondPhi ()
 
virtual const OutputTools< Real >::VariablePhiSecondsecondPhiFace ()
 
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. More...
 
std::unordered_map< const DofObject *, std::array< ADReal, 2 > > _dof_to_real_tangential_velocity
 A map from node to two interpolated, physical tangential velocities. More...
 
std::array< const ADReal *, 2 > _tangential_vel_ptr = {{nullptr, nullptr}}
 An array of two pointers to avoid copies. More...
 
std::array< ADReal, 2 > _qp_tangential_velocity
 The value of the tangential velocity values at the current quadrature point. More...
 
std::array< ADReal, 2 > _qp_real_tangential_velocity
 The value of the "real" tangential velocity values at the current quadrature point. More...
 
ADRealVectorValue _qp_tangential_velocity_nodal
 The value of the tangential velocity vectors at the current node. More...
 
ADRealVectorValue _qp_real_tangential_velocity_nodal
 The value of the real tangential velocity vectors at the current node. More...
 
const WeightedVelocitiesUserObject_weighted_velocities_uo
 The weighted gap user object. More...
 
const Real _c_t
 Numerical factor used in the tangential constraints for convergence purposes. More...
 
std::vector< MooseVariable * > _friction_vars
 Frictional Lagrange's multiplier variable pointers. More...
 
const ADVariableValue_secondary_x_dot
 x-velocity on the secondary face More...
 
const ADVariableValue_primary_x_dot
 x-velocity on the primary face More...
 
const ADVariableValue_secondary_y_dot
 y-velocity on the secondary face More...
 
const ADVariableValue_primary_y_dot
 y-velocity on the primary face More...
 
const ADVariableValue *const _secondary_z_dot
 z-velocity on the secondary face More...
 
const ADVariableValue *const _primary_z_dot
 z-velocity on the primary face More...
 
const Real _epsilon
 Small contact pressure value to trigger computation of frictional forces. More...
 
const Real _mu
 Friction coefficient. More...
 
const Function *const _function_friction
 input function More...
 
const bool _has_friction_function
 Boolean to determine whether the friction coefficient is taken from a function. More...
 
bool _3d
 Automatic flag to determine whether we are doing three-dimensional work. More...
 
const ADVariableValue_secondary_disp_x
 x-displacement on the secondary face More...
 
const ADVariableValue_primary_disp_x
 x-displacement on the primary face More...
 
const ADVariableValue_secondary_disp_y
 y-displacement on the secondary face More...
 
const ADVariableValue_primary_disp_y
 y-displacement on the primary face More...
 
const bool _has_disp_z
 For 2D mortar contact no displacement will be specified, so const pointers used. More...
 
const ADVariableValue *const _secondary_disp_z
 z-displacement on the secondary face More...
 
const ADVariableValue *const _primary_disp_z
 z-displacement on the primary face More...
 
const Real _c
 This factor multiplies the weighted gap. More...
 
ADReal _qp_gap
 The value of the gap at the current quadrature point. More...
 
Real _qp_factor
 The value of the LM at the current quadrature point. More...
 
const bool _normalize_c
 Whether to normalize weighted gap by weighting function norm. More...
 
const bool _nodal
 Whether the dof objects are nodal; if they're not, then they're elemental. More...
 
const MooseVariable *const _disp_x_var
 The x displacement variable. More...
 
const MooseVariable *const _disp_y_var
 The y displacement variable. More...
 
const MooseVariable *const _disp_z_var
 The z displacement variable. More...
 
ADRealVectorValue _qp_gap_nodal
 Vector for computation of weighted gap with nodal normals. More...
 
const ADReal_weighted_gap_ptr = nullptr
 A pointer members that can be used to help avoid copying ADReals. More...
 
const Real_normalization_ptr = nullptr
 
const WeightedGapUserObject_weighted_gap_uo
 The weighted gap user object. More...
 
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
 
const std::string _type
 
const std::string _name
 
const InputParameters_pars
 
Factory_factory
 
ActionFactory_action_factory
 
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< MooseVariableFV< Real > *> _coupled_standard_fv_moose_vars
 
std::vector< MooseLinearVariableFV< Real > *> _coupled_standard_linear_fv_moose_vars
 
const std::unordered_map< std::string, std::string > & _new_to_deprecated_coupled_vars
 
bool _c_nodal
 
bool _c_is_implicit
 
const bool _c_allow_element_to_nodal_coupling
 
THREAD_ID _c_tid
 
std::unordered_map< std::string, std::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 MortarData_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 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
 

Detailed Description

Computes frictional constraints (and normal contact constraints by calling its parent object)

Definition at line 20 of file ComputeFrictionalForceLMMechanicalContact.h.

Constructor & Destructor Documentation

◆ ComputeFrictionalForceLMMechanicalContact()

ComputeFrictionalForceLMMechanicalContact::ComputeFrictionalForceLMMechanicalContact ( const InputParameters parameters)

Definition at line 51 of file ComputeFrictionalForceLMMechanicalContact.C.

54  _weighted_velocities_uo(getUserObject<WeightedVelocitiesUserObject>("weighted_velocities_uo")),
55  _c_t(getParam<Real>("c_t")),
58  _secondary_y_dot(adCoupledDot("disp_y")),
60  _secondary_z_dot(_has_disp_z ? &adCoupledDot("disp_z") : nullptr),
62  _epsilon(getParam<Real>("epsilon")),
63  _mu(isParamValid("function_friction") ? std::numeric_limits<double>::quiet_NaN()
64  : getParam<Real>("mu")),
65  _function_friction(isParamValid("function_friction") ? &getFunction("function_friction")
66  : nullptr),
67  _has_friction_function(isParamValid("function_friction")),
69 
70 {
72  paramError(
73  "mu",
74  "Please only provide friction either as a function or as a constant value, but not both.");
76  paramError("mu", "Please provide a value or a function for the coefficient of friction.");
77 
78  if (!getParam<bool>("use_displaced_mesh"))
79  paramError("use_displaced_mesh",
80  "'use_displaced_mesh' must be true for the "
81  "ComputeFrictionalForceLMMechanicalContact object");
82 
83  if (_3d && !isParamValid("friction_lm_dir"))
84  paramError("friction_lm_dir",
85  "Three-dimensional mortar frictional contact simulations require an additional "
86  "frictional Lagrange's multiplier to enforce a second tangential pressure");
87 
88  _friction_vars.push_back(getVar("friction_lm", 0));
89 
90  if (_3d)
91  _friction_vars.push_back(getVar("friction_lm_dir", 0));
92 
93  if (!_friction_vars[0]->isNodal())
94  if (_friction_vars[0]->feType().order != static_cast<Order>(0))
95  paramError(
96  "friction_lm",
97  "Frictional contact constraints only support elemental variables of CONSTANT order");
98 }
MooseVariableField< Real > & _secondary_var
const ADVariableValue & _primary_y_dot
y-velocity on the primary face
const ADVariableValue *const _primary_z_dot
z-velocity on the primary face
virtual const ADTemplateVariableValue< Real > & adUDot() const =0
const WeightedVelocitiesUserObject & _weighted_velocities_uo
The weighted gap user object.
const Function & getFunction(const std::string &name) const
const ADVariableValue & _primary_x_dot
x-velocity on the primary face
const bool _has_friction_function
Boolean to determine whether the friction coefficient is taken from a function.
const Real _c_t
Numerical factor used in the tangential constraints for convergence purposes.
MooseVariable * getVar(const std::string &var_name, unsigned int comp)
const ADVariableValue *const _secondary_z_dot
z-velocity on the secondary face
ComputeWeightedGapLMMechanicalContact(const InputParameters &parameters)
bool _3d
Automatic flag to determine whether we are doing three-dimensional work.
bool isParamValid(const std::string &name) const
std::vector< MooseVariable * > _friction_vars
Frictional Lagrange&#39;s multiplier variable pointers.
const ADVariableValue & _secondary_y_dot
y-velocity on the secondary face
const T & getParam(const std::string &name) const
const ADVariableValue & adCoupledDot(const std::string &var_name, unsigned int comp=0) const
void paramError(const std::string &param, Args... args) const
const Real _epsilon
Small contact pressure value to trigger computation of frictional forces.
bool isNodal() const
bool isParamSetByUser(const std::string &name) const
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
virtual const ADVariableValue & adCoupledNeighborValueDot(const std::string &var_name, unsigned int comp=0) const
const InputParameters & parameters() const
const ADVariableValue & _secondary_x_dot
x-velocity on the secondary face
const bool _has_disp_z
For 2D mortar contact no displacement will be specified, so const pointers used.
virtual const ADTemplateVariableValue< Real > & adUDotNeighbor() const =0
MooseVariableField< Real > & _primary_var

Member Function Documentation

◆ computeFrictionValue()

ADReal ComputeFrictionalForceLMMechanicalContact::computeFrictionValue ( const ADReal contact_pressure,
const ADReal tangential_vel,
const ADReal tangential_vel_dir 
)
protected

Compute coefficient of friction.

Allows the use of contact pressure and relative velocity dependent friction.

Definition at line 306 of file ComputeFrictionalForceLMMechanicalContact.C.

Referenced by enforceConstraintOnDof(), and enforceConstraintOnDof3d().

309 {
310  // TODO: Introduce temperature dependence in the function. Do this when we have an example.
311  ADReal mu_ad;
312 
314  mu_ad = _mu;
315  else
316  {
317  ADReal tangential_vel_magnitude = std::sqrt(tangential_vel * tangential_vel +
318  tangential_vel_dir * tangential_vel_dir + 1.0e-24);
319  mu_ad = _function_friction->value<ADReal>(0.0, contact_pressure, tangential_vel_magnitude, 0.0);
320  }
321 
322  return mu_ad;
323 }
const bool _has_friction_function
Boolean to determine whether the friction coefficient is taken from a function.
DualNumber< Real, DNDerivativeType, true > ADReal
virtual Real value(Real t, const Point &p) const

◆ computeJacobian() [1/5]

void ADMortarConstraint::computeJacobian
inherited

◆ computeJacobian() [2/5]

virtual void ADMortarConstraint::computeJacobian
inherited

◆ computeJacobian() [3/5]

virtual void ADMortarConstraint::computeJacobian
inherited

◆ computeJacobian() [4/5]

virtual void ADMortarConstraint::computeJacobian
inherited

◆ computeJacobian() [5/5]

void ComputeWeightedGapLMMechanicalContact::computeJacobian ( Moose::MortarType  mortar_type)
overridevirtualinherited

Reimplemented from ADMortarConstraint.

Definition at line 126 of file ComputeWeightedGapLMMechanicalContact.C.

127 {
128  // During "computeResidual" and "computeJacobian" we are actually just computing properties on the
129  // mortar segment element mesh. We are *not* actually assembling into the residual/Jacobian. For
130  // the zero-penetration constraint, the property of interest is the map from node to weighted gap.
131  // Computation of the properties proceeds identically for residual and Jacobian evaluation hence
132  // why we simply call computeResidual here. We will assemble into the residual/Jacobian later from
133  // the post() method
134  computeResidual(mortar_type);
135 }
virtual void computeResidual() override

◆ computeQpIProperties()

void ComputeFrictionalForceLMMechanicalContact::computeQpIProperties ( )
overrideprotectedvirtual

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

Reimplemented from ComputeWeightedGapLMMechanicalContact.

Definition at line 106 of file ComputeFrictionalForceLMMechanicalContact.C.

107 {
108 }

◆ computeQpProperties()

void ComputeFrictionalForceLMMechanicalContact::computeQpProperties ( )
overrideprotectedvirtual

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

indepedent of shape functions

Reimplemented from ComputeWeightedGapLMMechanicalContact.

Definition at line 101 of file ComputeFrictionalForceLMMechanicalContact.C.

102 {
103 }

◆ computeQpResidual()

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

Implements ADMortarConstraint.

Definition at line 95 of file ComputeWeightedGapLMMechanicalContact.C.

96 {
97  mooseError("We should never call computeQpResidual for ComputeWeightedGapLMMechanicalContact");
98 }
void mooseError(Args &&... args) const

◆ computeResidual() [1/5]

virtual void ADMortarConstraint::computeResidual
inherited

◆ computeResidual() [2/5]

void ADMortarConstraint::computeResidual
inherited

◆ computeResidual() [3/5]

virtual void ADMortarConstraint::computeResidual
inherited

◆ computeResidual() [4/5]

virtual void ADMortarConstraint::computeResidual
inherited

◆ computeResidual() [5/5]

void ComputeWeightedGapLMMechanicalContact::computeResidual ( Moose::MortarType  mortar_type)
overridevirtualinherited

Reimplemented from ADMortarConstraint.

Definition at line 121 of file ComputeWeightedGapLMMechanicalContact.C.

122 {
123 }

◆ enforceConstraintOnDof()

void ComputeFrictionalForceLMMechanicalContact::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 ComputeWeightedGapLMMechanicalContact.

Definition at line 260 of file ComputeFrictionalForceLMMechanicalContact.C.

Referenced by incorrectEdgeDroppingPost(), and post().

261 {
263 
264  // Get friction LM
265  const auto friction_dof_index = dof->dof_number(_sys.number(), _friction_vars[0]->number(), 0);
266  const ADReal & tangential_vel = *_tangential_vel_ptr[0];
267  ADReal friction_lm_value = (*_sys.currentSolution())(friction_dof_index);
268  Moose::derivInsert(friction_lm_value.derivatives(), friction_dof_index, 1.);
269 
270  // Get normal LM
271  const auto normal_dof_index = dof->dof_number(_sys.number(), _var->number(), 0);
272  const ADReal & weighted_gap = *_weighted_gap_ptr;
273  ADReal contact_pressure = (*_sys.currentSolution())(normal_dof_index);
274  Moose::derivInsert(contact_pressure.derivatives(), normal_dof_index, 1.);
275 
276  // Get normalized c and c_t values (if normalization specified
277  const Real c = _normalize_c ? _c / *_normalization_ptr : _c;
278  const Real c_t = _normalize_c ? _c_t / *_normalization_ptr : _c_t;
279 
280  // Compute the friction coefficient (constant or function)
281  ADReal mu_ad =
282  computeFrictionValue(contact_pressure, _dof_to_real_tangential_velocity[dof][0], 0.0);
283 
284  ADReal dof_residual;
285  // Primal-dual active set strategy (PDASS)
286  if (contact_pressure < _epsilon)
287  dof_residual = friction_lm_value;
288  else
289  {
290  const auto term_1 = std::max(mu_ad * (contact_pressure + c * weighted_gap),
291  std::abs(friction_lm_value + c_t * tangential_vel * _dt)) *
292  friction_lm_value;
293  const auto term_2 = mu_ad * std::max(0.0, contact_pressure + c * weighted_gap) *
294  (friction_lm_value + c_t * tangential_vel * _dt);
295 
296  dof_residual = term_1 - term_2;
297  }
298 
300  std::array<ADReal, 1>{{dof_residual}},
301  std::array<dof_id_type, 1>{{friction_dof_index}},
302  _friction_vars[0]->scalingFactor());
303 }
virtual const NumericVector< Number > *const & currentSolution() const=0
void addResidualsAndJacobian(Assembly &assembly, const Residuals &residuals, const Indices &dof_indices, Real scaling_factor)
std::unordered_map< const DofObject *, std::array< ADReal, 2 > > _dof_to_real_tangential_velocity
A map from node to two interpolated, physical tangential velocities.
unsigned int number() const
const Real _c_t
Numerical factor used in the tangential constraints for convergence purposes.
const Real _c
This factor multiplies the weighted gap.
DualNumber< Real, DNDerivativeType, true > ADReal
SystemBase & _sys
std::vector< MooseVariable * > _friction_vars
Frictional Lagrange&#39;s multiplier variable pointers.
const ADReal * _weighted_gap_ptr
A pointer members that can be used to help avoid copying ADReals.
unsigned int number() const
const Real _epsilon
Small contact pressure value to trigger computation of frictional forces.
Assembly & _assembly
MooseVariable *const _var
const bool _normalize_c
Whether to normalize weighted gap by weighting function norm.
ADReal computeFrictionValue(const ADReal &contact_pressure, const ADReal &tangential_vel, const ADReal &tangential_vel_dir)
Compute coefficient of friction.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
virtual void enforceConstraintOnDof(const DofObject *const dof)
Method called from post().
void derivInsert(SemiDynamicSparseNumberArray< Real, libMesh::dof_id_type, NWrapper< N >> &derivs, libMesh::dof_id_type index, Real value)
std::array< const ADReal *, 2 > _tangential_vel_ptr
An array of two pointers to avoid copies.

◆ enforceConstraintOnDof3d()

void ComputeFrictionalForceLMMechanicalContact::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 178 of file ComputeFrictionalForceLMMechanicalContact.C.

Referenced by incorrectEdgeDroppingPost(), and post().

179 {
181 
182  // Get normal LM
183  const auto normal_dof_index = dof->dof_number(_sys.number(), _var->number(), 0);
184  const ADReal & weighted_gap = *_weighted_gap_ptr;
185  ADReal contact_pressure = (*_sys.currentSolution())(normal_dof_index);
186  Moose::derivInsert(contact_pressure.derivatives(), normal_dof_index, 1.);
187 
188  // Get friction LMs
189  std::array<const ADReal *, 2> & tangential_vel = _tangential_vel_ptr;
190  std::array<dof_id_type, 2> friction_dof_indices;
191  std::array<ADReal, 2> friction_lm_values;
192 
193  const unsigned int num_tangents = 2;
194  for (const auto i : make_range(num_tangents))
195  {
196  friction_dof_indices[i] = dof->dof_number(_sys.number(), _friction_vars[i]->number(), 0);
197  friction_lm_values[i] = (*_sys.currentSolution())(friction_dof_indices[i]);
198  Moose::derivInsert(friction_lm_values[i].derivatives(), friction_dof_indices[i], 1.);
199  }
200 
201  // Get normalized c and c_t values (if normalization specified
202  const Real c = _normalize_c ? _c / *_normalization_ptr : _c;
203  const Real c_t = _normalize_c ? _c_t / *_normalization_ptr : _c_t;
204 
205  // Compute the friction coefficient (constant or function)
206  ADReal mu_ad = computeFrictionValue(contact_pressure,
209 
210  ADReal dof_residual;
211  ADReal dof_residual_dir;
212 
213  // Primal-dual active set strategy (PDASS)
214  if (contact_pressure < _epsilon)
215  {
216  dof_residual = friction_lm_values[0];
217  dof_residual_dir = friction_lm_values[1];
218  }
219  else
220  {
221  // Espilon to avoid automatic differentiation singularity
222  const Real epsilon_sqrt = 1.0e-48;
223 
224  const auto lamdba_plus_cg = contact_pressure + c * weighted_gap;
225  std::array<ADReal, 2> lambda_t_plus_ctu;
226  lambda_t_plus_ctu[0] = friction_lm_values[0] + c_t * *tangential_vel[0] * _dt;
227  lambda_t_plus_ctu[1] = friction_lm_values[1] + c_t * *tangential_vel[1] * _dt;
228 
229  const auto term_1_x =
230  std::max(mu_ad * lamdba_plus_cg,
231  std::sqrt(lambda_t_plus_ctu[0] * lambda_t_plus_ctu[0] +
232  lambda_t_plus_ctu[1] * lambda_t_plus_ctu[1] + epsilon_sqrt)) *
233  friction_lm_values[0];
234 
235  const auto term_1_y =
236  std::max(mu_ad * lamdba_plus_cg,
237  std::sqrt(lambda_t_plus_ctu[0] * lambda_t_plus_ctu[0] +
238  lambda_t_plus_ctu[1] * lambda_t_plus_ctu[1] + epsilon_sqrt)) *
239  friction_lm_values[1];
240 
241  const auto term_2_x = mu_ad * std::max(0.0, lamdba_plus_cg) * lambda_t_plus_ctu[0];
242 
243  const auto term_2_y = mu_ad * std::max(0.0, lamdba_plus_cg) * lambda_t_plus_ctu[1];
244 
245  dof_residual = term_1_x - term_2_x;
246  dof_residual_dir = term_1_y - term_2_y;
247  }
248 
250  std::array<ADReal, 1>{{dof_residual}},
251  std::array<dof_id_type, 1>{{friction_dof_indices[0]}},
252  _friction_vars[0]->scalingFactor());
254  std::array<ADReal, 1>{{dof_residual_dir}},
255  std::array<dof_id_type, 1>{{friction_dof_indices[1]}},
256  _friction_vars[1]->scalingFactor());
257 }
virtual const NumericVector< Number > *const & currentSolution() const=0
void addResidualsAndJacobian(Assembly &assembly, const Residuals &residuals, const Indices &dof_indices, Real scaling_factor)
std::unordered_map< const DofObject *, std::array< ADReal, 2 > > _dof_to_real_tangential_velocity
A map from node to two interpolated, physical tangential velocities.
unsigned int number() const
const Real _c_t
Numerical factor used in the tangential constraints for convergence purposes.
const Real _c
This factor multiplies the weighted gap.
DualNumber< Real, DNDerivativeType, true > ADReal
SystemBase & _sys
std::vector< MooseVariable * > _friction_vars
Frictional Lagrange&#39;s multiplier variable pointers.
const ADReal * _weighted_gap_ptr
A pointer members that can be used to help avoid copying ADReals.
unsigned int number() const
const Real _epsilon
Small contact pressure value to trigger computation of frictional forces.
Assembly & _assembly
MooseVariable *const _var
const bool _normalize_c
Whether to normalize weighted gap by weighting function norm.
ADReal computeFrictionValue(const ADReal &contact_pressure, const ADReal &tangential_vel, const ADReal &tangential_vel_dir)
Compute coefficient of friction.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
IntRange< T > make_range(T beg, T end)
virtual void enforceConstraintOnDof(const DofObject *const dof)
Method called from post().
void derivInsert(SemiDynamicSparseNumberArray< Real, libMesh::dof_id_type, NWrapper< N >> &derivs, libMesh::dof_id_type index, Real value)
std::array< const ADReal *, 2 > _tangential_vel_ptr
An array of two pointers to avoid copies.

◆ incorrectEdgeDroppingPost()

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

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

Reimplemented from ADMortarConstraint.

Definition at line 148 of file ComputeFrictionalForceLMMechanicalContact.C.

150 {
151  const auto & dof_to_weighted_tangential_velocity =
153  const auto & dof_to_weighted_gap = _weighted_gap_uo.dofToWeightedGap();
154  // Enforce frictional complementarity constraints
155  for (const auto & [dof_object, weighted_velocities_pr] : dof_to_weighted_tangential_velocity)
156  {
157  // If node inactive, skip
158  if ((inactive_lm_nodes.find(static_cast<const Node *>(dof_object)) !=
159  inactive_lm_nodes.end()) ||
160  (dof_object->processor_id() != this->processor_id()))
161  continue;
162 
163  _weighted_gap_ptr = &dof_to_weighted_gap.at(dof_object).first;
164  _normalization_ptr = &dof_to_weighted_gap.at(dof_object).second;
165  _tangential_vel_ptr[0] = &weighted_velocities_pr[0];
166 
167  if (_3d)
168  {
169  _tangential_vel_ptr[1] = &weighted_velocities_pr[1];
170  enforceConstraintOnDof3d(dof_object);
171  }
172  else
173  enforceConstraintOnDof(dof_object);
174  }
175 }
virtual void enforceConstraintOnDof(const DofObject *const dof) override
Method called from post().
const WeightedVelocitiesUserObject & _weighted_velocities_uo
The weighted gap user object.
bool _3d
Automatic flag to determine whether we are doing three-dimensional work.
const WeightedGapUserObject & _weighted_gap_uo
The weighted gap user object.
const std::unordered_map< const DofObject *, std::array< ADReal, 2 > > & dofToWeightedVelocities() const
Get the degree of freedom to weighted velocities information.
const ADReal * _weighted_gap_ptr
A pointer members that can be used to help avoid copying ADReals.
const std::unordered_map< const DofObject *, std::pair< ADReal, Real > > & dofToWeightedGap() const
Get the degree of freedom to weighted gap information.
processor_id_type processor_id() const
std::array< const ADReal *, 2 > _tangential_vel_ptr
An array of two pointers to avoid copies.
virtual void enforceConstraintOnDof3d(const DofObject *const dof)
Method called from post().

◆ jacobianSetup()

void ComputeWeightedGapLMMechanicalContact::jacobianSetup ( )
finaloverridevirtualinherited

Reimplemented from ADMortarConstraint.

Definition at line 116 of file ComputeWeightedGapLMMechanicalContact.C.

117 {
118 }

◆ post()

void ComputeFrictionalForceLMMechanicalContact::post ( )
overridevirtual

Reimplemented from ADMortarConstraint.

Definition at line 116 of file ComputeFrictionalForceLMMechanicalContact.C.

117 {
118  const auto & dof_to_weighted_tangential_velocity =
120 
121  const std::unordered_map<const DofObject *, std::pair<ADReal, Real>> & dof_to_weighted_gap =
123 
124  // Enforce frictional constraints
125 
126  for (const auto & [dof_object, weighted_velocities_pr] : dof_to_weighted_tangential_velocity)
127  {
128  if (dof_object->processor_id() != this->processor_id())
129  continue;
130 
131  const auto & [weighted_gap_pr, normalization] =
132  libmesh_map_find(dof_to_weighted_gap, dof_object);
133  _weighted_gap_ptr = &weighted_gap_pr;
134  _normalization_ptr = &normalization;
135  _tangential_vel_ptr[0] = &(weighted_velocities_pr[0]);
136 
137  if (_3d)
138  {
139  _tangential_vel_ptr[1] = &(weighted_velocities_pr[1]);
140  enforceConstraintOnDof3d(dof_object);
141  }
142  else
143  enforceConstraintOnDof(dof_object);
144  }
145 }
virtual void enforceConstraintOnDof(const DofObject *const dof) override
Method called from post().
const WeightedVelocitiesUserObject & _weighted_velocities_uo
The weighted gap user object.
bool _3d
Automatic flag to determine whether we are doing three-dimensional work.
const WeightedGapUserObject & _weighted_gap_uo
The weighted gap user object.
const std::unordered_map< const DofObject *, std::array< ADReal, 2 > > & dofToWeightedVelocities() const
Get the degree of freedom to weighted velocities information.
const ADReal * _weighted_gap_ptr
A pointer members that can be used to help avoid copying ADReals.
const std::unordered_map< const DofObject *, std::pair< ADReal, Real > > & dofToWeightedGap() const
Get the degree of freedom to weighted gap information.
processor_id_type processor_id() const
std::array< const ADReal *, 2 > _tangential_vel_ptr
An array of two pointers to avoid copies.
virtual void enforceConstraintOnDof3d(const DofObject *const dof)
Method called from post().

◆ residualSetup()

void ComputeFrictionalForceLMMechanicalContact::residualSetup ( )
overridevirtual

Reimplemented from ADMortarConstraint.

Definition at line 111 of file ComputeFrictionalForceLMMechanicalContact.C.

112 {
113 }

◆ validParams()

InputParameters ComputeFrictionalForceLMMechanicalContact::validParams ( )
static

Definition at line 27 of file ComputeFrictionalForceLMMechanicalContact.C.

28 {
30  params.addClassDescription("Computes the tangential frictional forces");
31  params.addRequiredCoupledVar("friction_lm", "The frictional Lagrange's multiplier");
32  params.addCoupledVar("friction_lm_dir",
33  "The frictional Lagrange's multiplier for an addtional direction.");
34  params.addParam<FunctionName>(
35  "function_friction",
36  "Coupled function to evaluate friction with values from contact pressure and relative "
37  "tangential velocities");
38  params.addParam<Real>("c_t", 1e0, "Numerical parameter for tangential constraints");
39  params.addParam<Real>(
40  "epsilon",
41  1.0e-7,
42  "Minimum value of contact pressure that will trigger frictional enforcement");
43  params.addRangeCheckedParam<Real>(
44  "mu", "mu > 0", "The friction coefficient for the Coulomb friction law");
45  params.addRequiredParam<UserObjectName>("weighted_velocities_uo",
46  "The weighted tangential velocities user object.");
47 
48  return params;
49 }
void addParam(const std::string &name, const std::initializer_list< typename T::value_type > &value, const std::string &doc_string)
void addRequiredParam(const std::string &name, const std::string &doc_string)
void addCoupledVar(const std::string &name, const std::string &doc_string)
void addRequiredCoupledVar(const std::string &name, const std::string &doc_string)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
void addClassDescription(const std::string &doc_string)
void addRangeCheckedParam(const std::string &name, const T &value, const std::string &parsed_function, const std::string &doc_string)

Member Data Documentation

◆ _3d

bool ComputeFrictionalForceLMMechanicalContact::_3d
protected

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

Definition at line 132 of file ComputeFrictionalForceLMMechanicalContact.h.

Referenced by ComputeFrictionalForceLMMechanicalContact(), incorrectEdgeDroppingPost(), and post().

◆ _c

const Real ComputeWeightedGapLMMechanicalContact::_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 83 of file ComputeWeightedGapLMMechanicalContact.h.

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

◆ _c_t

const Real ComputeFrictionalForceLMMechanicalContact::_c_t
protected

Numerical factor used in the tangential constraints for convergence purposes.

Definition at line 96 of file ComputeFrictionalForceLMMechanicalContact.h.

Referenced by enforceConstraintOnDof(), and enforceConstraintOnDof3d().

◆ _disp_x_var

const MooseVariable* const ComputeWeightedGapLMMechanicalContact::_disp_x_var
protectedinherited

The x displacement variable.

Definition at line 98 of file ComputeWeightedGapLMMechanicalContact.h.

◆ _disp_y_var

const MooseVariable* const ComputeWeightedGapLMMechanicalContact::_disp_y_var
protectedinherited

The y displacement variable.

Definition at line 100 of file ComputeWeightedGapLMMechanicalContact.h.

◆ _disp_z_var

const MooseVariable* const ComputeWeightedGapLMMechanicalContact::_disp_z_var
protectedinherited

The z displacement variable.

Definition at line 102 of file ComputeWeightedGapLMMechanicalContact.h.

◆ _dof_to_real_tangential_velocity

std::unordered_map<const DofObject *, std::array<ADReal, 2> > ComputeFrictionalForceLMMechanicalContact::_dof_to_real_tangential_velocity
protected

A map from node to two interpolated, physical tangential velocities.

Definition at line 75 of file ComputeFrictionalForceLMMechanicalContact.h.

Referenced by enforceConstraintOnDof(), and enforceConstraintOnDof3d().

◆ _dof_to_weighted_tangential_velocity

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

A map from node to two weighted tangential velocities.

Definition at line 72 of file ComputeFrictionalForceLMMechanicalContact.h.

◆ _epsilon

const Real ComputeFrictionalForceLMMechanicalContact::_epsilon
protected

Small contact pressure value to trigger computation of frictional forces.

Definition at line 120 of file ComputeFrictionalForceLMMechanicalContact.h.

Referenced by enforceConstraintOnDof(), and enforceConstraintOnDof3d().

◆ _friction_vars

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

Frictional Lagrange's multiplier variable pointers.

Definition at line 99 of file ComputeFrictionalForceLMMechanicalContact.h.

Referenced by ComputeFrictionalForceLMMechanicalContact(), enforceConstraintOnDof(), and enforceConstraintOnDof3d().

◆ _function_friction

const Function* const ComputeFrictionalForceLMMechanicalContact::_function_friction
protected

input function

Definition at line 126 of file ComputeFrictionalForceLMMechanicalContact.h.

Referenced by computeFrictionValue().

◆ _has_disp_z

const bool ComputeWeightedGapLMMechanicalContact::_has_disp_z
protectedinherited

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

Definition at line 74 of file ComputeWeightedGapLMMechanicalContact.h.

◆ _has_friction_function

const bool ComputeFrictionalForceLMMechanicalContact::_has_friction_function
protected

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

Definition at line 129 of file ComputeFrictionalForceLMMechanicalContact.h.

Referenced by ComputeFrictionalForceLMMechanicalContact(), and computeFrictionValue().

◆ _mu

const Real ComputeFrictionalForceLMMechanicalContact::_mu
protected

Friction coefficient.

Definition at line 123 of file ComputeFrictionalForceLMMechanicalContact.h.

Referenced by computeFrictionValue().

◆ _nodal

const bool ComputeWeightedGapLMMechanicalContact::_nodal
protectedinherited

Whether the dof objects are nodal; if they're not, then they're elemental.

Definition at line 95 of file ComputeWeightedGapLMMechanicalContact.h.

◆ _normalization_ptr

const Real* ComputeWeightedGapLMMechanicalContact::_normalization_ptr = nullptr
protectedinherited

◆ _normalize_c

const bool ComputeWeightedGapLMMechanicalContact::_normalize_c
protectedinherited

Whether to normalize weighted gap by weighting function norm.

Definition at line 92 of file ComputeWeightedGapLMMechanicalContact.h.

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

◆ _primary_disp_x

const ADVariableValue& ComputeWeightedGapLMMechanicalContact::_primary_disp_x
protectedinherited

x-displacement on the primary face

Definition at line 67 of file ComputeWeightedGapLMMechanicalContact.h.

◆ _primary_disp_y

const ADVariableValue& ComputeWeightedGapLMMechanicalContact::_primary_disp_y
protectedinherited

y-displacement on the primary face

Definition at line 71 of file ComputeWeightedGapLMMechanicalContact.h.

◆ _primary_disp_z

const ADVariableValue* const ComputeWeightedGapLMMechanicalContact::_primary_disp_z
protectedinherited

z-displacement on the primary face

Definition at line 78 of file ComputeWeightedGapLMMechanicalContact.h.

◆ _primary_x_dot

const ADVariableValue& ComputeFrictionalForceLMMechanicalContact::_primary_x_dot
protected

x-velocity on the primary face

Definition at line 105 of file ComputeFrictionalForceLMMechanicalContact.h.

◆ _primary_y_dot

const ADVariableValue& ComputeFrictionalForceLMMechanicalContact::_primary_y_dot
protected

y-velocity on the primary face

Definition at line 111 of file ComputeFrictionalForceLMMechanicalContact.h.

◆ _primary_z_dot

const ADVariableValue* const ComputeFrictionalForceLMMechanicalContact::_primary_z_dot
protected

z-velocity on the primary face

Definition at line 117 of file ComputeFrictionalForceLMMechanicalContact.h.

◆ _qp_factor

Real ComputeWeightedGapLMMechanicalContact::_qp_factor
protectedinherited

The value of the LM at the current quadrature point.

Definition at line 89 of file ComputeWeightedGapLMMechanicalContact.h.

◆ _qp_gap

ADReal ComputeWeightedGapLMMechanicalContact::_qp_gap
protectedinherited

The value of the gap at the current quadrature point.

Definition at line 86 of file ComputeWeightedGapLMMechanicalContact.h.

◆ _qp_gap_nodal

ADRealVectorValue ComputeWeightedGapLMMechanicalContact::_qp_gap_nodal
protectedinherited

Vector for computation of weighted gap with nodal normals.

Definition at line 105 of file ComputeWeightedGapLMMechanicalContact.h.

◆ _qp_real_tangential_velocity

std::array<ADReal, 2> ComputeFrictionalForceLMMechanicalContact::_qp_real_tangential_velocity
protected

The value of the "real" tangential velocity values at the current quadrature point.

Definition at line 84 of file ComputeFrictionalForceLMMechanicalContact.h.

◆ _qp_real_tangential_velocity_nodal

ADRealVectorValue ComputeFrictionalForceLMMechanicalContact::_qp_real_tangential_velocity_nodal
protected

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

Definition at line 90 of file ComputeFrictionalForceLMMechanicalContact.h.

◆ _qp_tangential_velocity

std::array<ADReal, 2> ComputeFrictionalForceLMMechanicalContact::_qp_tangential_velocity
protected

The value of the tangential velocity values at the current quadrature point.

Definition at line 81 of file ComputeFrictionalForceLMMechanicalContact.h.

◆ _qp_tangential_velocity_nodal

ADRealVectorValue ComputeFrictionalForceLMMechanicalContact::_qp_tangential_velocity_nodal
protected

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

Definition at line 87 of file ComputeFrictionalForceLMMechanicalContact.h.

◆ _secondary_disp_x

const ADVariableValue& ComputeWeightedGapLMMechanicalContact::_secondary_disp_x
protectedinherited

x-displacement on the secondary face

Definition at line 65 of file ComputeWeightedGapLMMechanicalContact.h.

◆ _secondary_disp_y

const ADVariableValue& ComputeWeightedGapLMMechanicalContact::_secondary_disp_y
protectedinherited

y-displacement on the secondary face

Definition at line 69 of file ComputeWeightedGapLMMechanicalContact.h.

◆ _secondary_disp_z

const ADVariableValue* const ComputeWeightedGapLMMechanicalContact::_secondary_disp_z
protectedinherited

z-displacement on the secondary face

Definition at line 76 of file ComputeWeightedGapLMMechanicalContact.h.

◆ _secondary_x_dot

const ADVariableValue& ComputeFrictionalForceLMMechanicalContact::_secondary_x_dot
protected

x-velocity on the secondary face

Definition at line 102 of file ComputeFrictionalForceLMMechanicalContact.h.

◆ _secondary_y_dot

const ADVariableValue& ComputeFrictionalForceLMMechanicalContact::_secondary_y_dot
protected

y-velocity on the secondary face

Definition at line 108 of file ComputeFrictionalForceLMMechanicalContact.h.

◆ _secondary_z_dot

const ADVariableValue* const ComputeFrictionalForceLMMechanicalContact::_secondary_z_dot
protected

z-velocity on the secondary face

Definition at line 114 of file ComputeFrictionalForceLMMechanicalContact.h.

◆ _tangential_vel_ptr

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

An array of two pointers to avoid copies.

Definition at line 78 of file ComputeFrictionalForceLMMechanicalContact.h.

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

◆ _weighted_gap_ptr

const ADReal* ComputeWeightedGapLMMechanicalContact::_weighted_gap_ptr = nullptr
protectedinherited

◆ _weighted_gap_uo

const WeightedGapUserObject& ComputeWeightedGapLMMechanicalContact::_weighted_gap_uo
protectedinherited

◆ _weighted_velocities_uo

const WeightedVelocitiesUserObject& ComputeFrictionalForceLMMechanicalContact::_weighted_velocities_uo
protected

The weighted gap user object.

Definition at line 93 of file ComputeFrictionalForceLMMechanicalContact.h.

Referenced by incorrectEdgeDroppingPost(), and post().


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