GEOS
TwoPointFluxApproximation.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 Total, S.A
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 
20 #ifndef GEOS_FINITEVOLUME_TWOPOINTFLUXAPPROXIMATION_HPP_
21 #define GEOS_FINITEVOLUME_TWOPOINTFLUXAPPROXIMATION_HPP_
22 
24 
25 namespace geos
26 {
27 
34 {
35 public:
36 
41  static string catalogName() { return "TwoPointFluxApproximation"; }
42 
43  TwoPointFluxApproximation() = delete;
44 
50  TwoPointFluxApproximation( string const & name, dataRepository::Group * const parent );
51 
56  {
58  static constexpr char const * edfmStencilString() { return "edfmStencil"; }
60  static constexpr char const * faceToCellStencilString() { return "faceElementToCellStencil"; }
62  static constexpr char const * meanPermCoefficientString() { return "meanPermCoefficient"; }
64  static constexpr char const * usePEDFMString() { return "usePEDFM"; }
65  };
66 
67 private:
68  virtual void registerCellStencil( Group & stencilGroup ) const override;
69 
70  virtual void computeFractureStencil( MeshLevel & mesh ) const override;
71 
72  virtual void computeCellStencil( MeshLevel & mesh ) const override;
73 
74  virtual void registerFractureStencil( Group & stencilGroup ) const override;
75 
76  virtual void addToFractureStencil( MeshLevel & mesh,
77  string const & faceElementRegionName ) const override;
78 
79  virtual void registerBoundaryStencil( Group & stencilGroup,
80  string const & setName ) const override;
81 
82  virtual void computeBoundaryStencil( MeshLevel & mesh,
83  string const & setName,
84  SortedArrayView< localIndex const > const & faceSet ) const override;
85 
86  virtual void registerAquiferStencil( Group & stencilGroup,
87  string const & setName ) const override;
88 
89  virtual void computeAquiferStencil( DomainPartition & domain,
90  MeshLevel & mesh ) const override;
91 
92  virtual void addEmbeddedFracturesToStencils( MeshLevel & mesh,
93  string const & embeddedSurfaceRegionName ) const override;
94 
100  void addFractureFractureConnectionsEDFM( MeshLevel & mesh,
101  string const & embeddedSurfaceRegionName ) const;
102 
108  void addFractureMatrixConnectionsEDFM( MeshLevel & mesh,
109  string const & embeddedSurfaceRegionName ) const;
110 
116  void addFractureFractureConnectionsDFM( MeshLevel & mesh,
117  string const & faceElementRegionName ) const;
118 
124  void addFractureMatrixConnectionsDFM( MeshLevel & mesh,
125  string const & faceElementRegionName ) const;
126 
135  void cleanMatrixMatrixConnectionsDFM( MeshLevel & mesh,
136  string const & faceElementRegionName ) const;
137 
146  void initNewFractureFieldsDFM( MeshLevel & mesh,
147  string const & faceElementRegionName ) const;
148 
150  real64 m_meanPermCoefficient;
152  integer m_useProjectionEmbeddedFractureMethod;
153 };
154 
155 }
156 
157 
158 #endif //GEOS_FINITEVOLUME_TWOPOINTFLUXAPPROXIMATION_HPP_
Partition of the decomposed physical domain. It also manages the connexion information to its neighbo...
Class facilitating the representation of a multi-level discretization of a MeshBody.
Definition: MeshLevel.hpp:42
TwoPointFluxApproximation(string const &name, dataRepository::Group *const parent)
Constructor.
static string catalogName()
Static Factory Catalog Functions.
double real64
64-bit floating point type.
Definition: DataTypes.hpp:99
std::int32_t integer
Signed integer type.
Definition: DataTypes.hpp:82
LvArray::SortedArrayView< T, localIndex, LvArray::ChaiBuffer > SortedArrayView
A sorted array view of local indices.
Definition: DataTypes.hpp:271