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
ComputeDynamicWeightedGapLMMechanicalContact Class Reference

Computes the normal contact mortar constraints for dynamic simulations. More...

#include <ComputeDynamicWeightedGapLMMechanicalContact.h>

Inheritance diagram for ComputeDynamicWeightedGapLMMechanicalContact:
[legend]

Public Types

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

Public Member Functions

 ComputeDynamicWeightedGapLMMechanicalContact (const InputParameters &parameters)
 
virtual void computeResidual () override
 
virtual void computeJacobian () override
 
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 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 ()
 Computes properties that are functions only of the current quadrature point (_qp), e.g. More...
 
virtual void computeQpIProperties ()
 
ADReal computeQpResidual (Moose::MortarType mortar_type) final
 
void computeResidual (Moose::MortarType mortar_type) override
 
void computeJacobian (Moose::MortarType mortar_type) override
 
void residualSetup () override
 
void jacobianSetup () override final
 
void timestepSetup () override
 
virtual void post () override
 
virtual void incorrectEdgeDroppingPost (const std::unordered_set< const Node *> &inactive_lm_nodes) override
 
void communicateWear ()
 
virtual void enforceConstraintOnDof (const DofObject *const dof)
 Method called from post(). More...
 
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 computeJacobian () override
 
void computeJacobian (Moose::MortarType mortar_type) override
 
virtual void computeJacobian () override
 
virtual void computeJacobian (Moose::MortarType mortar_type)=0
 
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

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...
 
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...
 
std::unordered_map< const DofObject *, std::pair< ADReal, Real > > _dof_to_weighted_gap
 A map from node to weighted gap and normalization (if requested) 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 Real _capture_tolerance
 A small threshold gap value to consider that a node needs a "persistency" constraint. More...
 
const ADVariableValue_secondary_x_dot
 
const ADVariableValue_primary_x_dot
 
const ADVariableValue_secondary_y_dot
 
const ADVariableValue_primary_y_dot
 
const ADVariableValue_secondary_z_dot
 
const ADVariableValue_primary_z_dot
 
const bool _has_wear
 Flag to determine whether wear needs to be included in the contact constraints. More...
 
const VariableValue_wear_depth
 Wear depth to include contact. More...
 
std::unordered_map< const DofObject *, ADReal_dof_to_old_weighted_gap
 A map from dof-object to the old weighted gap. More...
 
ADRealVectorValue _qp_gap_nodal_dynamics
 Vector for computation of weighted gap velocity to fulfill "persistency" condition. More...
 
ADRealVectorValue _qp_velocity
 Vector for computation of weighted gap velocity to fulfill "persistency" condition. More...
 
std::unordered_map< const DofObject *, ADReal_dof_to_weighted_gap_dynamics
 A map from node to weighted gap velocity times _dt. More...
 
std::unordered_map< const DofObject *, ADReal_dof_to_velocity
 A map from node to weighted gap velocity times _dt. More...
 
std::unordered_map< const DofObject *, ADReal_dof_to_old_velocity
 A map from node to weighted gap velocity times _dt. More...
 
const Real _newmark_beta
 
const Real _newmark_gamma
 
std::unordered_map< const DofObject *, ADReal_dof_to_nodal_wear_depth
 A map from node to wear in this step. More...
 
std::unordered_map< const DofObject *, ADReal_dof_to_nodal_old_wear_depth
 A map from node to wear in old step. More...
 
ADRealVectorValue _relative_velocity
 The relative velocity. 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 the normal contact mortar constraints for dynamic simulations.

Definition at line 19 of file ComputeDynamicWeightedGapLMMechanicalContact.h.

Constructor & Destructor Documentation

◆ ComputeDynamicWeightedGapLMMechanicalContact()

ComputeDynamicWeightedGapLMMechanicalContact::ComputeDynamicWeightedGapLMMechanicalContact ( const InputParameters parameters)

Definition at line 77 of file ComputeDynamicWeightedGapLMMechanicalContact.C.

