https://mooseframework.inl.gov
contact
include
constraints
ComputeDynamicFrictionalForceLMMechanicalContact.h
Go to the documentation of this file.
1
//* This file is part of the MOOSE framework
2
//* https://mooseframework.inl.gov
3
//*
4
//* All rights reserved, see COPYRIGHT for full restrictions
5
//* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6
//*
7
//* Licensed under LGPL 2.1, please see LICENSE for details
8
//* https://www.gnu.org/licenses/lgpl-2.1.html
9
10
#pragma once
11
12
#include "
ComputeDynamicWeightedGapLMMechanicalContact.h
"
13
17
class
ComputeDynamicFrictionalForceLMMechanicalContact
18
:
public
ComputeDynamicWeightedGapLMMechanicalContact
19
{
20
public
:
21
static
InputParameters
validParams
();
22
23
ComputeDynamicFrictionalForceLMMechanicalContact
(
const
InputParameters
&
parameters
);
24
void
residualSetup
()
override
;
25
void
post
()
override
;
26
30
void
31
incorrectEdgeDroppingPost
(
const
std::unordered_set<const Node *> & inactive_lm_nodes)
override
;
32
33
protected
:
38
virtual
void
computeQpProperties
()
override
;
39
43
virtual
void
computeQpIProperties
()
override
;
44
51
virtual
void
enforceConstraintOnDof
(
const
DofObject *
const
dof)
override
;
52
59
virtual
void
enforceConstraintOnDof3d
(
const
DofObject *
const
dof);
60
61
void
timestepSetup
()
override
;
62
66
ADReal
computeFrictionValue
(
const
ADReal
& contact_pressure,
67
const
Real
& tangential_vel,
68
const
Real
& tangential_vel_dir);
69
71
std::unordered_map<const DofObject *, std::array<ADReal, 2>>
_dof_to_weighted_tangential_velocity
;
72
74
std::unordered_map<const DofObject *, std::array<Real, 2>>
_dof_to_real_tangential_velocity
;
75
77
std::unordered_map<const DofObject *, std::array<Real, 2>>
_dof_to_old_real_tangential_velocity
;
78
80
std::array<const ADReal *, 2>
_tangential_vel_ptr
= {{
nullptr
,
nullptr
}};
81
83
ADRealVectorValue
_qp_tangential_velocity_nodal
;
84
86
ADRealVectorValue
_qp_real_tangential_velocity_nodal
;
87
89
const
Real
_c_t
;
90
92
std::vector<MooseVariable *>
_friction_vars
;
93
95
const
ADVariableValue
&
_secondary_x_dot
;
96
98
const
ADVariableValue
&
_primary_x_dot
;
99
101
const
ADVariableValue
&
_secondary_y_dot
;
102
104
const
ADVariableValue
&
_primary_y_dot
;
105
107
const
ADVariableValue
*
const
_secondary_z_dot
;
108
110
const
ADVariableValue
*
const
_primary_z_dot
;
111
113
const
Real
_epsilon
;
114
116
const
Real
_mu
;
117
119
const
Function
*
const
_function_friction
;
120
122
const
bool
_has_friction_function
;
123
125
bool
_3d
;
126
};
ComputeDynamicFrictionalForceLMMechanicalContact::computeQpProperties
virtual void computeQpProperties() override
Computes properties that are functions only of the current quadrature point (_qp), e.g.
Definition:
ComputeDynamicFrictionalForceLMMechanicalContact.C:99
ComputeDynamicWeightedGapLMMechanicalContact.h
ComputeDynamicFrictionalForceLMMechanicalContact::_qp_tangential_velocity_nodal
ADRealVectorValue _qp_tangential_velocity_nodal
The value of the tangential velocity vectors at the current node.
Definition:
ComputeDynamicFrictionalForceLMMechanicalContact.h:83
Function
ComputeDynamicFrictionalForceLMMechanicalContact::_qp_real_tangential_velocity_nodal
ADRealVectorValue _qp_real_tangential_velocity_nodal
The value of the tangential velocity vectors at the current node.
Definition:
ComputeDynamicFrictionalForceLMMechanicalContact.h:86
ComputeDynamicFrictionalForceLMMechanicalContact::_dof_to_real_tangential_velocity
std::unordered_map< const DofObject *, std::array< Real, 2 > > _dof_to_real_tangential_velocity
A map from node to two tangential velocities. Required to have direct connection to physics...
Definition:
ComputeDynamicFrictionalForceLMMechanicalContact.h:74
ComputeDynamicFrictionalForceLMMechanicalContact::_epsilon
const Real _epsilon
Small contact pressure value to trigger computation of frictional forces.
Definition:
ComputeDynamicFrictionalForceLMMechanicalContact.h:113
ComputeDynamicFrictionalForceLMMechanicalContact::computeFrictionValue
ADReal computeFrictionValue(const ADReal &contact_pressure, const Real &tangential_vel, const Real &tangential_vel_dir)
Apply constant or function-based friction coefficient.
Definition:
ComputeDynamicFrictionalForceLMMechanicalContact.C:370
ComputeDynamicFrictionalForceLMMechanicalContact::post
void post() override
Definition:
ComputeDynamicFrictionalForceLMMechanicalContact.C:165
ComputeDynamicFrictionalForceLMMechanicalContact::_primary_z_dot
const ADVariableValue *const _primary_z_dot
z-velocity on the primary face
Definition:
ComputeDynamicFrictionalForceLMMechanicalContact.h:110
libMesh::VectorValue< ADReal >
ComputeDynamicFrictionalForceLMMechanicalContact::_friction_vars
std::vector< MooseVariable * > _friction_vars
Frictional Lagrange's multiplier variable pointers.
Definition:
ComputeDynamicFrictionalForceLMMechanicalContact.h:92
ComputeDynamicWeightedGapLMMechanicalContact
Computes the normal contact mortar constraints for dynamic simulations.
Definition:
ComputeDynamicWeightedGapLMMechanicalContact.h:19
ADReal
DualNumber< Real, DNDerivativeType, true > ADReal
ComputeDynamicFrictionalForceLMMechanicalContact::incorrectEdgeDroppingPost
void incorrectEdgeDroppingPost(const std::unordered_set< const Node *> &inactive_lm_nodes) override
Copy of the post routine but that skips assembling inactive nodes.
Definition:
ComputeDynamicFrictionalForceLMMechanicalContact.C:203
ComputeDynamicFrictionalForceLMMechanicalContact::_dof_to_weighted_tangential_velocity
std::unordered_map< const DofObject *, std::array< ADReal, 2 > > _dof_to_weighted_tangential_velocity
A map from node to two weighted tangential velocities.
Definition:
ComputeDynamicFrictionalForceLMMechanicalContact.h:71
InputParameters
ComputeDynamicFrictionalForceLMMechanicalContact::_primary_x_dot
const ADVariableValue & _primary_x_dot
x-velocity on the primary face
Definition:
ComputeDynamicFrictionalForceLMMechanicalContact.h:98
ComputeDynamicFrictionalForceLMMechanicalContact::_function_friction
const Function *const _function_friction
input function
Definition:
ComputeDynamicFrictionalForceLMMechanicalContact.h:119
ComputeDynamicFrictionalForceLMMechanicalContact::enforceConstraintOnDof3d
virtual void enforceConstraintOnDof3d(const DofObject *const dof)
Method called from post().
Definition:
ComputeDynamicFrictionalForceLMMechanicalContact.C:241
ComputeDynamicFrictionalForceLMMechanicalContact::timestepSetup
void timestepSetup() override
Definition:
ComputeDynamicFrictionalForceLMMechanicalContact.C:153
ComputeDynamicFrictionalForceLMMechanicalContact::enforceConstraintOnDof
virtual void enforceConstraintOnDof(const DofObject *const dof) override
Method called from post().
Definition:
ComputeDynamicFrictionalForceLMMechanicalContact.C:323
ComputeDynamicFrictionalForceLMMechanicalContact::ComputeDynamicFrictionalForceLMMechanicalContact
ComputeDynamicFrictionalForceLMMechanicalContact(const InputParameters ¶meters)
Definition:
ComputeDynamicFrictionalForceLMMechanicalContact.C:47
ComputeDynamicFrictionalForceLMMechanicalContact::_dof_to_old_real_tangential_velocity
std::unordered_map< const DofObject *, std::array< Real, 2 > > _dof_to_old_real_tangential_velocity
A map from node to two old tangential velocities. Required to have direct connection to physics...
Definition:
ComputeDynamicFrictionalForceLMMechanicalContact.h:77
MooseArray< ADReal >
Real
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
ComputeDynamicFrictionalForceLMMechanicalContact::residualSetup
void residualSetup() override
Definition:
ComputeDynamicFrictionalForceLMMechanicalContact.C:144
ComputeDynamicFrictionalForceLMMechanicalContact::validParams
static InputParameters validParams()
Definition:
ComputeDynamicFrictionalForceLMMechanicalContact.C:27
ComputeDynamicFrictionalForceLMMechanicalContact::_secondary_z_dot
const ADVariableValue *const _secondary_z_dot
z-velocity on the secondary face
Definition:
ComputeDynamicFrictionalForceLMMechanicalContact.h:107
ADMortarConstraint::parameters
const InputParameters & parameters() const
ComputeDynamicFrictionalForceLMMechanicalContact::_tangential_vel_ptr
std::array< const ADReal *, 2 > _tangential_vel_ptr
An array of two pointers to avoid copies.
Definition:
ComputeDynamicFrictionalForceLMMechanicalContact.h:80
ComputeDynamicFrictionalForceLMMechanicalContact::_mu
const Real _mu
Friction coefficient.
Definition:
ComputeDynamicFrictionalForceLMMechanicalContact.h:116
ComputeDynamicFrictionalForceLMMechanicalContact::_has_friction_function
const bool _has_friction_function
Boolean to determine whether the friction coefficient is taken from a function.
Definition:
ComputeDynamicFrictionalForceLMMechanicalContact.h:122
ComputeDynamicFrictionalForceLMMechanicalContact::_secondary_y_dot
const ADVariableValue & _secondary_y_dot
y-velocity on the secondary face
Definition:
ComputeDynamicFrictionalForceLMMechanicalContact.h:101
ComputeDynamicFrictionalForceLMMechanicalContact
Computes the mortar tangential frictional forces for dynamic simulations.
Definition:
ComputeDynamicFrictionalForceLMMechanicalContact.h:17
ComputeDynamicFrictionalForceLMMechanicalContact::_3d
bool _3d
Automatic flag to determine whether we are doing three-dimensional work.
Definition:
ComputeDynamicFrictionalForceLMMechanicalContact.h:125
ComputeDynamicFrictionalForceLMMechanicalContact::computeQpIProperties
virtual void computeQpIProperties() override
Computes properties that are functions both of _qp and _i, for example the weighted gap...
Definition:
ComputeDynamicFrictionalForceLMMechanicalContact.C:111
ComputeDynamicFrictionalForceLMMechanicalContact::_primary_y_dot
const ADVariableValue & _primary_y_dot
y-velocity on the primary face
Definition:
ComputeDynamicFrictionalForceLMMechanicalContact.h:104
ComputeDynamicFrictionalForceLMMechanicalContact::_secondary_x_dot
const ADVariableValue & _secondary_x_dot
x-velocity on the secondary face
Definition:
ComputeDynamicFrictionalForceLMMechanicalContact.h:95
ComputeDynamicFrictionalForceLMMechanicalContact::_c_t
const Real _c_t
Numerical factor used in the tangential constraints for convergence purposes.
Definition:
ComputeDynamicFrictionalForceLMMechanicalContact.h:89
Generated on Fri Jul 18 2025 13:42:46 for https://mooseframework.inl.gov by
1.8.14