GEOS
NumericalMethodsManager.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_DISCRETIZATIONMETHODS_NUMERICALMETHODSMANAGER_HPP_
21 #define GEOS_DISCRETIZATIONMETHODS_NUMERICALMETHODSMANAGER_HPP_
22 
23 #include "dataRepository/Group.hpp"
24 #include "finiteElement/FiniteElementDiscretizationManager.hpp"
25 #include "finiteVolume/FiniteVolumeManager.hpp"
26 #include "mixedMimetic/MixedMimeticDiscretizationManager.hpp"
27 
28 namespace geos
29 {
30 namespace dataRepository
31 {
32 namespace keys
33 {}
34 }
35 
42 {
43 public:
46 
53  NumericalMethodsManager( string const & name, Group * const parent );
54 
55  virtual ~NumericalMethodsManager() override;
56 
57  virtual Group * createChild( string const & childKey, string const & childName ) override;
58 
61  {
63  static constexpr char const * basisFunctionsString() { return "BasisFunctions"; }
64 
66  static constexpr char const * quadratureRulesString() { return "QuadratureRules"; }
67 
69  static constexpr char const * finiteElementDiscretizationsString() { return "FiniteElements"; }
70 
72  static constexpr char const * finiteVolumeManagerString() { return "FiniteVolume"; }
73 
75  static constexpr char const * mixedMimeticManagerString() { return "MixedMimetic"; }
76  };
77 
81  FiniteElementDiscretizationManager const & getFiniteElementDiscretizationManager() const { return m_finiteElementDiscretizationManager; }
82 
86  FiniteElementDiscretizationManager & getFiniteElementDiscretizationManager() { return m_finiteElementDiscretizationManager; }
87 
91  FiniteVolumeManager & getFiniteVolumeManager() { return m_finiteVolumeManager; }
92 
96  FiniteVolumeManager const & getFiniteVolumeManager() const { return m_finiteVolumeManager; }
97 
101  MixedMimeticDiscretizationManager & getMixedMimeticDiscretizationManager() { return m_mixedMimeticDiscretizationManager; }
102 
106  MixedMimeticDiscretizationManager const & getMixedMimeticDiscretizationManager() const { return m_mixedMimeticDiscretizationManager; }
107 
108 private:
109 
111  FiniteElementDiscretizationManager m_finiteElementDiscretizationManager;
112 
114  FiniteVolumeManager m_finiteVolumeManager;
115 
117  MixedMimeticDiscretizationManager m_mixedMimeticDiscretizationManager;
118 
119 };
120 
121 } /* namespace geos */
122 
123 #endif /* GEOS_DISCRETIZATIONMETHODS_NUMERICALMETHODSMANAGER_HPP_ */
NumericalMethodsManager()=delete
Deleted default constructor.
FiniteVolumeManager const & getFiniteVolumeManager() const
MixedMimeticDiscretizationManager & getMixedMimeticDiscretizationManager()
FiniteElementDiscretizationManager & getFiniteElementDiscretizationManager()
FiniteElementDiscretizationManager const & getFiniteElementDiscretizationManager() const
FiniteVolumeManager & getFiniteVolumeManager()
MixedMimeticDiscretizationManager const & getMixedMimeticDiscretizationManager() const
virtual Group * createChild(string const &childKey, string const &childName) override
Creates a new sub-Group using the ObjectCatalog functionality.
NumericalMethodsManager(string const &name, Group *const parent)
Constructor.
Contains the keys for the object names in the data repository.
static constexpr char const * finiteVolumeManagerString()
static constexpr char const * mixedMimeticManagerString()
static constexpr char const * finiteElementDiscretizationsString()