79  : ADMortarConstraint(assignVarsInParamsDyn(parameters)),
84  _has_disp_z(isCoupled("disp_z")),
85  _secondary_disp_z(_has_disp_z ? &adCoupledValue("disp_z") : nullptr),
86  _primary_disp_z(_has_disp_z ? &adCoupledNeighborValue("disp_z") : nullptr),
87  _c(getParam<Real>("c")),
88  _normalize_c(getParam<bool>("normalize_c")),
89  _nodal(getVar("disp_x", 0)->feType().family == LAGRANGE),
90  _disp_x_var(getVar("disp_x", 0)),
91  _disp_y_var(getVar("disp_y", 0)),
92  _disp_z_var(_has_disp_z ? getVar("disp_z", 0) : nullptr),
93  _capture_tolerance(getParam<Real>("capture_tolerance")),
94  _secondary_x_dot(adCoupledDot("disp_x")),
96  _secondary_y_dot(adCoupledDot("disp_y")),
98  _secondary_z_dot(_has_disp_z ? &adCoupledDot("disp_z") : nullptr),
100  _has_wear(isParamValid("wear_depth")),
101  _wear_depth(_has_wear ? coupledValueLower("wear_depth") : _zero),
102  _newmark_beta(getParam<Real>("newmark_beta")),
103  _newmark_gamma(getParam<Real>("newmark_gamma"))
104 {
105  if (!useDual())
106  mooseError("Dynamic mortar contact constraints requires the use of Lagrange multipliers dual "
107  "interpolation");
108 }
const VariableValue & _wear_depth
Wear depth to include contact.
virtual bool isCoupled(const std::string &var_name, unsigned int i=0) const
const VariableValue & _zero
ADMortarConstraint(const InputParameters &parameters)
const ADVariableValue & _secondary_disp_x
x-displacement on the secondary face
const ADVariableValue & _primary_disp_y
y-displacement on the primary face
const ADVariableValue & _primary_disp_x
x-displacement on the primary face
const ADVariableValue *const _secondary_disp_z
z-displacement on the secondary face
const ADVariableValue & adCoupledValue(const std::string &var_name, unsigned int comp=0) const
const bool _has_disp_z
For 2D mortar contact no displacement will be specified, so const pointers used.
MooseVariable * getVar(const std::string &var_name, unsigned int comp)
bool isParamValid(const std::string &name) const
virtual const VariableValue & coupledValueLower(const std::string &var_name, unsigned int comp=0) const
bool useDual() const
const MooseVariable *const _disp_z_var
The z displacement variable.
const bool _nodal
Whether the dof objects are nodal; if they&#39;re not, then they&#39;re elemental.
const ADVariableValue & _secondary_disp_y
y-displacement on the secondary face
const ADVariableValue & adCoupledDot(const std::string &var_name, unsigned int comp=0) const
virtual const ADVariableValue & adCoupledNeighborValue(const std::string &var_name, unsigned int comp=0) const
const MooseVariable *const _disp_x_var
The x displacement variable.
virtual const ADVariableValue & adCoupledNeighborValueDot(const std::string &var_name, unsigned int comp=0) const
bool _normalize_c
Whether to normalize weighted gap by weighting function norm.
const Real _capture_tolerance
A small threshold gap value to consider that a node needs a "persistency" constraint.
void mooseError(Args &&... args) const
const InputParameters & parameters() const
const bool _has_wear
Flag to determine whether wear needs to be included in the contact constraints.
const ADVariableValue *const _primary_disp_z
z-displacement on the primary face
const Real _c
This factor multiplies the weighted gap.
const MooseVariable *const _disp_y_var
The y displacement variable.

Member Function Documentation

◆ communicateWear()

void ComputeDynamicWeightedGapLMMechanicalContact::communicateWear ( )
protected

Definition at line 339 of file ComputeDynamicWeightedGapLMMechanicalContact.C.

Referenced by incorrectEdgeDroppingPost(), and post().

340 {
341  // We may have wear depth information that should go to other processes that own the dofs
342  using Datum = std::pair<dof_id_type, ADReal>;
343  std::unordered_map<processor_id_type, std::vector<Datum>> push_data;
344 
345  for (auto & pr : _dof_to_nodal_wear_depth)
346  {
347  const auto * const dof_object = pr.first;
348  const auto proc_id = dof_object->processor_id();
349  if (proc_id == this->processor_id())
350  continue;
351 
352  push_data[proc_id].push_back(std::make_pair(dof_object->id(), std::move(pr.second)));
353  }
354 
355  const auto & lm_mesh = _mesh.getMesh();
356 
357  auto action_functor = [this, &lm_mesh](const processor_id_type libmesh_dbg_var(pid),
358  const std::vector<Datum> & sent_data)
359  {
360  mooseAssert(pid != this->processor_id(), "We do not send messages to ourself here");
361  for (auto & pr : sent_data)
362  {
363  const auto dof_id = pr.first;
364  const auto * const dof_object =
365  _nodal ? static_cast<const DofObject *>(lm_mesh.node_ptr(dof_id))
366  : static_cast<const DofObject *>(lm_mesh.elem_ptr(dof_id));
367  mooseAssert(dof_object, "This should be non-null");
368  _dof_to_nodal_wear_depth[dof_object] += std::move(pr.second);
369  }
370  };
371 
372  TIMPI::push_parallel_vector_data(_communicator, push_data, action_functor);
373 }
MooseMesh & _mesh
const Parallel::Communicator & _communicator
std::unordered_map< const DofObject *, ADReal > _dof_to_nodal_wear_depth
A map from node to wear in this step.
void push_parallel_vector_data(const Communicator &comm, MapToVectors &&data, const ActionFunctor &act_on_data)
uint8_t processor_id_type
MeshBase & getMesh()
const bool _nodal
Whether the dof objects are nodal; if they&#39;re not, then they&#39;re elemental.
processor_id_type processor_id() const

◆ computeJacobian() [1/5]

void ADMortarConstraint::computeJacobian
protected

◆ computeJacobian() [2/5]

virtual void ADMortarConstraint::computeJacobian
protected

◆ computeJacobian() [3/5]

virtual void ADMortarConstraint::computeJacobian
protected

◆ computeJacobian() [4/5]

virtual void ADMortarConstraint::computeJacobian
protected

◆ computeJacobian() [5/5]

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

Reimplemented from ADMortarConstraint.

Definition at line 416 of file ComputeDynamicWeightedGapLMMechanicalContact.C.

417 {
418  // During "computeResidual" and "computeJacobian" we are actually just computing properties on the
419  // mortar segment element mesh. We are *not* actually assembling into the residual/Jacobian. For
420  // the zero-penetration constraint, the property of interest is the map from node to weighted gap.
421  // Computation of the properties proceeds identically for residual and Jacobian evaluation hence
422  // why we simply call computeResidual here. We will assemble into the residual/Jacobian later from
423  // the post() method
424  computeResidual(mortar_type);
425 }
virtual void computeResidual() override

◆ computeQpIProperties()

void ComputeDynamicWeightedGapLMMechanicalContact::computeQpIProperties ( )
protectedvirtual

Reimplemented in ComputeDynamicFrictionalForceLMMechanicalContact.

