GEOSX
MeshGeneratorBase.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 
19 #ifndef GEOSX_MESHUTILITIES_MESHGENERATORBASE_HPP
20 #define GEOSX_MESHUTILITIES_MESHGENERATORBASE_HPP
21 
22 #include "dataRepository/Group.hpp"
23 #include "codingUtilities/Utilities.hpp"
24 #include "common/DataTypes.hpp"
25 
26 namespace geosx
27 {
28 
29 namespace dataRepository
30 {}
31 
32 class NodeManager;
33 class DomainPartition;
34 
41 {
42 public:
43 
49  explicit MeshGeneratorBase( std::string const & name,
50  Group * const parent );
51 
55  virtual ~MeshGeneratorBase();
56 
57 
62  static string CatalogName() { return "MeshGeneratorBase"; }
63 
68  virtual void GenerateElementRegions( DomainPartition & domain ) = 0;
69 
74  virtual void GenerateMesh( DomainPartition * const domain ) = 0;
75 
76  // virtual void GenerateNodesets( xmlWrapper::xmlNode const & targetNode,
77  // NodeManager * nodeManager ) = 0;
78 
88  virtual void GetElemToNodesRelationInBox ( const std::string & elementType,
89  const int index[],
90  const int & iEle,
91  int nodeIDInBox[],
92  const int size ) = 0;
98  virtual void RemapMesh ( dataRepository::Group * const domain ) = 0;
99 
101  int m_delayMeshDeformation = 0;
102 
105 
111  static CatalogInterface::CatalogType & GetCatalog();
112 
113 };
114 }
115 
116 #endif /* GEOSX_MESHUTILITIES_MESHGENERATORBASE_HPP */
The MeshGeneratorBase class provides an abstract base class implementation for different mesh types...
This class provides the base class/interface for the catalog value objects.
static string CatalogName()
Return the name of the MeshGenerator in object catalog.
std::string string
String type.
Definition: DataTypes.hpp:131
Partition of the decomposed physical domain. It also manages the connexion information to its neighbo...
std::unordered_map< std::string, std::unique_ptr< CatalogInterface< BASETYPE, ARGS... > > > CatalogType
This is the type that will be used for the catalog. The catalog is actually instantiated in the BASET...