GEOS
MultiphasePoromechanicsConformingFractures.hpp
Go to the documentation of this file.
1 /*
2  * ------------------------------------------------------------------------------------------------------------
3  * SPDX-License-Identifier: LGPL-2.1-only
4  *
5  * Copyright (c) 2018-2020 Lawrence Livermore National Security LLC
6  * Copyright (c) 2018-2020 The Board of Trustees of the Leland Stanford Junior University
7  * Copyright (c) 2018-2020 TotalEnergies
8  * Copyright (c) 2019- GEOSX Contributors
9  * All rights reserved
10  *
11  * See top level LICENSE, COPYRIGHT, CONTRIBUTORS, NOTICE, and ACKNOWLEDGEMENTS files for details.
12  * ------------------------------------------------------------------------------------------------------------
13  */
14 
19 #ifndef GEOS_PHYSICSSOLVERS_MULTIPHYSICS_MULTIPHASEPOROMECHANICSCONFORMINGFRACTURES_HPP_
20 #define GEOS_PHYSICSSOLVERS_MULTIPHYSICS_MULTIPHASEPOROMECHANICSCONFORMINGFRACTURES_HPP_
21 
24 
25 namespace geos
26 {
27 
28 template< typename FLOW_SOLVER = CompositionalMultiphaseBase >
29 class MultiphasePoromechanicsConformingFractures : public PoromechanicsConformingFractures< MultiphasePoromechanics, FLOW_SOLVER >
30 {
31 public:
32 
34  using Base::m_solvers;
35  using Base::m_dofManager;
36  using Base::m_localMatrix;
37  using Base::m_rhs;
38  using Base::m_solution;
39  using Base::m_maxFaceNodes;
40 
42  static string coupledSolverAttributePrefix() { return "poromechanicsConformingFractures"; }
43 
50  dataRepository::Group * const parent );
51 
54 
60  static string catalogName()
61  {
62  if constexpr ( std::is_same_v< FLOW_SOLVER, CompositionalMultiphaseBase > )
63  {
64  return "MultiphasePoromechanicsConformingFractures";
65  }
66  else
67  {
68  return FLOW_SOLVER::catalogName() + "PoromechanicsConformingFractures";
69  }
70  }
71 
75  string getCatalogName() const override { return catalogName(); }
76 
77 protected:
78 
79  virtual void postInputInitialization() override;
80 
81  virtual void assembleFluidMassResidualDerivativeWrtDisplacement( MeshLevel const & mesh,
82  string_array const & regionNames,
83  DofManager const & dofManager,
85  arrayView1d< real64 > const & localRhs ) override;
86 
87 private:
88 
89  virtual integer numFluidComponents() const override { return this->flowSolver()->numFluidComponents(); }
90 
91  virtual string getFlowDofKey() const override { return CompositionalMultiphaseBase::viewKeyStruct::elemDofFieldString(); }
92 
93 };
94 
95 } /* namespace geos */
96 
97 #endif /* GEOS_PHYSICSSOLVERS_MULTIPHYSICS_MULTIPHASEPOROMECHANICSCONFORMINGFRACTURES_HPP_ */
The DoFManager is responsible for allocating global dofs, constructing sparsity patterns,...
Definition: DofManager.hpp:44
Class facilitating the representation of a multi-level discretization of a MeshBody.
Definition: MeshLevel.hpp:42
static string coupledSolverAttributePrefix()
String used to form the solverName used to register solvers in CoupledSolver.
static string catalogName()
name of the node manager in the object catalog
MultiphasePoromechanicsConformingFractures(const string &name, dataRepository::Group *const parent)
main constructor for MultiphasePoromechanicsConformingFractures objects
FLOW_SOLVER * flowSolver() const
accessor for the pointer to the flow solver
ArrayView< T, 1 > arrayView1d
Alias for 1D array view.
Definition: DataTypes.hpp:188
stdVector< string > string_array
A 1-dimensional array of geos::string types.
Definition: DataTypes.hpp:401
LvArray::CRSMatrixView< T, COL_INDEX, localIndex const, LvArray::ChaiBuffer > CRSMatrixView
Alias for CRS Matrix View.
Definition: DataTypes.hpp:318
std::int32_t integer
Signed integer type.
Definition: DataTypes.hpp:81