21 #ifndef GEOS_PHYSICSSOLVERS_CONTACT_SOLIDMECHANICSLAGRANGECONTACT_HPP_
22 #define GEOS_PHYSICSSOLVERS_CONTACT_SOLIDMECHANICSLAGRANGECONTACT_HPP_
24 #include "physicsSolvers/contact/ContactSolverBase.hpp"
29 class NumericalMethodsManager;
36 Group *
const parent );
46 return "SolidMechanicsLagrangeContact";
67 bool const setSparsity =
true ) override final;
97 real64 const scalingFactor,
115 void assembleForceResidualDerivativeWrtTraction(
MeshLevel const & mesh,
121 void assembleTractionResidualDerivativeWrtDisplacementAndTraction(
MeshLevel const & mesh,
127 void assembleForceResidualPressureContribution(
MeshLevel const & mesh,
133 void assembleStabilization(
MeshLevel const & mesh,
143 bool isFractureAllInStickCondition(
DomainPartition const & domain ) const;
149 void computeFaceNodalArea(
localIndex const kf0,
159 void computeFaceIntegrals(
arrayView2d<
real64 const, nodes::REFERENCE_POSITION_USD > const & nodesCoords,
164 real64 const (&faceCenter)[3],
165 real64 const (&faceNormal)[3],
167 real64 const & invCellDiameter,
168 real64 const (&cellCenter)[3],
170 real64 ( &threeDMonomialIntegrals )[3] ) const;
172 real64 const machinePrecision = std::numeric_limits<
real64 >::epsilon();
174 string getStabilizationName()
const {
return m_stabilizationName; }
183 string m_stabilizationName;
185 real64 const m_slidingCheckTolerance = 0.05;
187 real64 m_stabilitzationScalingCoefficient = 1.0;
197 constexpr
static char const * stabilizationNameString() {
return "stabilizationName"; }
199 constexpr
static char const * rotationMatrixString() {
return "rotationMatrix"; }
201 constexpr
static char const * normalDisplacementToleranceString() {
return "normalDisplacementTolerance"; }
203 constexpr
static char const * normalTractionToleranceString() {
return "normalTractionTolerance"; }
205 constexpr
static char const * slidingToleranceString() {
return "slidingTolerance"; }
207 constexpr
static char const * transMultiplierString() {
return "penaltyStiffnessTransMultiplier"; }
209 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.