https://mooseframework.inl.gov
Loading...
Searching...
No Matches
contact
include
constraints
ComputeFrictionalForceCartesianLMMechanicalContact.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 "
ComputeWeightedGapCartesianLMMechanicalContact.h
"
13
14
#include <unordered_map>
15
16
namespace
Moose
17
{
18
namespace
Mortar
19
{
20
namespace
Contact
21
{
22
enum class
FrictionProjectionDegree
;
23
}
24
}
25
}
26
31
class
ComputeFrictionalForceCartesianLMMechanicalContact
32
:
public
ComputeWeightedGapCartesianLMMechanicalContact
33
{
34
public
:
35
static
InputParameters
validParams
();
36
37
ComputeFrictionalForceCartesianLMMechanicalContact
(
const
InputParameters
&
parameters
);
38
39
void
residualSetup
()
override
;
40
void
post
()
override
;
41
45
void
46
incorrectEdgeDroppingPost
(
const
std::unordered_set<const Node *> & inactive_lm_nodes)
override
;
47
48
protected
:
53
virtual
void
computeQpProperties
()
override
;
54
58
virtual
void
computeQpIProperties
()
override
;
59
66
virtual
void
enforceConstraintOnDof
(
const
DofObject *
const
dof)
override
;
67
69
std::unordered_map<const DofObject *, std::array<ADReal, 2>>
_dof_to_weighted_tangential_velocity
;
70
72
std::array<const ADReal *, 2>
_tangential_vel_ptr
= {{
nullptr
,
nullptr
}};
73
75
ADRealVectorValue
_qp_tangential_velocity_nodal
;
76
78
const
Real
_c_t
;
79
83
const
Moose::Mortar::Contact::FrictionProjectionDegree
_friction_projection_degree
;
84
86
const
ADVariableValue
&
_secondary_x_dot
;
87
89
const
ADVariableValue
&
_primary_x_dot
;
90
92
const
ADVariableValue
&
_secondary_y_dot
;
93
95
const
ADVariableValue
&
_primary_y_dot
;
96
98
const
ADVariableValue
*
const
_secondary_z_dot
;
99
101
const
ADVariableValue
*
const
_primary_z_dot
;
102
104
const
Real
_mu
;
105
108
const
Real
_epsilon
;
109
};
ComputeWeightedGapCartesianLMMechanicalContact.h
ComputeFrictionalForceCartesianLMMechanicalContact
Computes the weighted gap that will later be used to enforce the zero-penetration mechanical contact ...
Definition
ComputeFrictionalForceCartesianLMMechanicalContact.h:33
ComputeFrictionalForceCartesianLMMechanicalContact::_qp_tangential_velocity_nodal
ADRealVectorValue _qp_tangential_velocity_nodal
The value of the tangential velocity vectors at the current node.
Definition
ComputeFrictionalForceCartesianLMMechanicalContact.h:75
ComputeFrictionalForceCartesianLMMechanicalContact::_secondary_z_dot
const ADVariableValue *const _secondary_z_dot
z-velocity on the secondary face
Definition
ComputeFrictionalForceCartesianLMMechanicalContact.h:98
ComputeFrictionalForceCartesianLMMechanicalContact::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
ComputeFrictionalForceCartesianLMMechanicalContact.C:186
ComputeFrictionalForceCartesianLMMechanicalContact::_tangential_vel_ptr
std::array< const ADReal *, 2 > _tangential_vel_ptr
An array of two pointers to avoid copies.
Definition
ComputeFrictionalForceCartesianLMMechanicalContact.h:72
ComputeFrictionalForceCartesianLMMechanicalContact::_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
ComputeFrictionalForceCartesianLMMechanicalContact.h:69
ComputeFrictionalForceCartesianLMMechanicalContact::_primary_x_dot
const ADVariableValue & _primary_x_dot
x-velocity on the primary face
Definition
ComputeFrictionalForceCartesianLMMechanicalContact.h:89
ComputeFrictionalForceCartesianLMMechanicalContact::_mu
const Real _mu
Friction coefficient.
Definition
ComputeFrictionalForceCartesianLMMechanicalContact.h:104
ComputeFrictionalForceCartesianLMMechanicalContact::computeQpProperties
virtual void computeQpProperties() override
Computes properties that are functions only of the current quadrature point (_qp),...
Definition
ComputeFrictionalForceCartesianLMMechanicalContact.C:88
ComputeFrictionalForceCartesianLMMechanicalContact::_epsilon
const Real _epsilon
Minimum value of contact pressure that will trigger including tangential forces in the contact residu...
Definition
ComputeFrictionalForceCartesianLMMechanicalContact.h:108
ComputeFrictionalForceCartesianLMMechanicalContact::_primary_y_dot
const ADVariableValue & _primary_y_dot
y-velocity on the primary face
Definition
ComputeFrictionalForceCartesianLMMechanicalContact.h:95
ComputeFrictionalForceCartesianLMMechanicalContact::_secondary_x_dot
const ADVariableValue & _secondary_x_dot
x-velocity on the secondary face
Definition
ComputeFrictionalForceCartesianLMMechanicalContact.h:86
ComputeFrictionalForceCartesianLMMechanicalContact::_friction_projection_degree
const Moose::Mortar::Contact::FrictionProjectionDegree _friction_projection_degree
Degree of the friction-residual projection used by frictionalContactResidual (see MortarContactUtils....
Definition
ComputeFrictionalForceCartesianLMMechanicalContact.h:83
ComputeFrictionalForceCartesianLMMechanicalContact::post
void post() override
Definition
ComputeFrictionalForceCartesianLMMechanicalContact.C:158
ComputeFrictionalForceCartesianLMMechanicalContact::_c_t
const Real _c_t
Numerical factor used in the tangential constraints for convergence purposes.
Definition
ComputeFrictionalForceCartesianLMMechanicalContact.h:78
ComputeFrictionalForceCartesianLMMechanicalContact::_secondary_y_dot
const ADVariableValue & _secondary_y_dot
y-velocity on the secondary face
Definition
ComputeFrictionalForceCartesianLMMechanicalContact.h:92
ComputeFrictionalForceCartesianLMMechanicalContact::_primary_z_dot
const ADVariableValue *const _primary_z_dot
z-velocity on the primary face
Definition
ComputeFrictionalForceCartesianLMMechanicalContact.h:101
ComputeFrictionalForceCartesianLMMechanicalContact::enforceConstraintOnDof
virtual void enforceConstraintOnDof(const DofObject *const dof) override
Method called from post().
Definition
ComputeFrictionalForceCartesianLMMechanicalContact.C:216
ComputeFrictionalForceCartesianLMMechanicalContact::residualSetup
void residualSetup() override
Definition
ComputeFrictionalForceCartesianLMMechanicalContact.C:151
ComputeFrictionalForceCartesianLMMechanicalContact::validParams
static InputParameters validParams()
Definition
ComputeFrictionalForceCartesianLMMechanicalContact.C:47
ComputeFrictionalForceCartesianLMMechanicalContact::computeQpIProperties
virtual void computeQpIProperties() override
Computes properties that are functions both of _qp and _i, for example the weighted gap.
Definition
ComputeFrictionalForceCartesianLMMechanicalContact.C:131
ComputeWeightedGapCartesianLMMechanicalContact
Computes the weighted gap that will later be used to enforce the zero-penetration mechanical contact ...
Definition
ComputeWeightedGapCartesianLMMechanicalContact.h:21
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 Fri Sep 11 2026 20:36:00 for https://mooseframework.inl.gov by
1.9.8