GEOS
PhysicsSolverManager.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 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 
16 #ifndef GEOS_PHYSICSSOLVERS_PHYSICSSOLVERMANAGER_HPP_
17 #define GEOS_PHYSICSSOLVERS_PHYSICSSOLVERMANAGER_HPP_
18 
19 #include "dataRepository/Group.hpp"
20 
21 namespace geos
22 {
23 
25 {
26 public:
27  PhysicsSolverManager( string const & name,
28  Group * const parent );
29 
30  virtual ~PhysicsSolverManager() override;
31 
32  virtual Group * createChild( string const & childKey, string const & childName ) override;
33 
35  virtual void expandObjectCatalogs() override;
36 
38  {
39  constexpr static char const * gravityVectorString() { return "gravityVector"; };
40  };
41 
42  R1Tensor const & gravityVector() const { return m_gravityVector; }
43  R1Tensor & gravityVector() { return m_gravityVector; }
44 
45 private:
46  PhysicsSolverManager() = delete;
47 
48  R1Tensor m_gravityVector;
49 };
50 
51 } /* namespace geos */
52 
53 #endif /* GEOS_PHYSICSSOLVERS_PHYSICSSOLVERMANAGER_HPP_ */
virtual void expandObjectCatalogs() override
This function is used to 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.
Tensor< real64, 3 > R1Tensor
Alias for a local (stack-based) rank-1 tensor type.
Definition: DataTypes.hpp:174