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";
64 bool const setSparsity =
true ) override final;
86 void assembleContact(
real64 const time,
93 void assembleForceResidualPressureContribution(
DomainPartition & domain,
107 real64 const scalingFactor,
114 integer configurationLoopIter ) override final;
123 template< typename LAMBDA >
130 for(
const auto & [finiteElementName, faceElementList] : faceTypesToFaceElements )
136 lambda( finiteElementName, subRegionFE, faceElemList );
147 template<
typename LAMBDA >
151 bool const isStickState =
true;
154 faceTypesToFaceElements = m_faceTypesToFaceElementsStick.at( meshName );
156 for(
const auto & [finiteElementName, faceElementList] : faceTypesToFaceElements )
162 lambda( finiteElementName, subRegionFE, faceElemList, isStickState );
173 template<
typename LAMBDA >
177 bool const isStickState =
false;
180 faceTypesToFaceElements = m_faceTypesToFaceElementsSlip.at( meshName );
182 for(
const auto & [finiteElementName, faceElementList] : faceTypesToFaceElements )
188 lambda( finiteElementName, subRegionFE, faceElemList, isStickState );
218 void validateTetrahedralQuadrature(
Group & meshBodies );
256 void initializeTractionFromAdjacentCellStress(
DomainPartition & domain )
const;
273 constexpr
static char const * normalDisplacementToleranceString() {
return "normalDisplacementTolerance"; }
275 constexpr
static char const * normalTractionToleranceString() {
return "normalTractionTolerance"; }
277 constexpr
static char const * slidingToleranceString() {
return "slidingTolerance"; }
279 constexpr
static char const * dispJumpUpdPenaltyString() {
return "dispJumpUpdPenalty"; }
281 constexpr
static char const * simultaneousString() {
return "simultaneous"; }
283 constexpr
static char const * symmetricString() {
return "symmetric"; }
285 constexpr
static char const * iterativePenaltyNFacString() {
return "iterPenaltyN"; }
287 constexpr
static char const * iterativePenaltyTFacString() {
return "iterPenaltyT"; }
289 constexpr
static char const * tolJumpDispNFacString() {
return "tolJumpN"; }
291 constexpr
static char const * tolJumpDispTFacString() {
return "tolJumpT"; }
293 constexpr
static char const * tolNormalTracFacString() {
return "tolNormalTrac"; }
295 constexpr
static char const * tolTauLimitString() {
return "tolTauLimit"; }
297 constexpr
static char const * isAnisotropicString() {
return "anisotropic"; }
303 real64 m_slidingCheckTolerance = 5.e-02;
306 int m_simultaneous = 1;
313 real64 m_iterPenaltyNFac = 10.0;
316 real64 m_iterPenaltyTFac = 0.1;
319 real64 m_tolJumpDispNFac = 1.e-07;
322 real64 m_tolJumpDispTFac = 1.e-05;
325 real64 m_tolNormalTracFac = 0.5;
328 int m_isAnisotropic = 1;
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.