Definition at line 193 of file ComputeDynamicWeightedGapLMMechanicalContact.C.

Referenced by ComputeDynamicFrictionalForceLMMechanicalContact::computeQpIProperties(), and computeResidual().

194 {
195  mooseAssert(_normals.size() == _lower_secondary_elem->n_nodes(),
196  "Making sure that _normals is the expected size");
197 
198  // Get the _dof_to_weighted_gap map
199  const DofObject * dof = _var->isNodal()
200  ? static_cast<const DofObject *>(_lower_secondary_elem->node_ptr(_i))
201  : static_cast<const DofObject *>(_lower_secondary_elem);
202 
203  // Regular normal contact constraint: Use before contact is established for contact detection
204  _dof_to_weighted_gap[dof].first += _test[_i][_qp] * (_qp_gap_nodal * _normals[_i]);
205 
206  // Integrated part of the "persistency" constraint
209 
211 
212  if (_normalize_c)
213  _dof_to_weighted_gap[dof].second += _test[_i][_qp] * _qp_factor;
214 }
const VariableValue & _wear_depth
Wear depth to include contact.
ADRealVectorValue _qp_velocity
Vector for computation of weighted gap velocity to fulfill "persistency" condition.
std::unordered_map< const DofObject *, std::pair< ADReal, Real > > _dof_to_weighted_gap
A map from node to weighted gap and normalization (if requested)
const std::vector< Real > & _JxW_msm
unsigned int _i
const VariableTestValue & _test
std::unordered_map< const DofObject *, ADReal > _dof_to_nodal_wear_depth
A map from node to wear in this step.
Elem const *const & _lower_secondary_elem
std::unordered_map< const DofObject *, ADReal > _dof_to_weighted_gap_dynamics
A map from node to weighted gap velocity times _dt.
std::vector< Point > _normals
bool isNodal() const override
ADRealVectorValue _qp_gap_nodal_dynamics
Vector for computation of weighted gap velocity to fulfill "persistency" condition.
MooseVariable *const _var
bool _normalize_c
Whether to normalize weighted gap by weighting function norm.
std::unordered_map< const DofObject *, ADReal > _dof_to_velocity
A map from node to weighted gap velocity times _dt.
const MooseArray< Real > & _coord
Real _qp_factor
The value of the LM at the current quadrature point.
ADRealVectorValue _qp_gap_nodal
Vector for computation of weighted gap with nodal normals.
unsigned int _qp

◆ computeQpProperties()

void ComputeDynamicWeightedGapLMMechanicalContact::computeQpProperties ( )
protectedvirtual

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

indepedent of shape functions

Reimplemented in ComputeDynamicFrictionalForceLMMechanicalContact.

Definition at line 111 of file ComputeDynamicWeightedGapLMMechanicalContact.C.

Referenced by ComputeDynamicFrictionalForceLMMechanicalContact::computeQpProperties(), and computeResidual().

112 {
113  // Trim interior node variable derivatives
114  const auto & primary_ip_lowerd_map = amg().getPrimaryIpToLowerElementMap(
116  const auto & secondary_ip_lowerd_map =
118 
119  std::array<const MooseVariable *, 3> var_array{{_disp_x_var, _disp_y_var, _disp_z_var}};
120  std::array<ADReal, 3> primary_disp{
121  {_primary_disp_x[_qp], _primary_disp_y[_qp], _has_disp_z ? (*_primary_disp_z)[_qp] : 0}};
122  std::array<ADReal, 3> secondary_disp{{_secondary_disp_x[_qp],
124  _has_disp_z ? (*_secondary_disp_z)[_qp] : 0}};
125 
126  trimInteriorNodeDerivatives(primary_ip_lowerd_map, var_array, primary_disp, false);
127  trimInteriorNodeDerivatives(secondary_ip_lowerd_map, var_array, secondary_disp, true);
128 
129  const ADReal & prim_x = primary_disp[0];
130  const ADReal & prim_y = primary_disp[1];
131  const ADReal * prim_z = nullptr;
132  if (_has_disp_z)
133  prim_z = &primary_disp[2];
134 
135  const ADReal & sec_x = secondary_disp[0];
136  const ADReal & sec_y = secondary_disp[1];
137  const ADReal * sec_z = nullptr;
138  if (_has_disp_z)
139  sec_z = &secondary_disp[2];
140 
141  std::array<ADReal, 3> primary_disp_dot{
142  {_primary_x_dot[_qp], _primary_y_dot[_qp], _has_disp_z ? (*_primary_z_dot)[_qp] : 0}};
143  std::array<ADReal, 3> secondary_disp_dot{
144  {_secondary_x_dot[_qp], _secondary_y_dot[_qp], _has_disp_z ? (*_secondary_z_dot)[_qp] : 0}};
145 
146  trimInteriorNodeDerivatives(primary_ip_lowerd_map, var_array, primary_disp_dot, false);
147  trimInteriorNodeDerivatives(secondary_ip_lowerd_map, var_array, secondary_disp_dot, true);
148 
149  const ADReal & prim_x_dot = primary_disp_dot[0];
150  const ADReal & prim_y_dot = primary_disp_dot[1];
151  const ADReal * prim_z_dot = nullptr;
152  if (_has_disp_z)
153  prim_z_dot = &primary_disp_dot[2];
154 
155  const ADReal & sec_x_dot = secondary_disp_dot[0];
156  const ADReal & sec_y_dot = secondary_disp_dot[1];
157  const ADReal * sec_z_dot = nullptr;
158  if (_has_disp_z)
159  sec_z_dot = &secondary_disp_dot[2];
160 
161  // Compute dynamic constraint-related quantities
163  gap_vec(0).derivatives() = prim_x.derivatives() - sec_x.derivatives();
164  gap_vec(1).derivatives() = prim_y.derivatives() - sec_y.derivatives();
165 
166  _relative_velocity = ADRealVectorValue(prim_x_dot - sec_x_dot, prim_y_dot - sec_y_dot, 0.0);
167 
168  if (_has_disp_z)
169  {
170  gap_vec(2).derivatives() = prim_z->derivatives() - sec_z->derivatives();
171  _relative_velocity(2) = *prim_z_dot - *sec_z_dot;
172  }
173 
174  _qp_gap_nodal = gap_vec * (_JxW_msm[_qp] * _coord[_qp]);
176 
177  // Current part of the gap velocity Newmark-beta time discretization
179  (_newmark_gamma / _newmark_beta * gap_vec / _dt) * (_JxW_msm[_qp] * _coord[_qp]);
180 
181  // To do normalization of constraint coefficient (c_n)
183 }
ADRealVectorValue _qp_velocity
Vector for computation of weighted gap velocity to fulfill "persistency" condition.
const ADVariableValue & _secondary_disp_x
x-displacement on the secondary face
const ADVariableValue & _primary_disp_y
y-displacement on the primary face
const ADVariableValue & _primary_disp_x
x-displacement on the primary face
std::map< unsigned int, unsigned int > getPrimaryIpToLowerElementMap(const Elem &primary_elem, const Elem &primary_elem_ip, const Elem &lower_secondary_elem) const
const bool _has_disp_z
For 2D mortar contact no displacement will be specified, so const pointers used.
const MooseArray< Point > & _phys_points_primary
Elem const *const & _lower_primary_elem
const std::vector< Real > & _JxW_msm
DualNumber< Real, DNDerivativeType, true > ADReal
Elem const *const & _lower_secondary_elem
const AutomaticMortarGeneration & amg() const
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)
const MooseVariable *const _disp_z_var
The z displacement variable.
const ADVariableValue & _secondary_disp_y
y-displacement on the secondary face
std::map< unsigned int, unsigned int > getSecondaryIpToLowerElementMap(const Elem &lower_secondary_elem) const
const MooseArray< Point > & _phys_points_secondary
const MooseVariable *const _disp_x_var
The x displacement variable.
ADRealVectorValue _qp_gap_nodal_dynamics
Vector for computation of weighted gap velocity to fulfill "persistency" condition.
const MooseArray< Real > & _coord
Real _qp_factor
The value of the LM at the current quadrature point.
ADRealVectorValue _qp_gap_nodal
Vector for computation of weighted gap with nodal normals.
unsigned int _qp
const MooseVariable *const _disp_y_var
The y displacement variable.

