GEOSX
NumericalMethodsManager.hpp
Go to the documentation of this file.
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 Total, S.A
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 
19 #ifndef GEOSX_MANAGERS_NUMERICALMETHODSMANAGER_HPP_
20 #define GEOSX_MANAGERS_NUMERICALMETHODSMANAGER_HPP_
21 
22 #include "dataRepository/Group.hpp"
23 #include "finiteElement/FiniteElementDiscretizationManager.hpp"
24 #include "finiteVolume/FiniteVolumeManager.hpp"
25 
26 namespace geosx
27 {
28 namespace dataRepository
29 {
30 namespace keys
31 {}
32 }
33 
40 {
41 public:
43  NumericalMethodsManager() = delete;
44 
51  NumericalMethodsManager( string const & name, Group * const parent );
52 
53  virtual ~NumericalMethodsManager() override;
54 
55  virtual Group * CreateChild( string const & childKey, string const & childName ) override;
56 
59  {
61  static constexpr auto basisFunctions = "BasisFunctions";
62 
64  static constexpr auto quadratureRules = "QuadratureRules";
65 
67  static constexpr auto finiteElementDiscretizations = "FiniteElements";
68 
70  static constexpr auto finiteVolumeManager = "FiniteVolume";
71 
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 geosx */
105 
106 #endif /* GEOSX_MANAGERS_NUMERICALMETHODSMANAGER_HPP_ */
FiniteElementDiscretizationManager const & getFiniteElementDiscretizationManager() const
FiniteVolumeManager const & getFiniteVolumeManager() const
FiniteVolumeManager & getFiniteVolumeManager()
FiniteElementDiscretizationManager & getFiniteElementDiscretizationManager()
Contains the keys for the object names in the data repository.