GEOS
FiniteVolumeManager.hpp
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 
16 /*
17  * @file FiniteVolumeManager.hpp
18  *
19  */
20 
21 #ifndef GEOS_FINITEVOLUME_FINITEVOLUMEMANAGER_HPP_
22 #define GEOS_FINITEVOLUME_FINITEVOLUMEMANAGER_HPP_
23 
24 #include "dataRepository/Group.hpp"
25 
26 namespace geos
27 {
28 
29 class DomainPartition;
30 class FluxApproximationBase;
31 class HybridMimeticDiscretization;
32 
39 {
40 public:
41 
45  FiniteVolumeManager() = delete;
46 
52  FiniteVolumeManager( string const & name, Group * const parent );
53 
57  virtual ~FiniteVolumeManager() override;
58 
59  virtual Group * createChild( string const & childKey, string const & childName ) override;
60 
61  virtual void expandObjectCatalogs() override;
62 
68  FluxApproximationBase const & getFluxApproximation( string const & name ) const;
69 
73  FluxApproximationBase & getFluxApproximation( string const & name );
74 
80  HybridMimeticDiscretization const & getHybridMimeticDiscretization( string const & name ) const;
81 
86 
87 private:
88 
89 };
90 
91 } // namespace geos
92 
93 
94 #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.