GEOS
MeshManager.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 
20 #ifndef GEOS_MESH_MESHMANAGER_HPP_
21 #define GEOS_MESH_MESHMANAGER_HPP_
22 
23 #include "dataRepository/Group.hpp"
24 #include "mesh/DomainPartition.hpp"
26 
27 namespace geos
28 {
29 
35 {
36 public:
37 
43  MeshManager( string const & name,
44  Group * const parent );
45 
46  virtual ~MeshManager() override;
47 
48 
55  virtual Group * createChild( string const & childKey, string const & childName ) override;
56 
58  virtual void expandObjectCatalogs() override;
59 
64  void generateMeshes( DomainPartition & domain );
65 
71 
76  void importFields( DomainPartition & domain );
77 
87  static void importFields( MeshGeneratorBase const & generator,
88  string const & regionName,
89  ElementSubRegionBase & subRegion,
91  std::map< string, string > const & fieldsMapping,
92  FieldIdentifiers & fieldsToBeSync );
93 
94 private:
95 
99  MeshManager() = delete;
100 
101 };
102 
103 } /* namespace geos */
104 
105 #endif /* GEOS_MESH_MESHMANAGER_HPP_ */
Partition of the decomposed physical domain. It also manages the connexion information to its neighbo...
The MeshGeneratorBase class provides an abstract base class implementation for different mesh types....
Block
Describe which kind of block must be considered.
This class manages the mesh objects in GEOSX (reservoir mesh, well mesh)
Definition: MeshManager.hpp:35
virtual Group * createChild(string const &childKey, string const &childName) override
Create a new sub-mesh.
MeshManager(string const &name, Group *const parent)
Constructor for the MeshManager object.
static void importFields(MeshGeneratorBase const &generator, string const &regionName, ElementSubRegionBase &subRegion, MeshGeneratorBase::Block block, std::map< string, string > const &fieldsMapping, FieldIdentifiers &fieldsToBeSync)
Import fields data.
void generateMeshLevels(DomainPartition &domain)
Generate the different mesh levels in a MeshBody of the domain.
void generateMeshes(DomainPartition &domain)
Generate the meshes of the physical DomainPartition.
void importFields(DomainPartition &domain)
Import data from external sources (e.g. dataset that comes with a mesh).
virtual void expandObjectCatalogs() override
This function is used to expand any catalogs in the data structure.