39 virtual void reinit()
override;
DualNumber< Real, DNDerivativeType, true > ADReal
Interface class for user objects that support the augmented Lagrange formalism as implemented in Augm...
const InputParameters & parameters() const
virtual const Node * nodePtr(const dof_id_type i) const
User object for computing weighted gaps and contact pressure for penalty based mortar constraints.
virtual bool getActiveSetState(const Node *const node) const
const Real _penalty
The penalty factor.
std::unordered_map< const DofObject *, Real > _dof_to_previous_gap
Map from degree of freedom to previous AL iteration gap values.
const unsigned int & _lagrangian_iteration_number
void adaptiveNormalPenalty(const Real previous_gap, const Real gap, Real &penalty)
See Algorithm 3 of 'The adapted augmented Lagrangian method: a new method for the resolution of the m...
virtual bool isAugmentedLagrangianConverged() override
virtual ADReal nodalContactPressure(const Node &node) const override
virtual void reinit() override
const Real _penalty_multiplier
penalty growth factor for augmented Lagrange
std::unordered_map< const DofObject *, Real > _dof_to_local_penalty
Map from degree of freedom to local penalty value.
enum PenaltyWeightedGapUserObject::AdaptivityNormalPenalty _adaptivity_normal
virtual const VariableTestValue & tractionBasis() const override
virtual Real getNormalContactPressure(const Node *const node) const override
virtual void initialize() override
Real _dt_old
previous timestep size
virtual void augmentedLagrangianSetup() override
std::unordered_map< dof_id_type, Real > _dof_to_lagrange_multiplier_start
Augmented lagrange multipliers at the start of the current timestep, restored when the timestep is re...
const Real _penetration_tolerance
penetration tolerance for augmented Lagrange contact
AugmentedLagrangianContactProblemInterface *const _augmented_lagrange_problem
augmented Lagrange problem and iteration number
std::unordered_map< dof_id_type, Real > & _dof_to_lagrange_multiplier
Map from node id to augmented lagrange multiplier.
virtual const VariableTestValue & test() const override
ADVariableValue _contact_pressure
The contact pressure on the mortar segument quadrature points.
const MooseVariable *const _aux_lm_var
The auxiliary Lagrange multiplier variable (used together whith the Petrov-Galerkin approach)
const Real & _dt
Current delta t... or timestep size.
virtual bool constrainedByOwner() const override
virtual void finalize() override
std::unordered_map< const DofObject *, ADReal > _dof_to_normal_pressure
Map from degree of freedom to normal pressure for reporting.
virtual void updateAugmentedLagrangianMultipliers() override
static const unsigned int _no_iterations
virtual const ADVariableValue & contactPressure() const override
int & _t_step_old_normal
The timestep index at which _dof_to_lagrange_multiplier_start was last saved.
AdaptivityNormalPenalty
The adaptivity method for the penalty factor at augmentations.
virtual bool usesNodalNormalDerivatives() const override
Whether this formulation includes displacement derivatives of the secondary nodal normals.
const bool _use_physical_gap
Use scaled or physical gap.
virtual Real getDeltaTangentialLagrangeMultiplier(const Node *const, const unsigned int) const
const Real _max_penalty_multiplier
Maximum multiplier applied to the initial penalty factor in AL.
static InputParameters validParams()
virtual Real getNormalLagrangeMultiplier(const Node *const node) const
virtual void timestepSetup() override
void bussettaAdaptivePenalty(const Real previous_gap, const Real gap, Real &penalty, Real &eval_tn)
Adaptive, local penalty for AL.
virtual MooseMesh & mesh()=0
Creates dof object to weighted gap map.
VariableShapeValue< true > VariableTestValue
VariableValueTempl< true > ADVariableValue