◆ computeQpResidual()

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

Implements ADMortarConstraint.

Definition at line 186 of file ComputeDynamicWeightedGapLMMechanicalContact.C.

187 {
188  mooseError(
189  "We should never call computeQpResidual for ComputeDynamicWeightedGapLMMechanicalContact");
190 }
void mooseError(Args &&... args) const

◆ computeResidual() [1/5]

virtual void ADMortarConstraint::computeResidual
protected

◆ computeResidual() [2/5]

virtual void ADMortarConstraint::computeResidual
protected

◆ computeResidual() [3/5]

virtual void ADMortarConstraint::computeResidual
protected

◆ computeResidual() [4/5]

void ADMortarConstraint::computeResidual
protected

◆ computeResidual() [5/5]

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

Reimplemented from ADMortarConstraint.

Definition at line 394 of file ComputeDynamicWeightedGapLMMechanicalContact.C.

395 {
396  if (mortar_type != Moose::MortarType::Lower)
397  return;
398 
399  mooseAssert(_var, "LM variable is null");
400 
401  for (_qp = 0; _qp < _qrule_msm->n_points(); _qp++)
402  {
404  for (_i = 0; _i < _test.size(); ++_i)
406  }
407 }
virtual void computeQpProperties()
Computes properties that are functions only of the current quadrature point (_qp), e.g.
unsigned int _i
const libMesh::QBase *const & _qrule_msm
const VariableTestValue & _test
unsigned int n_points() const
MooseVariable *const _var
unsigned int _qp

◆ enforceConstraintOnDof()

void ComputeDynamicWeightedGapLMMechanicalContact::enforceConstraintOnDof ( const DofObject *const  dof)
protectedvirtual

Method called from post().

Used to enforce node-associated constraints. E.g. for the base ComputeWeightedGapLMMechanicalContact we enforce the zero-penetration constraint in this method using an NCP function. This is also where we actually feed the node-based constraint information into the system residual and Jacobian

Reimplemented in ComputeDynamicFrictionalForceLMMechanicalContact.

Definition at line 376 of file ComputeDynamicWeightedGapLMMechanicalContact.C.

Referenced by incorrectEdgeDroppingPost(), and post().

