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 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 #ifndef GEOS_PHYSICSSOLVERS_PHYSICSSOLVERMANAGER_HPP_
17 #define GEOS_PHYSICSSOLVERS_PHYSICSSOLVERMANAGER_HPP_
18 
19 #include "dataRepository/Group.hpp"
20 
21 namespace pugi
22 {
23 class xml_node;
24 }
25 
26 namespace geos
27 {
28 
30 {
31 public:
32  PhysicsSolverManager( string const & name,
33  Group * const parent );
34 
35  virtual ~PhysicsSolverManager() override;
36 
37  virtual Group * createChild( string const & childKey, string const & childName ) override;
38 
40  virtual void expandObjectCatalogs() override;
41 
43  {
44  constexpr static char const * gravityVectorString() { return "gravityVector"; };
45  };
46 
47  R1Tensor const & gravityVector() const { return m_gravityVector; }
48  R1Tensor & gravityVector() { return m_gravityVector; }
49 
50 private:
51  PhysicsSolverManager() = delete;
52 
53  R1Tensor m_gravityVector;
54 };
55 
56 } /* namespace geos */
57 
58 #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:166