https://mooseframework.inl.gov
Loading...
Searching...
No Matches
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
14
namespace
Moose
15
{
16
namespace
Mortar
17
{
18
namespace
Contact
19
{
20
enum class
FrictionProjectionDegree
;
21
}
22
}
23
}
24
28
class
ComputeDynamicFrictionalForceLMMechanicalContact
29
:
public
ComputeDynamicWeightedGapLMMechanicalContact
30
{
31
public
:
32
static
InputParameters
validParams
();
33
34
ComputeDynamicFrictionalForceLMMechanicalContact
(
const
InputParameters
&
parameters
);
35
void
residualSetup
()
override
;
36
void
post
()
override
;
37
41
void
42
incorrectEdgeDroppingPost
(
const
std::unordered_set<const Node *> & inactive_lm_nodes)
override
;
43
44
protected
:
49
virtual
void
computeQpProperties
()
override
;
50
54
virtual
void
computeQpIProperties
()
override
;
55
62
virtual
void
enforceConstraintOnDof
(
const
DofObject *
const
dof)
override
;
63
70
virtual
void
enforceConstraintOnDof3d
(
const
DofObject *
const
dof);
71
72
void
timestepSetup
()
override
;
73
77
ADReal
computeFrictionValue
(
const
ADReal
& contact_pressure,
78
const
Real & tangential_vel,
79
const
Real & tangential_vel_dir);
80
85
std::array<Real, 2>
oldNodalSlipRate
(
const
DofObject *
const
dof)
const
;
86
88
std::unordered_map<const DofObject *, std::array<ADReal, 2>>
_dof_to_weighted_tangential_velocity
;
89
92
std::unordered_map<const DofObject *, std::array<Real, 2>>
_dof_to_old_real_tangential_velocity
;
93
95
std::array<const ADReal *, 2>
_tangential_vel_ptr
= {{
nullptr
,
nullptr
}};
96
98
ADRealVectorValue
_qp_tangential_velocity_nodal
;
99
101
const
Real
_c_t
;
102
106
const
Moose::Mortar::Contact::FrictionProjectionDegree
_friction_projection_degree
;
107
109
std::vector<MooseVariable *>
_friction_vars
;
110
112
const
ADVariableValue
&
_secondary_x_dot
;
113
115
const
ADVariableValue
&
_primary_x_dot
;
116
118
const
ADVariableValue
&
_secondary_y_dot
;
119
121
const
ADVariableValue
&
_primary_y_dot
;
122
124
const
ADVariableValue
*
const
_secondary_z_dot
;
125
127
const
ADVariableValue
*
const
_primary_z_dot
;
128
131
const
Real
_epsilon
;
132
134
const
Real
_mu
;
135
137
const
Function
*
const
_function_friction
;
138
140
const
bool
_has_friction_function
;
141
143
bool
_3d
;
144
};
ADReal
DualNumber< Real, DNDerivativeType, true > ADReal
ComputeDynamicWeightedGapLMMechanicalContact.h
ComputeDynamicFrictionalForceLMMechanicalContact
Computes the mortar tangential frictional forces for dynamic simulations.
Definition
ComputeDynamicFrictionalForceLMMechanicalContact.h:30
ComputeDynamicFrictionalForceLMMechanicalContact::post
void post() override
Definition
ComputeDynamicFrictionalForceLMMechanicalContact.C:191
ComputeDynamicFrictionalForceLMMechanicalContact::_has_friction_function
const bool _has_friction_function
Boolean to determine whether the friction coefficient is taken from a function.
Definition
ComputeDynamicFrictionalForceLMMechanicalContact.h:140
ComputeDynamicFrictionalForceLMMechanicalContact::validParams
static InputParameters validParams()
Definition
ComputeDynamicFrictionalForceLMMechanicalContact.C:33
ComputeDynamicFrictionalForceLMMechanicalContact::residualSetup
void residualSetup() override
Definition
ComputeDynamicFrictionalForceLMMechanicalContact.C:153
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:362
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:225
ComputeDynamicFrictionalForceLMMechanicalContact::_mu
const Real _mu
Friction coefficient.
Definition
ComputeDynamicFrictionalForceLMMechanicalContact.h:134
ComputeDynamicFrictionalForceLMMechanicalContact::computeQpIProperties
virtual void computeQpIProperties() override
Computes properties that are functions both of _qp and _i, for example the weighted gap.
Definition
ComputeDynamicFrictionalForceLMMechanicalContact.C:128
ComputeDynamicFrictionalForceLMMechanicalContact::enforceConstraintOnDof
virtual void enforceConstraintOnDof(const DofObject *const dof) override
Method called from post().
Definition
ComputeDynamicFrictionalForceLMMechanicalContact.C:317
ComputeDynamicFrictionalForceLMMechanicalContact::_function_friction
const Function *const _function_friction
input function
Definition
ComputeDynamicFrictionalForceLMMechanicalContact.h:137
ComputeDynamicFrictionalForceLMMechanicalContact::computeQpProperties
virtual void computeQpProperties() override
Computes properties that are functions only of the current quadrature point (_qp),...
Definition
ComputeDynamicFrictionalForceLMMechanicalContact.C:117
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:88
ComputeDynamicFrictionalForceLMMechanicalContact::_epsilon
const Real _epsilon
Minimum value of contact pressure that will trigger including tangential forces in the contact residu...
Definition
ComputeDynamicFrictionalForceLMMechanicalContact.h:131
ComputeDynamicFrictionalForceLMMechanicalContact::_primary_z_dot
const ADVariableValue *const _primary_z_dot
z-velocity on the primary face
Definition
ComputeDynamicFrictionalForceLMMechanicalContact.h:127
ComputeDynamicFrictionalForceLMMechanicalContact::_friction_vars
std::vector< MooseVariable * > _friction_vars
Frictional Lagrange's multiplier variable pointers.
Definition
ComputeDynamicFrictionalForceLMMechanicalContact.h:109
ComputeDynamicFrictionalForceLMMechanicalContact::_secondary_y_dot
const ADVariableValue & _secondary_y_dot
y-velocity on the secondary face
Definition
ComputeDynamicFrictionalForceLMMechanicalContact.h:118
ComputeDynamicFrictionalForceLMMechanicalContact::oldNodalSlipRate
std::array< Real, 2 > oldNodalSlipRate(const DofObject *const dof) const
Nodal slip rates of the previous step at a locally owned dof, or zero if the dof has no history yet (...
Definition
ComputeDynamicFrictionalForceLMMechanicalContact.C:384
ComputeDynamicFrictionalForceLMMechanicalContact::_qp_tangential_velocity_nodal
ADRealVectorValue _qp_tangential_velocity_nodal
The value of the tangential velocity vectors at the current node.
Definition
ComputeDynamicFrictionalForceLMMechanicalContact.h:98
ComputeDynamicFrictionalForceLMMechanicalContact::_secondary_z_dot
const ADVariableValue *const _secondary_z_dot
z-velocity on the secondary face
Definition
ComputeDynamicFrictionalForceLMMechanicalContact.h:124
ComputeDynamicFrictionalForceLMMechanicalContact::_tangential_vel_ptr
std::array< const ADReal *, 2 > _tangential_vel_ptr
An array of two pointers to avoid copies.
Definition
ComputeDynamicFrictionalForceLMMechanicalContact.h:95
ComputeDynamicFrictionalForceLMMechanicalContact::_friction_projection_degree
const Moose::Mortar::Contact::FrictionProjectionDegree _friction_projection_degree
Degree of the friction-residual projection used by frictionalContactResidual (see MortarContactUtils....
Definition
ComputeDynamicFrictionalForceLMMechanicalContact.h:106
ComputeDynamicFrictionalForceLMMechanicalContact::enforceConstraintOnDof3d
virtual void enforceConstraintOnDof3d(const DofObject *const dof)
Method called from post().
Definition
ComputeDynamicFrictionalForceLMMechanicalContact.C:259
ComputeDynamicFrictionalForceLMMechanicalContact::_3d
bool _3d
Automatic flag to determine whether we are doing three-dimensional work.
Definition
ComputeDynamicFrictionalForceLMMechanicalContact.h:143
ComputeDynamicFrictionalForceLMMechanicalContact::_secondary_x_dot
const ADVariableValue & _secondary_x_dot
x-velocity on the secondary face
Definition
ComputeDynamicFrictionalForceLMMechanicalContact.h:112
ComputeDynamicFrictionalForceLMMechanicalContact::_primary_y_dot
const ADVariableValue & _primary_y_dot
y-velocity on the primary face
Definition
ComputeDynamicFrictionalForceLMMechanicalContact.h:121
ComputeDynamicFrictionalForceLMMechanicalContact::_c_t
const Real _c_t
Numerical factor used in the tangential constraints for convergence purposes.
Definition
ComputeDynamicFrictionalForceLMMechanicalContact.h:101
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 the two nodal slip rates of the previous step, used to evaluate the friction funct...
Definition
ComputeDynamicFrictionalForceLMMechanicalContact.h:92
ComputeDynamicFrictionalForceLMMechanicalContact::timestepSetup
void timestepSetup() override
Definition
ComputeDynamicFrictionalForceLMMechanicalContact.C:161
ComputeDynamicFrictionalForceLMMechanicalContact::_primary_x_dot
const ADVariableValue & _primary_x_dot
x-velocity on the primary face
Definition
ComputeDynamicFrictionalForceLMMechanicalContact.h:115
ComputeDynamicWeightedGapLMMechanicalContact
Computes the normal contact mortar constraints for dynamic simulations.
Definition
ComputeDynamicWeightedGapLMMechanicalContact.h:20
Function
ADMortarConstraint::parameters
const InputParameters & parameters() const
libMesh::VectorValue< ADReal >
ADVariableValue
VariableValueTempl< true > ADVariableValue
Moose::Mortar::Contact::FrictionProjectionDegree
FrictionProjectionDegree
Definition
MortarContactUtils.h:63
Moose
InputParameters
Generated on Thu Oct 22 2026 20:36:09 for https://mooseframework.inl.gov by
1.9.8