377 {
378  const auto & weighted_gap = *_weighted_gap_ptr;
379  const Real c = _normalize_c ? _c / *_normalization_ptr : _c;
380 
381  const auto dof_index = dof->dof_number(_sys.number(), _var->number(), 0);
382  ADReal lm_value = (*_sys.currentSolution())(dof_index);
383  Moose::derivInsert(lm_value.derivatives(), dof_index, 1.);
384 
385  const ADReal dof_residual = std::min(lm_value, weighted_gap * c);
386 
388  std::array<ADReal, 1>{{dof_residual}},
389  std::array<dof_id_type, 1>{{dof_index}},
390  _var->scalingFactor());
391 }
virtual const NumericVector< Number > *const & currentSolution() const=0
void addResidualsAndJacobian(Assembly &assembly, const Residuals &residuals, const Indices &dof_indices, Real scaling_factor)
unsigned int number() const
DualNumber< Real, DNDerivativeType, true > ADReal
SystemBase & _sys
unsigned int number() const
const ADReal * _weighted_gap_ptr
A pointer members that can be used to help avoid copying ADReals.
Assembly & _assembly
MooseVariable *const _var
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
bool _normalize_c
Whether to normalize weighted gap by weighting function norm.
void derivInsert(SemiDynamicSparseNumberArray< Real, libMesh::dof_id_type, NWrapper< N >> &derivs, libMesh::dof_id_type index, Real value)
const Real _c
This factor multiplies the weighted gap.
void scalingFactor(const std::vector< Real > &factor)

◆ incorrectEdgeDroppingPost()

void ComputeDynamicWeightedGapLMMechanicalContact::incorrectEdgeDroppingPost ( const std::unordered_set< const Node *> &  inactive_lm_nodes)
overrideprotectedvirtual

Reimplemented from ADMortarConstraint.

Reimplemented in ComputeDynamicFrictionalForceLMMechanicalContact.

Definition at line 293 of file ComputeDynamicWeightedGapLMMechanicalContact.C.

Referenced by ComputeDynamicFrictionalForceLMMechanicalContact::incorrectEdgeDroppingPost().

