21 #ifndef GEOS_PHYSICSSOLVERS_CONTACT_SOLIDMECHANICSAUGMENTEDLAGRANGIANCONTACT_HPP_
22 #define GEOS_PHYSICSSOLVERS_CONTACT_SOLIDMECHANICSAUGMENTEDLAGRANGIANCONTACT_HPP_
24 #include "physicsSolvers/solidMechanics/contact/ContactSolverBase.hpp"
33 Group *
const parent );
43 return "SolidMechanicsAugmentedLagrangianContact";
60 bool const setSparsity =
true ) override final;
82 void assembleContact(
real64 const time,
89 void assembleForceResidualPressureContribution(
DomainPartition & domain,
103 real64 const scalingFactor,
110 integer configurationLoopIter ) override final;
120 template< typename LAMBDA >
127 for(
const auto & [finiteElementName, faceElementList] : faceTypesToFaceElements )
133 lambda( finiteElementName, subRegionFE, faceElemList );
145 template<
typename LAMBDA >
149 bool const isStickState =
true;
152 faceTypesToFaceElements = m_faceTypesToFaceElementsStick.at( meshName );
154 for(
const auto & [finiteElementName, faceElementList] : faceTypesToFaceElements )
160 lambda( finiteElementName, subRegionFE, faceElemList, isStickState );
172 template<
typename LAMBDA >
176 bool const isStickState =
false;
179 faceTypesToFaceElements = m_faceTypesToFaceElementsSlip.at( meshName );
181 for(
const auto & [finiteElementName, faceElementList] : faceTypesToFaceElements )
187 lambda( finiteElementName, subRegionFE, faceElemList, isStickState );
254 constexpr
static char const * normalDisplacementToleranceString() {
return "normalDisplacementTolerance"; }
256 constexpr
static char const * normalTractionToleranceString() {
return "normalTractionTolerance"; }
258 constexpr
static char const * slidingToleranceString() {
return "slidingTolerance"; }
260 constexpr
static char const * dispJumpUpdPenaltyString() {
return "dispJumpUpdPenalty"; }
262 constexpr
static char const * simultaneousString() {
return "simultaneous"; }
264 constexpr
static char const * symmetricString() {
return "symmetric"; }
266 constexpr
static char const * iterativePenaltyNFacString() {
return "iterPenaltyN"; }
268 constexpr
static char const * iterativePenaltyTFacString() {
return "iterPenaltyT"; }
270 constexpr
static char const * tolJumpDispNFacString() {
return "tolJumpN"; }
272 constexpr
static char const * tolJumpDispTFacString() {
return "tolJumpT"; }
274 constexpr
static char const * tolNormalTracFacString() {
return "tolNormalTrac"; }
276 constexpr
static char const * tolTauLimitString() {
return "tolTauLimit"; }
282 real64 m_slidingCheckTolerance = 5.e-02;
285 int m_simultaneous = 1;
292 real64 m_iterPenaltyNFac = 10.0;
295 real64 m_iterPenaltyTFac = 0.1;
298 real64 m_tolJumpDispNFac = 1.e-07;
301 real64 m_tolJumpDispTFac = 1.e-05;
304 real64 m_tolNormalTracFac = 0.5;
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...
Base class for FEM element implementations.
ArrayView< T, 1 > arrayView1d
Alias for 1D array view.
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.
std::string string
String type.
LvArray::SparsityPatternView< COL_INDEX, INDEX_TYPE const, LvArray::ChaiBuffer > SparsityPatternView
Alias for Sparsity pattern View.
LvArray::SparsityPattern< COL_INDEX, INDEX_TYPE, LvArray::ChaiBuffer > SparsityPattern
Alias for Sparsity pattern class.
double real64
64-bit floating point type.
LvArray::CRSMatrixView< T, COL_INDEX, INDEX_TYPE const, LvArray::ChaiBuffer > CRSMatrixView
Alias for CRS Matrix View.
internal::StdMapWrapper< std::map< Key, T, Compare, Allocator >, USE_STD_CONTAINER_BOUNDS_CHECKING > stdMap
int integer
Signed integer type.
Array< T, 1 > array1d
Alias for 1D array.
LAInterface::ParallelVector ParallelVector
Alias for ParallelVector.