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;
85 real64 const scalingFactor,
92 integer configurationLoopIter ) override final;
102 template< typename LAMBDA >
109 for(
const auto & [finiteElementName, faceElementList] : faceTypesToFaceElements )
115 lambda( finiteElementName, subRegionFE, faceElemList );
127 template<
typename LAMBDA >
131 bool const isStickState =
true;
133 std::map< string, array1d< localIndex > >
const &
134 faceTypesToFaceElements = m_faceTypesToFaceElementsStick.at( meshName );
136 for(
const auto & [finiteElementName, faceElementList] : faceTypesToFaceElements )
142 lambda( finiteElementName, subRegionFE, faceElemList, isStickState );
154 template<
typename LAMBDA >
158 bool const isStickState =
false;
160 std::map< string, array1d< localIndex > >
const &
161 faceTypesToFaceElements = m_faceTypesToFaceElementsSlip.at( meshName );
163 for(
const auto & [finiteElementName, faceElementList] : faceTypesToFaceElements )
169 lambda( finiteElementName, subRegionFE, faceElemList, isStickState );
222 std::map< string, std::map< string, array1d< localIndex > > > m_faceTypesToFaceElements;
225 std::map< string, std::map< string, array1d< localIndex > > > m_faceTypesToFaceElementsStick;
228 std::map< string, std::map< string, array1d< localIndex > > > m_faceTypesToFaceElementsSlip;
231 std::map< string, std::unique_ptr< geos::finiteElement::FiniteElementBase > > m_faceTypeToFiniteElements;
236 constexpr
static char const * normalDisplacementToleranceString() {
return "normalDisplacementTolerance"; }
238 constexpr
static char const * normalTractionToleranceString() {
return "normalTractionTolerance"; }
240 constexpr
static char const * slidingToleranceString() {
return "slidingTolerance"; }
242 constexpr
static char const * dispJumpUpdPenaltyString() {
return "dispJumpUpdPenalty"; }
244 constexpr
static char const * simultaneousString() {
return "simultaneous"; }
246 constexpr
static char const * symmetricString() {
return "symmetric"; }
248 constexpr
static char const * iterativePenaltyNFacString() {
return "iterPenaltyN"; }
250 constexpr
static char const * iterativePenaltyTFacString() {
return "iterPenaltyT"; }
252 constexpr
static char const * tolJumpDispNFacString() {
return "tolJumpN"; }
254 constexpr
static char const * tolJumpDispTFacString() {
return "tolJumpT"; }
256 constexpr
static char const * tolNormalTracFacString() {
return "tolNormalTrac"; }
258 constexpr
static char const * tolTauLimitString() {
return "tolTauLimit"; }
264 real64 m_slidingCheckTolerance = 5.e-02;
267 int m_simultaneous = 1;
274 real64 m_iterPenaltyNFac = 10.0;
277 real64 m_iterPenaltyTFac = 0.1;
280 real64 m_tolJumpDispNFac = 1.e-07;
283 real64 m_tolJumpDispTFac = 1.e-05;
286 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.
double real64
64-bit floating point type.
LvArray::CRSMatrixView< T, COL_INDEX, INDEX_TYPE const, LvArray::ChaiBuffer > CRSMatrixView
Alias for CRS Matrix View.
mapBase< TKEY, TVAL, std::integral_constant< bool, true > > map
Ordered map type.
int integer
Signed integer type.
Array< T, 1 > array1d
Alias for 1D array.
LAInterface::ParallelVector ParallelVector
Alias for ParallelVector.