295 {
298 
299  if (_has_wear)
300  communicateWear();
301 
302  for (const auto & pr : _dof_to_weighted_gap)
303  {
304  if ((inactive_lm_nodes.find(static_cast<const Node *>(pr.first)) != inactive_lm_nodes.end()) ||
305  (pr.first->processor_id() != this->processor_id()))
306  continue;
307 
308  //
309  _dof_to_weighted_gap[pr.first].first += _dof_to_nodal_wear_depth[pr.first];
310  _dof_to_weighted_gap_dynamics[pr.first] +=
312  const auto is_dof_on_map = _dof_to_old_weighted_gap.find(pr.first);
313 
314  // If is_dof_on_map isn't on map, it means it's an initial step
315  if (is_dof_on_map == _dof_to_old_weighted_gap.end() ||
317  {
318  // If this is the first step or the previous step gap is not identified as in contact, apply
319  // regular conditions
320  _weighted_gap_ptr = &pr.second.first;
321  }
322  else
323  {
324  ADReal term = _dof_to_weighted_gap[pr.first].first * _newmark_gamma / (_newmark_beta * _dt);
325  term -= _dof_to_old_weighted_gap[pr.first] * _newmark_gamma / (_newmark_beta * _dt);
326  term -= _dof_to_old_velocity[pr.first];
327  _dof_to_weighted_gap_dynamics[pr.first] = term;
328  // Enable the application of persistency condition
330  }
331 
332  _normalization_ptr = &pr.second.second;
333 
335  }
336 }
MooseMesh & _mesh
virtual void enforceConstraintOnDof(const DofObject *const dof)
Method called from post().
std::unordered_map< const DofObject *, std::pair< ADReal, Real > > _dof_to_weighted_gap
A map from node to weighted gap and normalization (if requested)
std::unordered_map< const DofObject *, ADReal > _dof_to_old_weighted_gap
A map from dof-object to the old weighted gap.
const Parallel::Communicator & _communicator
DualNumber< Real, DNDerivativeType, true > ADReal
std::unordered_map< const DofObject *, ADReal > _dof_to_old_velocity
A map from node to weighted gap velocity times _dt.
std::unordered_map< const DofObject *, ADReal > _dof_to_nodal_wear_depth
A map from node to wear in this step.
void communicateGaps(std::unordered_map< const DofObject *, std::pair< ADReal, Real >> &dof_to_weighted_gap, const MooseMesh &mesh, bool nodal, bool normalize_c, const Parallel::Communicator &communicator, bool send_data_back)
This function is used to communicate gaps across processes.
std::unordered_map< const DofObject *, ADReal > _dof_to_weighted_gap_dynamics
A map from node to weighted gap velocity times _dt.
const bool _nodal
Whether the dof objects are nodal; if they&#39;re not, then they&#39;re elemental.
const ADReal * _weighted_gap_ptr
A pointer members that can be used to help avoid copying ADReals.
bool _normalize_c
Whether to normalize weighted gap by weighting function norm.
const Real _capture_tolerance
A small threshold gap value to consider that a node needs a "persistency" constraint.
const bool _has_wear
Flag to determine whether wear needs to be included in the contact constraints.
processor_id_type processor_id() const

◆ jacobianSetup()

void ComputeDynamicWeightedGapLMMechanicalContact::jacobianSetup ( )
finaloverrideprotectedvirtual

◆ post()

void ComputeDynamicWeightedGapLMMechanicalContact::post ( )
overrideprotectedvirtual

Reimplemented from ADMortarConstraint.

Reimplemented in ComputeDynamicFrictionalForceLMMechanicalContact.

Definition at line 250 of file ComputeDynamicWeightedGapLMMechanicalContact.C.

Referenced by ComputeDynamicFrictionalForceLMMechanicalContact::post().

251 {
254 
255  if (_has_wear)
256  communicateWear();
257 
258  // There is a need for the dynamic constraint to uncouple the computation of the weighted gap from
259  // the computation of the constraint itself since we are switching from gap constraint to
260  // persistency constraint.
261  for (const auto & pr : _dof_to_weighted_gap)
262  {
263  if (pr.first->processor_id() != this->processor_id())
264  continue;
265 
266  //
267  _dof_to_weighted_gap[pr.first].first += _dof_to_nodal_wear_depth[pr.first];
268  _dof_to_weighted_gap_dynamics[pr.first] +=
270  //
271 
272  const auto is_dof_on_map = _dof_to_old_weighted_gap.find(pr.first);
273 
274  // If is_dof_on_map isn't on map, it means it's an initial step
275  if (is_dof_on_map == _dof_to_old_weighted_gap.end() ||
277  _weighted_gap_ptr = &pr.second.first;
278  else
279  {
281  term += _dof_to_old_velocity[pr.first];
282  _dof_to_weighted_gap_dynamics[pr.first] += term;
284  }
285 
286  _normalization_ptr = &pr.second.second;
287 
289  }
290 }
MooseMesh & _mesh
virtual void enforceConstraintOnDof(const DofObject *const dof)
Method called from post().
std::unordered_map< const DofObject *, std::pair< ADReal, Real > > _dof_to_weighted_gap
A map from node to weighted gap and normalization (if requested)
std::unordered_map< const DofObject *, ADReal > _dof_to_old_weighted_gap
A map from dof-object to the old weighted gap.
const Parallel::Communicator & _communicator
DualNumber< Real, DNDerivativeType, true > ADReal
std::unordered_map< const DofObject *, ADReal > _dof_to_old_velocity
A map from node to weighted gap velocity times _dt.
std::unordered_map< const DofObject *, ADReal > _dof_to_nodal_wear_depth
A map from node to wear in this step.
void communicateGaps(std::unordered_map< const DofObject *, std::pair< ADReal, Real >> &dof_to_weighted_gap, const MooseMesh &mesh, bool nodal, bool normalize_c, const Parallel::Communicator &communicator, bool send_data_back)
This function is used to communicate gaps across processes.
std::unordered_map< const DofObject *, ADReal > _dof_to_weighted_gap_dynamics
A map from node to weighted gap velocity times _dt.
const bool _nodal
Whether the dof objects are nodal; if they&#39;re not, then they&#39;re elemental.
const ADReal * _weighted_gap_ptr
A pointer members that can be used to help avoid copying ADReals.
bool _normalize_c
Whether to normalize weighted gap by weighting function norm.
const Real _capture_tolerance
A small threshold gap value to consider that a node needs a "persistency" constraint.
const bool _has_wear
Flag to determine whether wear needs to be included in the contact constraints.
processor_id_type processor_id() const

◆ residualSetup()

void ComputeDynamicWeightedGapLMMechanicalContact::residualSetup ( )
overrideprotectedvirtual

Reimplemented from ADMortarConstraint.

Definition at line 239 of file ComputeDynamicWeightedGapLMMechanicalContact.C.

Referenced by jacobianSetup(), and ComputeDynamicFrictionalForceLMMechanicalContact::residualSetup().

240 {
241  _dof_to_weighted_gap.clear();
243  _dof_to_velocity.clear();
244 
245  // Wear
246  _dof_to_nodal_wear_depth.clear();
247 }
std::unordered_map< const DofObject *, std::pair< ADReal, Real > > _dof_to_weighted_gap
A map from node to weighted gap and normalization (if requested)
std::unordered_map< const DofObject *, ADReal > _dof_to_nodal_wear_depth
A map from node to wear in this step.
std::unordered_map< const DofObject *, ADReal > _dof_to_weighted_gap_dynamics
A map from node to weighted gap velocity times _dt.
std::unordered_map< const DofObject *, ADReal > _dof_to_velocity
A map from node to weighted gap velocity times _dt.

◆ timestepSetup()

void ComputeDynamicWeightedGapLMMechanicalContact::timestepSetup ( )
overrideprotectedvirtual

Reimplemented from ADMortarConstraint.

Definition at line 217 of file ComputeDynamicWeightedGapLMMechanicalContact.C.

Referenced by ComputeDynamicFrictionalForceLMMechanicalContact::timestepSetup().

218 {
219  // These dof maps are not recoverable as they are maps of pointers, and recovering old pointers
220  // would be wrong. We would need to create a custom dataStore() and dataLoad()
221  if (_app.isRecovering())
222  mooseError("This object does not support recovering");
223 
224  _dof_to_old_weighted_gap.clear();
225  _dof_to_old_velocity.clear();
227 
228  for (auto & map_pr : _dof_to_weighted_gap)
229  _dof_to_old_weighted_gap.emplace(map_pr.first, std::move(map_pr.second.first));
230 
231  for (auto & map_pr : _dof_to_velocity)
232  _dof_to_old_velocity.emplace(map_pr);
233 
234  for (auto & map_pr : _dof_to_nodal_wear_depth)
235  _dof_to_nodal_old_wear_depth.emplace(map_pr);
236 }
std::unordered_map< const DofObject *, std::pair< ADReal, Real > > _dof_to_weighted_gap
A map from node to weighted gap and normalization (if requested)
std::unordered_map< const DofObject *, ADReal > _dof_to_old_weighted_gap
A map from dof-object to the old weighted gap.
std::unordered_map< const DofObject *, ADReal > _dof_to_old_velocity
A map from node to weighted gap velocity times _dt.
std::unordered_map< const DofObject *, ADReal > _dof_to_nodal_wear_depth
A map from node to wear in this step.
std::unordered_map< const DofObject *, ADReal > _dof_to_nodal_old_wear_depth
A map from node to wear in old step.
void mooseError(Args &&... args) const
std::unordered_map< const DofObject *, ADReal > _dof_to_velocity
A map from node to weighted gap velocity times _dt.
bool isRecovering() const

◆ validParams()

InputParameters ComputeDynamicWeightedGapLMMechanicalContact::validParams ( )
static

Definition at line 41 of file ComputeDynamicWeightedGapLMMechanicalContact.C.

Referenced by ComputeDynamicFrictionalForceLMMechanicalContact::validParams().

42 {
44  params.addClassDescription(
45  "Computes the normal contact mortar constraints for dynamic simulations");
46  params.addRangeCheckedParam<Real>("capture_tolerance",
47  1.0e-5,
48  "capture_tolerance>=0",
49  "Parameter describing a gap threshold for the application of "
50  "the persistency constraint in dynamic simulations.");
51  params.addCoupledVar("wear_depth",
52  "The name of the mortar auxiliary variable that is used to modify the "
53  "weighted gap definition");
55  "newmark_beta", "newmark_beta > 0", "Beta parameter for the Newmark time integrator");
57  "newmark_gamma", "newmark_gamma >= 0.0", "Gamma parameter for the Newmark time integrator");
58  params.suppressParameter<VariableName>("secondary_variable");
59  params.suppressParameter<VariableName>("primary_variable");
60  params.addRequiredCoupledVar("disp_x", "The x displacement variable");
61  params.addRequiredCoupledVar("disp_y", "The y displacement variable");
62  params.addCoupledVar("disp_z", "The z displacement variable");
63  params.addParam<Real>(
64  "c", 1e6, "Parameter for balancing the size of the gap and contact pressure");
65  params.addParam<bool>(
66  "normalize_c",
67  false,
68  "Whether to normalize c by weighting function norm. When unnormalized "
69  "the value of c effectively depends on element size since in the constraint we compare nodal "
70  "Lagrange Multiplier values to integrated gap values (LM nodal value is independent of "
71  "element size, where integrated values are dependent on element size).");
72  params.set<bool>("use_displaced_mesh") = true;
73  params.set<bool>("interpolate_normals") = false;
74  return params;
75 }
void addRequiredRangeCheckedParam(const std::string &name, const std::string &parsed_function, const std::string &doc_string)
void addParam(const std::string &name, const std::initializer_list< typename T::value_type > &value, const std::string &doc_string)
T & set(const std::string &name, bool quiet_mode=false)
void suppressParameter(const std::string &name)
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)
static InputParameters validParams()
void addRangeCheckedParam(const std::string &name, const T &value, const std::string &parsed_function, const std::string &doc_string)

