21 #ifndef GEOS_PHYSICSSOLVERS_CONTACT_SOLIDMECHANICSLAGRANGECONTACT_HPP_
22 #define GEOS_PHYSICSSOLVERS_CONTACT_SOLIDMECHANICSLAGRANGECONTACT_HPP_
24 #include "physicsSolvers/contact/ContactSolverBase.hpp"
29 class NumericalMethodsManager;
35 Group *
const parent );
45 return "SolidMechanicsLagrangeContact";
66 bool const setSparsity =
true ) override final;
96 real64 const scalingFactor,
110 void assembleForceResidualDerivativeWrtTraction(
MeshLevel const & mesh,
116 void assembleTractionResidualDerivativeWrtDisplacementAndTraction(
MeshLevel const & mesh,
122 void assembleForceResidualPressureContribution(
MeshLevel const & mesh,
128 void assembleStabilization(
MeshLevel const & mesh,
138 bool isFractureAllInStickCondition(
DomainPartition const & domain ) const;
144 void computeFaceNodalArea(
localIndex const kf0,
154 void computeFaceIntegrals(
arrayView2d<
real64 const, nodes::REFERENCE_POSITION_USD > const & nodesCoords,
159 real64 const (&faceCenter)[3],
160 real64 const (&faceNormal)[3],
162 real64 const & invCellDiameter,
163 real64 const (&cellCenter)[3],
165 real64 ( &threeDMonomialIntegrals )[3] ) const;
167 real64 const machinePrecision = std::numeric_limits<
real64 >::epsilon();
169 string getStabilizationName()
const {
return m_stabilizationName; }
179 void setMGRStrategy();
182 string m_stabilizationName;
184 real64 const m_slidingCheckTolerance = 0.05;
186 real64 m_stabilitzationScalingCoefficient = 1.0;
196 constexpr
static char const * stabilizationNameString() {
return "stabilizationName"; }
198 constexpr
static char const * rotationMatrixString() {
return "rotationMatrix"; }
200 constexpr
static char const * normalDisplacementToleranceString() {
return "normalDisplacementTolerance"; }
202 constexpr
static char const * normalTractionToleranceString() {
return "normalTractionTolerance"; }
204 constexpr
static char const * slidingToleranceString() {
return "slidingTolerance"; }
206 constexpr
static char const * transMultiplierString() {
return "penaltyStiffnessTransMultiplier"; }
208 constexpr
static char const * stabilizationScalingCoefficientString() {
return "stabilizationScalingCoefficient"; }
The DoFManager is responsible for allocating global dofs, constructing sparsity patterns,...
Partition of the decomposed physical domain. It also manages the connexion information to its neighbo...
The FaceManager class provides an interface to ObjectManagerBase in order to manage face data.
Class facilitating the representation of a multi-level discretization of a MeshBody.
ArrayView< T, 1 > arrayView1d
Alias for 1D array view.
LvArray::CRSMatrixView< T, COL_INDEX, localIndex const, LvArray::ChaiBuffer > CRSMatrixView
Alias for CRS Matrix View.
GEOS_GLOBALINDEX_TYPE globalIndex
Global index type (for indexing objects across MPI partitions).
StackArray< T, 1, MAXSIZE > stackArray1d
Alias for 1D stack array.
LvArray::ArrayOfArraysView< T, INDEX_TYPE const, CONST_SIZES, LvArray::ChaiBuffer > ArrayOfArraysView
View of array of variable-sized arrays. See LvArray::ArrayOfArraysView for details.
double real64
64-bit floating point type.
GEOS_LOCALINDEX_TYPE localIndex
Local index type (for indexing objects within an MPI partition).
LvArray::CRSMatrix< T, COL_INDEX, localIndex, LvArray::ChaiBuffer > CRSMatrix
Alias for CRS Matrix class.
ArrayView< T, 2, USD > arrayView2d
Alias for 2D array view.
LAInterface::ParallelVector ParallelVector
Alias for ParallelVector.