21 #ifndef GEOS_PHYSICSSOLVERS_CONTACT_SOLIDMECHANICSAUGMENTEDLAGRANGIANCONTACT_HPP_
22 #define GEOS_PHYSICSSOLVERS_CONTACT_SOLIDMECHANICSAUGMENTEDLAGRANGIANCONTACT_HPP_
24 #include "physicsSolvers/contact/ContactSolverBase.hpp"
33 Group *
const parent );
43 return "SolidMechanicsAugmentedLagrangianContact";
60 bool const setSparsity =
true ) override final;
85 real64 const scalingFactor,
101 template< typename LAMBDA >
108 for(
const auto & [finiteElementName, faceElementList] : faceTypesToFaceElements )
114 lambda( finiteElementName, subRegionFE, faceElemList );
126 template<
typename LAMBDA >
130 bool const isStickState =
true;
132 std::map< string, array1d< localIndex > >
const &
133 faceTypesToFaceElements = m_faceTypesToFaceElementsStick.at( meshName );
135 for(
const auto & [finiteElementName, faceElementList] : faceTypesToFaceElements )
141 lambda( finiteElementName, subRegionFE, faceElemList, isStickState );
153 template<
typename LAMBDA >
157 bool const isStickState =
false;
159 std::map< string, array1d< localIndex > >
const &
160 faceTypesToFaceElements = m_faceTypesToFaceElementsSlip.at( meshName );
162 for(
const auto & [finiteElementName, faceElementList] : faceTypesToFaceElements )
168 lambda( finiteElementName, subRegionFE, faceElemList, isStickState );
221 std::map< string, std::map< string, array1d< localIndex > > > m_faceTypesToFaceElements;
224 std::map< string, std::map< string, array1d< localIndex > > > m_faceTypesToFaceElementsStick;
227 std::map< string, std::map< string, array1d< localIndex > > > m_faceTypesToFaceElementsSlip;
230 std::map< string, std::unique_ptr< geos::finiteElement::FiniteElementBase > > m_faceTypeToFiniteElements;
235 constexpr
static char const * normalDisplacementToleranceString() {
return "normalDisplacementTolerance"; }
237 constexpr
static char const * normalTractionToleranceString() {
return "normalTractionTolerance"; }
239 constexpr
static char const * slidingToleranceString() {
return "slidingTolerance"; }
241 constexpr
static char const * dispJumpUpdPenaltyString() {
return "dispJumpUpdPenalty"; }
246 real64 const m_slidingCheckTolerance = 0.05;
249 bool m_simultaneous =
true;
253 bool m_symmetric =
true;
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.
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).
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::CRSMatrix< T, COL_INDEX, localIndex, LvArray::ChaiBuffer > CRSMatrix
Alias for CRS Matrix class.
mapBase< TKEY, TVAL, std::integral_constant< bool, true > > map
Ordered map type.
Array< T, 1 > array1d
Alias for 1D array.
LAInterface::ParallelVector ParallelVector
Alias for ParallelVector.