Member Data Documentation

◆ _c

const Real ComputeDynamicWeightedGapLMMechanicalContact::_c
protected

This factor multiplies the weighted gap.

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

Definition at line 80 of file ComputeDynamicWeightedGapLMMechanicalContact.h.

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

◆ _capture_tolerance

const Real ComputeDynamicWeightedGapLMMechanicalContact::_capture_tolerance
protected

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

Definition at line 112 of file ComputeDynamicWeightedGapLMMechanicalContact.h.

Referenced by incorrectEdgeDroppingPost(), and post().

◆ _disp_x_var

const MooseVariable* const ComputeDynamicWeightedGapLMMechanicalContact::_disp_x_var
protected

The x displacement variable.

Definition at line 95 of file ComputeDynamicWeightedGapLMMechanicalContact.h.

Referenced by computeQpProperties().

◆ _disp_y_var

const MooseVariable* const ComputeDynamicWeightedGapLMMechanicalContact::_disp_y_var
protected

The y displacement variable.

Definition at line 97 of file ComputeDynamicWeightedGapLMMechanicalContact.h.

Referenced by computeQpProperties().

◆ _disp_z_var

const MooseVariable* const ComputeDynamicWeightedGapLMMechanicalContact::_disp_z_var
protected

The z displacement variable.

Definition at line 99 of file ComputeDynamicWeightedGapLMMechanicalContact.h.

Referenced by computeQpProperties().

◆ _dof_to_nodal_old_wear_depth

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

A map from node to wear in old step.

Definition at line 155 of file ComputeDynamicWeightedGapLMMechanicalContact.h.

Referenced by timestepSetup().

◆ _dof_to_nodal_wear_depth

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

◆ _dof_to_old_velocity

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

A map from node to weighted gap velocity times _dt.

Definition at line 143 of file ComputeDynamicWeightedGapLMMechanicalContact.h.

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

◆ _dof_to_old_weighted_gap

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

A map from dof-object to the old weighted gap.

Definition at line 129 of file ComputeDynamicWeightedGapLMMechanicalContact.h.

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

◆ _dof_to_velocity

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

A map from node to weighted gap velocity times _dt.

Definition at line 141 of file ComputeDynamicWeightedGapLMMechanicalContact.h.

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

◆ _dof_to_weighted_gap

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

◆ _dof_to_weighted_gap_dynamics

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

A map from node to weighted gap velocity times _dt.

Definition at line 138 of file ComputeDynamicWeightedGapLMMechanicalContact.h.

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

◆ _has_disp_z

const bool ComputeDynamicWeightedGapLMMechanicalContact::_has_disp_z
protected

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

Definition at line 71 of file ComputeDynamicWeightedGapLMMechanicalContact.h.

Referenced by computeQpProperties().

◆ _has_wear

const bool ComputeDynamicWeightedGapLMMechanicalContact::_has_wear
protected

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

Definition at line 123 of file ComputeDynamicWeightedGapLMMechanicalContact.h.

Referenced by incorrectEdgeDroppingPost(), and post().

◆ _newmark_beta

const Real ComputeDynamicWeightedGapLMMechanicalContact::_newmark_beta
protected

◆ _newmark_gamma

const Real ComputeDynamicWeightedGapLMMechanicalContact::_newmark_gamma
protected

◆ _nodal

