https://mooseframework.inl.gov
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
20
class
ComputeFrictionalForceCartesianLMMechanicalContact
21
:
public
ComputeWeightedGapCartesianLMMechanicalContact
22
{
23
public
:
24
static
InputParameters
validParams
();
25
26
ComputeFrictionalForceCartesianLMMechanicalContact
(
const
InputParameters
&
parameters
);
27
28
void
residualSetup
()
override
;
29
void
post
()
override
;
30
34
void
35
incorrectEdgeDroppingPost
(
const
std::unordered_set<const Node *> & inactive_lm_nodes)
override
;
36
37
protected
:
42
virtual
void
computeQpProperties
()
override
;
43
47
virtual
void
computeQpIProperties
()
override
;
48
55
virtual
void
enforceConstraintOnDof
(
const
DofObject *
const
dof)
override
;
56
58
std::unordered_map<const DofObject *, std::array<ADReal, 2>>
_dof_to_weighted_tangential_velocity
;
59
61
std::array<const ADReal *, 2>
_tangential_vel_ptr
= {{
nullptr
,
nullptr
}};
62
64
ADRealVectorValue
_qp_tangential_velocity_nodal
;
65
67
const
Real
_c_t
;
68
70
const
ADVariableValue
&
_secondary_x_dot
;
71
73
const
ADVariableValue
&
_primary_x_dot
;
74
76
const
ADVariableValue
&
_secondary_y_dot
;
77
79
const
ADVariableValue
&
_primary_y_dot
;
80
82
const
ADVariableValue
*
const
_secondary_z_dot
;
83
85
const
ADVariableValue
*
const
_primary_z_dot
;
86
88
const
Real
_mu
;
89
91
const
Real
_epsilon
;
92
};
ComputeFrictionalForceCartesianLMMechanicalContact::_secondary_y_dot
const ADVariableValue & _secondary_y_dot
y-velocity on the secondary face
Definition:
ComputeFrictionalForceCartesianLMMechanicalContact.h:76
ComputeFrictionalForceCartesianLMMechanicalContact
Computes the weighted gap that will later be used to enforce the zero-penetration mechanical contact ...
Definition:
ComputeFrictionalForceCartesianLMMechanicalContact.h:20
ComputeFrictionalForceCartesianLMMechanicalContact::_c_t
const Real _c_t
Numerical factor used in the tangential constraints for convergence purposes.
Definition:
ComputeFrictionalForceCartesianLMMechanicalContact.h:67
ComputeFrictionalForceCartesianLMMechanicalContact::post
void post() override
Definition:
ComputeFrictionalForceCartesianLMMechanicalContact.C:141
ComputeFrictionalForceCartesianLMMechanicalContact::_secondary_z_dot
const ADVariableValue *const _secondary_z_dot
z-velocity on the secondary face
Definition:
ComputeFrictionalForceCartesianLMMechanicalContact.h:82
libMesh::VectorValue< ADReal >
ComputeFrictionalForceCartesianLMMechanicalContact::_primary_x_dot
const ADVariableValue & _primary_x_dot
x-velocity on the primary face
Definition:
ComputeFrictionalForceCartesianLMMechanicalContact.h:73
ComputeFrictionalForceCartesianLMMechanicalContact::computeQpProperties
virtual void computeQpProperties() override
Computes properties that are functions only of the current quadrature point (_qp), e.g.
Definition:
ComputeFrictionalForceCartesianLMMechanicalContact.C:71
ComputeFrictionalForceCartesianLMMechanicalContact::validParams
static InputParameters validParams()
Definition:
ComputeFrictionalForceCartesianLMMechanicalContact.C:41
InputParameters
ComputeWeightedGapCartesianLMMechanicalContact.h
ComputeFrictionalForceCartesianLMMechanicalContact::_epsilon
const Real _epsilon
Small contact pressure value to trigger computation of frictional forces.
Definition:
ComputeFrictionalForceCartesianLMMechanicalContact.h:91
ComputeFrictionalForceCartesianLMMechanicalContact::_tangential_vel_ptr
std::array< const ADReal *, 2 > _tangential_vel_ptr
An array of two pointers to avoid copies.
Definition:
ComputeFrictionalForceCartesianLMMechanicalContact.h:61
ComputeFrictionalForceCartesianLMMechanicalContact::computeQpIProperties
virtual void computeQpIProperties() override
Computes properties that are functions both of _qp and _i, for example the weighted gap...
Definition:
ComputeFrictionalForceCartesianLMMechanicalContact.C:114
ComputeFrictionalForceCartesianLMMechanicalContact::_mu
const Real _mu
Friction coefficient.
Definition:
ComputeFrictionalForceCartesianLMMechanicalContact.h:88
ComputeWeightedGapCartesianLMMechanicalContact
Computes the weighted gap that will later be used to enforce the zero-penetration mechanical contact ...
Definition:
ComputeWeightedGapCartesianLMMechanicalContact.h:20
ComputeFrictionalForceCartesianLMMechanicalContact::_primary_y_dot
const ADVariableValue & _primary_y_dot
y-velocity on the primary face
Definition:
ComputeFrictionalForceCartesianLMMechanicalContact.h:79
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:58
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:169
MooseArray< ADReal >
Real
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
ComputeFrictionalForceCartesianLMMechanicalContact::_qp_tangential_velocity_nodal
ADRealVectorValue _qp_tangential_velocity_nodal
The value of the tangential velocity vectors at the current node.
Definition:
ComputeFrictionalForceCartesianLMMechanicalContact.h:64
ComputeFrictionalForceCartesianLMMechanicalContact::residualSetup
void residualSetup() override
Definition:
ComputeFrictionalForceCartesianLMMechanicalContact.C:134
ADMortarConstraint::parameters
const InputParameters & parameters() const
ComputeFrictionalForceCartesianLMMechanicalContact::_primary_z_dot
const ADVariableValue *const _primary_z_dot
z-velocity on the primary face
Definition:
ComputeFrictionalForceCartesianLMMechanicalContact.h:85
ComputeFrictionalForceCartesianLMMechanicalContact::_secondary_x_dot
const ADVariableValue & _secondary_x_dot
x-velocity on the secondary face
Definition:
ComputeFrictionalForceCartesianLMMechanicalContact.h:70
ComputeFrictionalForceCartesianLMMechanicalContact::ComputeFrictionalForceCartesianLMMechanicalContact
ComputeFrictionalForceCartesianLMMechanicalContact(const InputParameters ¶meters)
Definition:
ComputeFrictionalForceCartesianLMMechanicalContact.C:56
ComputeFrictionalForceCartesianLMMechanicalContact::enforceConstraintOnDof
virtual void enforceConstraintOnDof(const DofObject *const dof) override
Method called from post().
Definition:
ComputeFrictionalForceCartesianLMMechanicalContact.C:199
Generated on Fri Jul 18 2025 13:42:46 for https://mooseframework.inl.gov by
1.8.14