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 
27 namespace geos
28 {
29 namespace dataRepository
30 {
31 namespace keys
32 {}
33 }
34 
41 {
42 public:
45 
52  NumericalMethodsManager( string const & name, Group * const parent );
53 
54  virtual ~NumericalMethodsManager() override;
55 
56  virtual Group * createChild( string const & childKey, string const & childName ) override;
57 
60  {
62  static constexpr char const * basisFunctionsString() { return "BasisFunctions"; }
63 
65  static constexpr char const * quadratureRulesString() { return "QuadratureRules"; }
66 
68  static constexpr char const * finiteElementDiscretizationsString() { return "FiniteElements"; }
69 
71  static constexpr char const * finiteVolumeManagerString() { return "FiniteVolume"; }
72  };
73 
77  FiniteElementDiscretizationManager const & getFiniteElementDiscretizationManager() const { return m_finiteElementDiscretizationManager; }
78 
82  FiniteElementDiscretizationManager & getFiniteElementDiscretizationManager() { return m_finiteElementDiscretizationManager; }
83 
87  FiniteVolumeManager & getFiniteVolumeManager() { return m_finiteVolumeManager; }
88 
92  FiniteVolumeManager const & getFiniteVolumeManager() const { return m_finiteVolumeManager; }
93 
94 private:
95 
97  FiniteElementDiscretizationManager m_finiteElementDiscretizationManager;
98 
100  FiniteVolumeManager m_finiteVolumeManager;
101 
102 };
103 
104 } /* namespace geos */
105 
106 #endif /* GEOS_DISCRETIZATIONMETHODS_NUMERICALMETHODSMANAGER_HPP_ */
NumericalMethodsManager()=delete
Deleted default constructor.
FiniteVolumeManager const & getFiniteVolumeManager() const
FiniteElementDiscretizationManager & getFiniteElementDiscretizationManager()
FiniteElementDiscretizationManager const & getFiniteElementDiscretizationManager() const
FiniteVolumeManager & getFiniteVolumeManager()
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 * finiteElementDiscretizationsString()