21 #ifndef GEOS_PHYSICSSOLVERS_CONTACT_SOLIDMECHANICSLAGRANGECONTACT_HPP_
22 #define GEOS_PHYSICSSOLVERS_CONTACT_SOLIDMECHANICSLAGRANGECONTACT_HPP_
24 #include "physicsSolvers/solidMechanics/contact/ContactSolverBase.hpp"
29 class NumericalMethodsManager;
35 Group *
const parent );
45 return "SolidMechanicsLagrangeContact";
66 bool const setSparsity =
true ) override final;
99 real64 const scalingFactor,
113 void assembleForceResidualDerivativeWrtTraction(
MeshLevel const & mesh,
119 void assembleTractionResidualDerivativeWrtDisplacementAndTraction(
MeshLevel const & mesh,
125 void assembleForceResidualPressureContribution(
MeshLevel const & mesh,
131 void assembleStabilization(
MeshLevel const & mesh,
140 integer const configurationLoopIter ) override final;
142 bool isFractureAllInStickCondition(
DomainPartition const & domain ) const;
148 void computeFaceNodalArea(
localIndex const kf0,
158 void computeFaceIntegrals(
arrayView2d<
real64 const, nodes::REFERENCE_POSITION_USD > const & nodesCoords,
163 real64 const (&faceCenter)[3],
164 real64 const (&faceNormal)[3],
166 real64 const & invCellDiameter,
167 real64 const (&cellCenter)[3],
169 real64 ( &threeDMonomialIntegrals )[3] ) const;
171 real64 const machinePrecision = std::numeric_limits<
real64 >::epsilon();
173 string getStabilizationName()
const {
return m_stabilizationName; }
183 void setMGRStrategy();
186 string m_stabilizationName;
188 real64 const m_slidingCheckTolerance = 0.05;
190 real64 m_stabilizationScalingCoefficient = 1.0;
198 constexpr
static char const * stabilizationNameString() {
return "stabilizationName"; }
200 constexpr
static char const * rotationMatrixString() {
return "rotationMatrix"; }
202 constexpr
static char const * normalDisplacementToleranceString() {
return "normalDisplacementTolerance"; }
204 constexpr
static char const * normalTractionToleranceString() {
return "normalTractionTolerance"; }
206 constexpr
static char const * slidingToleranceString() {
return "slidingTolerance"; }
208 constexpr
static char const * transMultiplierString() {
return "penaltyStiffnessTransMultiplier"; }
210 constexpr
static char const * stabilizationScalingCoefficientString() {
return "stabilizationScalingCoefficient"; }
212 constexpr
static char const * useLocalYieldAccelerationString() {
return "useLocalYieldAcceleration"; }
214 constexpr
static char const * localYieldAccelerationBufferString() {
return "localYieldAccelerationBuffer"; }
219 integer m_useLocalYieldAcceleration;
220 real64 m_localYieldAccelerationBuffer;
225 real64 currentTau_unscaled,
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.
Common interface for preconditioning operators.
ArrayView< T, 1 > arrayView1d
Alias for 1D array view.
stdVector< string > string_array
A 1-dimensional array of geos::string types.
GEOS_GLOBALINDEX_TYPE globalIndex
Global index type (for indexing objects across MPI partitions).
LvArray::CRSMatrix< T, COL_INDEX, INDEX_TYPE, LvArray::ChaiBuffer > CRSMatrix
Alias for CRS Matrix class.
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).
GEOS_CONCAT(GEOS_LA_INTERFACE, Interface) LAInterface
Alias for current interface.
LvArray::CRSMatrixView< T, COL_INDEX, INDEX_TYPE const, LvArray::ChaiBuffer > CRSMatrixView
Alias for CRS Matrix View.
ArrayView< T, 2, USD > arrayView2d
Alias for 2D array view.
int integer
Signed integer type.
LAInterface::ParallelVector ParallelVector
Alias for ParallelVector.