GEOSX
CellElementRegion.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 Total, S.A
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 
20 #ifndef GEOSX_MESH_CELLELEMENTREGION_HPP_
21 #define GEOSX_MESH_CELLELEMENTREGION_HPP_
22 
23 #include "ElementRegionBase.hpp"
24 
25 namespace geosx
26 {
27 class EdgeManager;
28 class EmbeddedSurfaceGenerator;
29 
39 {
40 public:
41 
45 
47 
53  CellElementRegion( string const & name, Group * const parent );
54 
58  CellElementRegion() = delete;
59 
63  virtual ~CellElementRegion() override;
64 
68 
74  static const string CatalogName()
75  { return "CellElementRegion"; }
76 
80  virtual const string getCatalogName() const override final
81  { return CellElementRegion::CatalogName(); }
82 
84 
88 
94  void AddCellBlockName( string const & cellBlockName )
95  {
96  m_cellBlockNames.emplace_back( cellBlockName );
97  }
98 
99  virtual void GenerateMesh( Group * const cellBlocks ) override;
100 
106  void GenerateAggregates( FaceManager const * const faceManager, NodeManager const * const nodeManager );
107 
109 
115  {
117  static constexpr auto coarseningRatioString = "coarseningRatio";
118 
120  static constexpr auto sourceCellBlockNames = "cellBlocks";
121  };
122 
123 
124 private:
125 
126  // Cell block names
127  string_array m_cellBlockNames;
128 
129  // Coarsening ratio
130  real64 m_coarseningRatio;
131 
132 };
133 
134 } /* namespace geosx */
135 
136 #endif /* GEOSX_MESH_CELLELEMENTREGION_HPP_ */
void AddCellBlockName(string const &cellBlockName)
Add a cellBlockRegion name to the list.
The NodeManager class provides an interface to ObjectManagerBase in order to manage node data...
Definition: NodeManager.hpp:47
virtual ~CellElementRegion() override
Destructor.
static constexpr auto coarseningRatioString
String key for the coarsening ratio.
std::enable_if_t< _NDIM==1 > emplace_back(ARGS &&... args)
Construct a value in place at the end of the array.
Definition: Array.hpp:461
double real64
64-bit floating point type.
Definition: DataTypes.hpp:136
void GenerateAggregates(FaceManager const *const faceManager, NodeManager const *const nodeManager)
Generate the aggregates.
The ElementRegionBase is the base class to manage the data stored at the element level.
static constexpr auto sourceCellBlockNames
String key for the cell block names.
CellElementRegion()=delete
Deleted default constructor.
virtual void GenerateMesh(Group *const cellBlocks) override
Generate mesh.
virtual const string getCatalogName() const override final
The key name for the FaceElementRegion in the object catalog.
static const string CatalogName()
The key name for the FaceElementRegion in the object catalog.
The FaceManager class provides an interface to ObjectManagerBase in order to manage face data...
Definition: FaceManager.hpp:40
This class provides a fixed dimensional resizeable array interface in addition to an interface simila...
Definition: Array.hpp:55
Struct to serve as a container for variable strings and keys.
A struct to serve as a container for variable strings and keys.