25 virtual void execute()
override;
32 const std::unordered_map<const DofObject *, std::pair<ADReal, Real>> &
dofToWeightedGap()
const;
67 const unsigned int )
const
78 const unsigned int )
const
89 const unsigned int )
const
120 template <
typename K,
typename V>
122 findValue(
const std::unordered_map<K, V> & map,
const K & key,
const V & default_value = 0)
const
124 const auto it = map.find(key);
126 return default_value;
199inline const std::unordered_map<const DofObject *, std::pair<ADReal, Real>> &
DualNumber< Real, DNDerivativeType, true > ADReal
const InputParameters & parameters() const
void mooseError(Args &&... args) const
Creates dof object to weighted gap map.
static InputParameters validParams()
const ADVariableValue *const _primary_disp_z
z-displacement on the primary face
virtual Real getAccumulatedSlip(const Node *const, const unsigned int) const
const std::unordered_map< const DofObject *, std::pair< ADReal, Real > > & dofToWeightedGap() const
Get the degree of freedom to weighted gap information.
virtual Real getFrictionalContactPressure(const Node *const, const unsigned int) const
unsigned int _i
Test function index.
V findValue(const std::unordered_map< K, V > &map, const K &key, const V &default_value=0) const
Find a value in a map or return a default if the key doesn't exist.
const ADVariableValue & _secondary_disp_x
x-displacement on the secondary face
const MooseVariable *const _disp_x_var
The x displacement variable.
virtual Real getTangentialVelocity(const Node *const, const unsigned int) const
virtual void computeQpProperties()
Computes properties that are functions only of the current quadrature point (_qp),...
const bool _has_disp_z
For 2D mortar contact no displacement will be specified, so const pointers used.
virtual void finalize() override
virtual void execute() override
ADRealVectorValue _qp_gap_nodal
Vector for computation of weighted gap with nodal normals.
virtual void initialSetup() override
unsigned int _qp
Quadrature point index for the mortar segments.
Real _qp_factor
The value of the LM at the current quadrature point.
virtual Real getNormalGap(const Node *const) const
FEProblemBase & _fe_problem
The base finite element problem.
virtual const ADVariableValue & contactPressure() const =0
virtual Real getNormalContactPressure(const Node *const) const =0
ADReal adPhysicalGap(const std::pair< ADReal, Real > &gap) const
const ADVariableValue & _primary_disp_y
y-displacement on the primary face
const MooseArray< Real > & _coord
Member for handling change of coordinate systems (xyz, rz, spherical)
const ADVariableValue & _secondary_disp_y
y-displacement on the secondary face
const ADVariableValue & _primary_disp_x
x-displacement on the primary face
ADReal _qp_gap
The value of the gap at the current quadrature point.
const MooseVariable *const _disp_y_var
The y displacement variable.
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 Real * _normalization_ptr
virtual const VariableTestValue & test() const =0
const MooseVariable *const _disp_z_var
The z displacement variable.
ADRealVectorValue _qp_displacement_nodal
Vector for computation of relative displacement (determines mixity ratio in interface problems)
const ADVariableValue *const _secondary_disp_z
z-displacement on the secondary face
virtual void computeQpIProperties()
Computes properties that are functions both of _qp and _i, for example the weighted gap.
virtual void initialize() override
bool _is_weighted_gap_nodal
Whether the weighted gap is associated with nodes or elements (like for a CONSTANT MONOMIAL Lagrange ...
const ADReal * _weighted_gap_ptr
A pointer members that can be used to help avoid copying ADReals.
std::unordered_map< const DofObject *, ADRealVectorValue > _dof_to_weighted_displacements
A map from node to weighted displacements.
virtual bool constrainedByOwner() const =0
Real physicalGap(const std::pair< ADReal, Real > &gap) const
Compute physical gap from integration gap quantity.
const VariableTestValue * _test
A pointer to the test function associated with the weighted gap.
const bool _nodal
Whether the dof objects are nodal; if they're not, then they're elemental.
VariableShapeValue< true > VariableTestValue
VariableValueTempl< true > ADVariableValue