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
82
std::unordered_map<const DofObject *, std::array<ADReal, 2>>
_dof_to_weighted_tangential_velocity
;
83
85
std::unordered_map<const DofObject *, std::array<Real, 2>>
_dof_to_real_tangential_velocity
;
86
88
std::unordered_map<const DofObject *, std::array<Real, 2>>
_dof_to_old_real_tangential_velocity
;
89
91
std::array<const ADReal *, 2>
_tangential_vel_ptr
= {{
nullptr
,
nullptr
}};
92
94
ADRealVectorValue
_qp_tangential_velocity_nodal
;
95
97
ADRealVectorValue
_qp_real_tangential_velocity_nodal
;
98
100
const
Real
_c_t
;
101
105
const
Moose::Mortar::Contact::FrictionProjectionDegree
_friction_projection_degree
;
106
108
std::vector<MooseVariable *>
_friction_vars
;
109
111
const
ADVariableValue
&
_secondary_x_dot
;
112
114
const
ADVariableValue
&
_primary_x_dot
;
115
117
const
ADVariableValue
&
_secondary_y_dot
;
118
120
const
ADVariableValue
&
_primary_y_dot
;
121
123
const
ADVariableValue
*
const
_secondary_z_dot
;
124
126
const
ADVariableValue
*
const
_primary_z_dot
;
127
130
const
Real
_epsilon
;
131
133
const
Real
_mu
;
134
136
const
Function
*
const
_function_friction
;
137
139
const
bool
_has_friction_function
;
140
142
bool
_3d
;
143
};
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:188
ComputeDynamicFrictionalForceLMMechanicalContact::_has_friction_function
const bool _has_friction_function
Boolean to determine whether the friction coefficient is taken from a function.
Definition
ComputeDynamicFrictionalForceLMMechanicalContact.h:139
ComputeDynamicFrictionalForceLMMechanicalContact::validParams
static InputParameters validParams()
Definition
ComputeDynamicFrictionalForceLMMechanicalContact.C:33
ComputeDynamicFrictionalForceLMMechanicalContact::residualSetup
void residualSetup() override
Definition
ComputeDynamicFrictionalForceLMMechanicalContact.C:161
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:85
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:369
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:226
ComputeDynamicFrictionalForceLMMechanicalContact::_mu
const Real _mu
Friction coefficient.
Definition
ComputeDynamicFrictionalForceLMMechanicalContact.h:133
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:323
ComputeDynamicFrictionalForceLMMechanicalContact::_function_friction
const Function *const _function_friction
input function
Definition
ComputeDynamicFrictionalForceLMMechanicalContact.h:136
ComputeDynamicFrictionalForceLMMechanicalContact::computeQpProperties
virtual void computeQpProperties() override
Computes properties that are functions only of the current quadrature point (_qp),...
Definition
ComputeDynamicFrictionalForceLMMechanicalContact.C:116
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:97
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:82
ComputeDynamicFrictionalForceLMMechanicalContact::_epsilon
const Real _epsilon
Minimum value of contact pressure that will trigger including tangential forces in the contact residu...
Definition
ComputeDynamicFrictionalForceLMMechanicalContact.h:130
ComputeDynamicFrictionalForceLMMechanicalContact::_primary_z_dot
const ADVariableValue *const _primary_z_dot
z-velocity on the primary face
Definition
ComputeDynamicFrictionalForceLMMechanicalContact.h:126
ComputeDynamicFrictionalForceLMMechanicalContact::_friction_vars
std::vector< MooseVariable * > _friction_vars
Frictional Lagrange's multiplier variable pointers.
Definition
ComputeDynamicFrictionalForceLMMechanicalContact.h:108
ComputeDynamicFrictionalForceLMMechanicalContact::_secondary_y_dot
const ADVariableValue & _secondary_y_dot
y-velocity on the secondary face
Definition
ComputeDynamicFrictionalForceLMMechanicalContact.h:117
ComputeDynamicFrictionalForceLMMechanicalContact::_qp_tangential_velocity_nodal
ADRealVectorValue _qp_tangential_velocity_nodal
The value of the tangential velocity vectors at the current node.
Definition
ComputeDynamicFrictionalForceLMMechanicalContact.h:94
ComputeDynamicFrictionalForceLMMechanicalContact::_secondary_z_dot
const ADVariableValue *const _secondary_z_dot
z-velocity on the secondary face
Definition
ComputeDynamicFrictionalForceLMMechanicalContact.h:123
ComputeDynamicFrictionalForceLMMechanicalContact::_tangential_vel_ptr
std::array< const ADReal *, 2 > _tangential_vel_ptr
An array of two pointers to avoid copies.
Definition
ComputeDynamicFrictionalForceLMMechanicalContact.h:91
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:105
ComputeDynamicFrictionalForceLMMechanicalContact::enforceConstraintOnDof3d
virtual void enforceConstraintOnDof3d(const DofObject *const dof)
Method called from post().
Definition
ComputeDynamicFrictionalForceLMMechanicalContact.C:264
ComputeDynamicFrictionalForceLMMechanicalContact::_3d
bool _3d
Automatic flag to determine whether we are doing three-dimensional work.
Definition
ComputeDynamicFrictionalForceLMMechanicalContact.h:142
ComputeDynamicFrictionalForceLMMechanicalContact::_secondary_x_dot
const ADVariableValue & _secondary_x_dot
x-velocity on the secondary face
Definition
ComputeDynamicFrictionalForceLMMechanicalContact.h:111
ComputeDynamicFrictionalForceLMMechanicalContact::_primary_y_dot
const ADVariableValue & _primary_y_dot
y-velocity on the primary face
Definition
ComputeDynamicFrictionalForceLMMechanicalContact.h:120
ComputeDynamicFrictionalForceLMMechanicalContact::_c_t
const Real _c_t
Numerical factor used in the tangential constraints for convergence purposes.
Definition
ComputeDynamicFrictionalForceLMMechanicalContact.h:100
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:88
ComputeDynamicFrictionalForceLMMechanicalContact::timestepSetup
void timestepSetup() override
Definition
ComputeDynamicFrictionalForceLMMechanicalContact.C:170
ComputeDynamicFrictionalForceLMMechanicalContact::_primary_x_dot
const ADVariableValue & _primary_x_dot
x-velocity on the primary face
Definition
ComputeDynamicFrictionalForceLMMechanicalContact.h:114
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 Mon Sep 28 2026 20:37:06 for https://mooseframework.inl.gov by
1.9.8