GEOS
SolidMechanicsPenaltyContact.hpp
Go to the documentation of this file.
1 /*
2  * ------------------------------------------------------------------------------------------------------------
3  * SPDX-License-Identifier: LGPL-2.1-only
4  *
5  * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC
6  * Copyright (c) 2018-2024 TotalEnergies
7  * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University
8  * Copyright (c) 2023-2024 Chevron
9  * Copyright (c) 2019- GEOS/GEOSX Contributors
10  * All rights reserved
11  *
12  * See top level LICENSE, COPYRIGHT, CONTRIBUTORS, NOTICE, and ACKNOWLEDGEMENTS files for details.
13  * ------------------------------------------------------------------------------------------------------------
14  */
15 
21 #ifndef GEOS_PHYSICSSOLVERS_CONTACT_SOLIDMECHANICSPENALTYCONTACT_HPP_
22 #define GEOS_PHYSICSSOLVERS_CONTACT_SOLIDMECHANICSPENALTYCONTACT_HPP_
23 
24 #include "physicsSolvers/solidMechanics/contact/ContactSolverBase.hpp"
26 #include "common/DataTypes.hpp"
27 
28 namespace geos
29 {
30 
31 class SolidMechanicsLagrangianFEM;
32 
34 {
35 public:
36 
37  SolidMechanicsPenaltyContact( const string & name,
38  Group * const parent );
39 
44  static string catalogName()
45  {
46  return "SolidMechanicsPenaltyContact";
47  }
51  string getCatalogName() const override { return catalogName(); }
52 
54  static string coupledSolverAttributePrefix() { return "PenaltyContact"; }
55 
56  virtual void setSparsityPattern( DofManager & dofManager,
57  DomainPartition & domain,
58  SparsityPattern< globalIndex > & pattern ) override final;
59 
60  virtual void
61  assembleSystem( real64 const time,
62  real64 const dt,
63  DomainPartition & domain,
64  DofManager const & dofManager,
66  arrayView1d< real64 > const & localRhs ) override;
67 
68  void assembleContact( DomainPartition & domain,
69  DofManager const & dofManager,
71  arrayView1d< real64 > const & localRhs );
72 
73 protected:
74 
75 private:
76 
77  struct viewKeyStruct : ContactSolverBase::viewKeyStruct
78  {
79  constexpr static char const * contactPenaltyStiffnessString() { return "contactPenaltyStiffness"; }
80  };
81 
82  real64 m_contactPenaltyStiffness;
83 };
84 
85 } /* namespace geos */
86 
87 #endif /* GEOS_PHYSICSSOLVERS_CONTACT_SOLIDMECHANICSPENALTYCONTACT_HPP_ */
The DoFManager is responsible for allocating global dofs, constructing sparsity patterns,...
Definition: DofManager.hpp:45
Partition of the decomposed physical domain. It also manages the connexion information to its neighbo...
static string coupledSolverAttributePrefix()
String used to form the solverName used to register single-physics solvers in CoupledSolver.
static string catalogName()
name of the node manager in the object catalog
virtual void assembleSystem(real64 const time, real64 const dt, DomainPartition &domain, DofManager const &dofManager, CRSMatrixView< real64, globalIndex const > const &localMatrix, arrayView1d< real64 > const &localRhs) override
function to assemble the linear system matrix and rhs
ArrayView< T, 1 > arrayView1d
Alias for 1D array view.
Definition: DataTypes.hpp:179
LvArray::SparsityPattern< COL_INDEX, INDEX_TYPE, LvArray::ChaiBuffer > SparsityPattern
Alias for Sparsity pattern class.
Definition: DataTypes.hpp:297
double real64
64-bit floating point type.
Definition: DataTypes.hpp:98
LvArray::CRSMatrixView< T, COL_INDEX, INDEX_TYPE const, LvArray::ChaiBuffer > CRSMatrixView
Alias for CRS Matrix View.
Definition: DataTypes.hpp:309