GEOSX
FiniteVolumeManager.hpp
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 
15 /*
16  * @file FiniteVolumeManager.hpp
17  *
18  */
19 
20 #ifndef GEOS_FINITEVOLUME_FINITEVOLUMEMANAGER_HPP_
21 #define GEOS_FINITEVOLUME_FINITEVOLUMEMANAGER_HPP_
22 
23 #include "dataRepository/Group.hpp"
24 
25 namespace geos
26 {
27 
28 class DomainPartition;
29 class FluxApproximationBase;
30 class HybridMimeticDiscretization;
31 
38 {
39 public:
40 
44  FiniteVolumeManager() = delete;
45 
51  FiniteVolumeManager( string const & name, Group * const parent );
52 
56  virtual ~FiniteVolumeManager() override;
57 
58  virtual Group * createChild( string const & childKey, string const & childName ) override;
59 
60  virtual void expandObjectCatalogs() override;
61 
67  FluxApproximationBase const & getFluxApproximation( string const & name ) const;
68 
72  FluxApproximationBase & getFluxApproximation( string const & name );
73 
79  HybridMimeticDiscretization const & getHybridMimeticDiscretization( string const & name ) const;
80 
85 
86 private:
87 
88 };
89 
90 } // namespace geos
91 
92 
93 #endif //GEOS_FINITEVOLUME_FINITEVOLUMEMANAGER_HPP_
HybridMimeticDiscretization & getHybridMimeticDiscretization(string const &name)
Return the HybridMimeticDiscretization associated with the provided name.
FluxApproximationBase & getFluxApproximation(string const &name)
Return the FluxApproximation associated with the provided name.
FluxApproximationBase const & getFluxApproximation(string const &name) const
Return the FluxApproximation associated with the provided name.
virtual ~FiniteVolumeManager() override
Destructor.
FiniteVolumeManager(string const &name, Group *const parent)
Constructor.
HybridMimeticDiscretization const & getHybridMimeticDiscretization(string const &name) const
Return the HybridMimeticDiscretization associated with the provided name.
FiniteVolumeManager()=delete
Deleted default constructor.
virtual void expandObjectCatalogs() override
Expand any catalogs in the data structure.
virtual Group * createChild(string const &childKey, string const &childName) override
Creates a new sub-Group using the ObjectCatalog functionality.