35 virtual void reinit()
override;
40 const unsigned int component)
const override;
42 const unsigned int component)
const override;
44 const unsigned int component)
const override;
46 const unsigned int component)
const override;
109 std::unordered_map<dof_id_type, std::pair<ADTwoVector, TwoVector>>
DualNumber< Real, DNDerivativeType, true > ADReal
const InputParameters & parameters() const
User object that computes tangential pressures due to friction using a penalty approach,...
virtual Real getDeltaTangentialLagrangeMultiplier(const Node *const node, const unsigned int component) const override
virtual void reinit() override
virtual void timestepSetup() override
virtual void updateAugmentedLagrangianMultipliers() override
std::unordered_map< dof_id_type, std::pair< TwoVector, TwoVector > > & _dof_to_accumulated_slip
Map from node id to current and old accumulated slip.
virtual bool constrainedByOwner() const override
std::unordered_map< dof_id_type, std::pair< ADTwoVector, TwoVector > > & _dof_to_tangential_traction
Map from node id to current and old tangential traction.
std::unordered_map< dof_id_type, TwoVector > & _dof_to_frictional_lagrange_multipliers
Map from node id to augmented lagrange multiplier.
virtual ADReal nodalTangentialPressure(const Node &node, unsigned int direction) const override
virtual const ADVariableValue & contactTangentialPressureDirTwo() const override
std::unordered_map< dof_id_type, TwoVector > _dof_to_frictional_lagrange_multipliers_start
const Real _epsilon_tolerance
Tolerance to avoid NaN/Inf in automatic differentiation operations.
const Real _penalty_multiplier_friction
Penalty growth factor for augmented Lagrange.
ADVariableValue _frictional_contact_traction_one
The first frictional contact pressure on the mortar segment quadrature points.
virtual void finalize() override
ADVariableValue _frictional_contact_traction_two
The second frictional contact pressure on the mortar segment quadrature points.
const Real _friction_coefficient
The friction coefficient.
enum PenaltyFrictionUserObject::AdaptivityFrictionalPenalty _adaptivity_friction
std::unordered_map< dof_id_type, std::pair< TwoVector, TwoVector > > _dof_to_accumulated_slip_start
const Real _slip_tolerance
Acceptable slip distance for augmented Lagrange convergence.
virtual Real getFrictionalContactPressure(const Node *const node, const unsigned int component) const override
virtual Real getTangentialVelocity(const Node *const node, const unsigned int component) const override
std::unordered_map< dof_id_type, Real > & _dof_to_local_penalty_friction
Map from node id to local friction penalty value.
const Real _penalty
The normal penalty factor.
const Real _penalty_friction
The penalty factor for the frictional constraints.
int & _t_step_old_friction
The timestep index at which the accumulated slip and tangential traction history were last advanced.
virtual void initialize() override
std::unordered_map< dof_id_type, std::pair< TwoVector, TwoVector > > & _dof_to_step_slip
Map from node id to current and old step slip.
std::unordered_map< dof_id_type, Real > _dof_to_local_penalty_friction_start
virtual const VariableTestValue & test() const override
virtual Real getAccumulatedSlip(const Node *const node, const unsigned int component) const override
std::unordered_map< dof_id_type, std::pair< ADTwoVector, TwoVector > > _dof_to_tangential_traction_start
static InputParameters validParams()
AdaptivityFrictionalPenalty
The adaptivity method for the penalty factor at augmentations.
virtual bool isAugmentedLagrangianConverged() override
std::unordered_map< dof_id_type, std::pair< TwoVector, TwoVector > > _dof_to_step_slip_start
Frictional state at the start of the current timestep, restored when it is retried.
virtual const ADVariableValue & contactTangentialPressureDirOne() const override
User object for computing weighted gaps and contact pressure for penalty based mortar constraints.
Creates dof object to weighted tangential velocities map.
VariableShapeValue< true > VariableTestValue
VariableValueTempl< true > ADVariableValue