const bool ComputeDynamicWeightedGapLMMechanicalContact::_nodal
protected

◆ _normalization_ptr

const Real* ComputeDynamicWeightedGapLMMechanicalContact::_normalization_ptr = nullptr
protected

◆ _normalize_c

bool ComputeDynamicWeightedGapLMMechanicalContact::_normalize_c
protected

◆ _primary_disp_x

const ADVariableValue& ComputeDynamicWeightedGapLMMechanicalContact::_primary_disp_x
protected

x-displacement on the primary face

Definition at line 64 of file ComputeDynamicWeightedGapLMMechanicalContact.h.

Referenced by computeQpProperties().

◆ _primary_disp_y

const ADVariableValue& ComputeDynamicWeightedGapLMMechanicalContact::_primary_disp_y
protected

y-displacement on the primary face

Definition at line 68 of file ComputeDynamicWeightedGapLMMechanicalContact.h.

Referenced by computeQpProperties().

◆ _primary_disp_z

const ADVariableValue* const ComputeDynamicWeightedGapLMMechanicalContact::_primary_disp_z
protected

z-displacement on the primary face

Definition at line 75 of file ComputeDynamicWeightedGapLMMechanicalContact.h.

◆ _primary_x_dot

const ADVariableValue& ComputeDynamicWeightedGapLMMechanicalContact::_primary_x_dot
protected

Definition at line 115 of file ComputeDynamicWeightedGapLMMechanicalContact.h.

Referenced by computeQpProperties().

◆ _primary_y_dot

const ADVariableValue& ComputeDynamicWeightedGapLMMechanicalContact::_primary_y_dot
protected

Definition at line 117 of file ComputeDynamicWeightedGapLMMechanicalContact.h.

Referenced by computeQpProperties().

◆ _primary_z_dot

const ADVariableValue* ComputeDynamicWeightedGapLMMechanicalContact::_primary_z_dot
protected

◆ _qp_factor

Real ComputeDynamicWeightedGapLMMechanicalContact::_qp_factor
protected

The value of the LM at the current quadrature point.

Definition at line 86 of file ComputeDynamicWeightedGapLMMechanicalContact.h.

Referenced by computeQpIProperties(), and computeQpProperties().

◆ _qp_gap

ADReal ComputeDynamicWeightedGapLMMechanicalContact::_qp_gap
protected

The value of the gap at the current quadrature point.

Definition at line 83 of file ComputeDynamicWeightedGapLMMechanicalContact.h.

◆ _qp_gap_nodal

ADRealVectorValue ComputeDynamicWeightedGapLMMechanicalContact::_qp_gap_nodal
protected

Vector for computation of weighted gap with nodal normals.

Definition at line 102 of file ComputeDynamicWeightedGapLMMechanicalContact.h.

Referenced by computeQpIProperties(), and computeQpProperties().

◆ _qp_gap_nodal_dynamics

ADRealVectorValue ComputeDynamicWeightedGapLMMechanicalContact::_qp_gap_nodal_dynamics
protected

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

Definition at line 132 of file ComputeDynamicWeightedGapLMMechanicalContact.h.

Referenced by computeQpIProperties(), and computeQpProperties().

◆ _qp_velocity

ADRealVectorValue ComputeDynamicWeightedGapLMMechanicalContact::_qp_velocity
protected

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

Definition at line 135 of file ComputeDynamicWeightedGapLMMechanicalContact.h.

Referenced by computeQpIProperties(), and computeQpProperties().

◆ _relative_velocity

ADRealVectorValue ComputeDynamicWeightedGapLMMechanicalContact::_relative_velocity
protected

◆ _secondary_disp_x

const ADVariableValue& ComputeDynamicWeightedGapLMMechanicalContact::_secondary_disp_x
protected

x-displacement on the secondary face

Definition at line 62 of file ComputeDynamicWeightedGapLMMechanicalContact.h.

Referenced by computeQpProperties().

◆ _secondary_disp_y

const ADVariableValue& ComputeDynamicWeightedGapLMMechanicalContact::_secondary_disp_y
protected

y-displacement on the secondary face

Definition at line 66 of file ComputeDynamicWeightedGapLMMechanicalContact.h.

Referenced by computeQpProperties().

◆ _secondary_disp_z

const ADVariableValue* const ComputeDynamicWeightedGapLMMechanicalContact::_secondary_disp_z
protected

z-displacement on the secondary face

Definition at line 73 of file ComputeDynamicWeightedGapLMMechanicalContact.h.

◆ _secondary_x_dot

const ADVariableValue& ComputeDynamicWeightedGapLMMechanicalContact::_secondary_x_dot
protected

Definition at line 114 of file ComputeDynamicWeightedGapLMMechanicalContact.h.

Referenced by computeQpProperties().

◆ _secondary_y_dot

const ADVariableValue& ComputeDynamicWeightedGapLMMechanicalContact::_secondary_y_dot
protected

Definition at line 116 of file ComputeDynamicWeightedGapLMMechanicalContact.h.

Referenced by computeQpProperties().

◆ _secondary_z_dot

const ADVariableValue* ComputeDynamicWeightedGapLMMechanicalContact::_secondary_z_dot
protected

◆ _wear_depth

const VariableValue& ComputeDynamicWeightedGapLMMechanicalContact::_wear_depth
protected

Wear depth to include contact.

Definition at line 126 of file ComputeDynamicWeightedGapLMMechanicalContact.h.

Referenced by computeQpIProperties().

◆ _weighted_gap_ptr

const ADReal* ComputeDynamicWeightedGapLMMechanicalContact::_weighted_gap_ptr = nullptr
protected

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