/home/runner/work/kynema-sgf/kynema-sgf/src/CFDSim.H Source File

Kynema-SGF API: /home/runner/work/kynema-sgf/kynema-sgf/src/CFDSim.H Source File
Kynema-SGF API v0.1.0
CFD solver for wind plant simulations
Loading...
Searching...
No Matches
CFDSim.H
Go to the documentation of this file.
1#ifndef CFDSIM_H
2#define CFDSIM_H
3
4#include "AMReX_AmrCore.H"
5#include "src/core/SimTime.H"
8#include "src/core/Physics.H"
10#include "src/core/MeshMap.H"
11#include "src/helics.H"
12
14class MultiBlockContainer;
15
20namespace kynema_sgf {
21class IOManager;
23class OversetManager;
24class ExtSolverMgr;
25class HelicsStorage;
26
27namespace transport {
28class TransportModel;
29}
30
31namespace turbulence {
32class TurbulenceModel;
33}
34
42
54class CFDSim
55{
56public:
57 explicit CFDSim(amrex::AmrCore& mesh);
58
60
62 amrex::AmrCore& mesh() { return m_mesh; }
63 const amrex::AmrCore& mesh() const { return m_mesh; }
64
66 SimTime& time() { return m_time; }
67 const SimTime& time() const { return m_time; }
68
69 void set_mbc(MultiBlockContainer* mbc) { m_mbc = mbc; }
70 MultiBlockContainer** mbc() { return &m_mbc; }
71
72 void set_read_erf(ReadERFFunction fcn) { m_read_erf = std::move(fcn); }
74
76 FieldRepo& repo() { return m_repo; }
77 FieldRepo& repo() const { return m_repo; }
78
80 const pde::PDEMgr& pde_manager() const { return m_pde_mgr; }
81
83 const PhysicsMgr& physics_manager() const { return m_physics_mgr; }
84
87 {
88 return m_physics_mgr.objects();
89 }
90
96
102 {
103 return m_field_boundary_mgr.objects();
104 }
105
108 {
109 return *m_transport;
110 }
111
114 {
115 return *m_turbulence;
116 }
117
119 const IOManager& io_manager() const { return *m_io_mgr; }
120
122 const PostProcessManager& post_manager() const { return *m_post_mgr; }
123
126 {
127 return m_overset_mgr.get();
128 }
129
130 MeshMap* mesh_mapping() { return m_mesh_map.get(); }
131 const MeshMap* mesh_mapping() const { return m_mesh_map.get(); }
132
135
137 const HelicsStorage& helics() const { return *m_helics; }
138
139 bool has_overset() const;
140
143
146
148 void init_physics();
149
152
154 void activate_overset();
155
157 void activate_mesh_map();
158
159 bool has_mesh_mapping() const { return m_mesh_mapping; }
160
161 void set_during_overset_advance(const bool flag)
162 {
164 }
165
167
168 bool is_anelastic() const;
169
170private:
171 amrex::AmrCore& m_mesh;
172
174
176
178
180
182
183 std::unique_ptr<transport::TransportModel> m_transport;
184
185 std::unique_ptr<turbulence::TurbulenceModel> m_turbulence;
186
187 std::unique_ptr<IOManager> m_io_mgr;
188
189 std::unique_ptr<PostProcessManager> m_post_mgr;
190
191 std::unique_ptr<OversetManager> m_overset_mgr;
192
193 std::unique_ptr<MeshMap> m_mesh_map;
194
195 std::unique_ptr<ExtSolverMgr> m_ext_solver_mgr;
196
197 std::unique_ptr<HelicsStorage> m_helics;
198
199 bool m_mesh_mapping{false};
200
201 // State of solver - know if during an overset timestep or not
203
204 MultiBlockContainer* m_mbc{nullptr};
206};
207
208} // namespace kynema_sgf
209
210#endif /* CFDSIM_H */
std::function< void( const amrex::Real time, amrex::Vector< amrex::Real > &, kynema_sgf::InletData &, const amrex::Vector< kynema_sgf::Field * > &, MultiBlockContainer *)> ReadERFFunction
Definition ReadERFFunction.H:10
FieldBoundaryMgr & field_boundary_manager()
Definition CFDSim.H:91
const SimTime & time() const
Definition CFDSim.H:67
FieldRepo & repo()
Return the field repository.
Definition CFDSim.H:76
transport::TransportModel & transport_model()
Definition CFDSim.H:106
CFDSim(amrex::AmrCore &mesh)
Definition CFDSim.cpp:14
const amrex::AmrCore & mesh() const
Definition CFDSim.H:63
bool is_during_overset_advance() const
Definition CFDSim.H:166
HelicsStorage & helics()
Definition CFDSim.H:136
SimTime & time()
Return simulation time control.
Definition CFDSim.H:66
std::unique_ptr< PostProcessManager > m_post_mgr
Definition CFDSim.H:189
IOManager & io_manager()
Definition CFDSim.H:118
const turbulence::TurbulenceModel & turbulence_model() const
Definition CFDSim.H:113
bool m_mesh_mapping
Definition CFDSim.H:199
void create_transport_model()
Instantiate the transport model based on user inputs.
Definition CFDSim.cpp:26
const HelicsStorage & helics() const
Definition CFDSim.H:137
pde::PDEMgr & pde_manager()
Definition CFDSim.H:79
PhysicsMgr m_physics_mgr
Definition CFDSim.H:179
void activate_mesh_map()
Activate mesh mapping.
Definition CFDSim.cpp:88
const OversetManager * overset_manager() const
Definition CFDSim.H:125
const FieldBoundaryMgr::TypeVector & field_boundaries() const
Definition CFDSim.H:101
PhysicsMgr & physics_manager()
Definition CFDSim.H:82
const pde::PDEMgr & pde_manager() const
Definition CFDSim.H:80
bool m_during_overset_advance
Definition CFDSim.H:202
ExtSolverMgr & ext_solver_manager()
Definition CFDSim.H:133
turbulence::TurbulenceModel & turbulence_model()
Definition CFDSim.H:112
std::unique_ptr< IOManager > m_io_mgr
Definition CFDSim.H:187
SimTime m_time
Definition CFDSim.H:173
const IOManager & io_manager() const
Definition CFDSim.H:119
pde::PDEMgr m_pde_mgr
Definition CFDSim.H:177
std::unique_ptr< turbulence::TurbulenceModel > m_turbulence
Definition CFDSim.H:185
amrex::AmrCore & m_mesh
Definition CFDSim.H:171
amrex::AmrCore & mesh()
Return the AMR mesh hierarchy.
Definition CFDSim.H:62
void set_read_erf(ReadERFFunction fcn)
Definition CFDSim.H:72
const FieldBoundaryMgr & field_boundary_manager() const
Definition CFDSim.H:92
void activate_overset()
Activate overset connectivity.
Definition CFDSim.cpp:78
void set_during_overset_advance(const bool flag)
Definition CFDSim.H:161
void init_physics()
Instantiate all physics instances based on user inputs.
Definition CFDSim.cpp:56
ReadERFFunction * get_read_erf()
Definition CFDSim.H:73
std::unique_ptr< OversetManager > m_overset_mgr
Definition CFDSim.H:191
MultiBlockContainer * m_mbc
Definition CFDSim.H:204
const MeshMap * mesh_mapping() const
Definition CFDSim.H:131
PhysicsMgr::TypeVector & physics()
Definition CFDSim.H:85
MeshMap * mesh_mapping()
Definition CFDSim.H:130
const transport::TransportModel & transport_model() const
Definition CFDSim.H:107
std::unique_ptr< HelicsStorage > m_helics
Definition CFDSim.H:197
void create_turbulence_model()
Instantiate the turbulence model based on user inputs.
Definition CFDSim.cpp:37
void init_field_boundaries()
Instantiate all field boundaries based on user inputs.
Definition CFDSim.cpp:67
FieldRepo m_repo
Definition CFDSim.H:175
std::unique_ptr< transport::TransportModel > m_transport
Definition CFDSim.H:183
FieldBoundaryMgr m_field_boundary_mgr
Definition CFDSim.H:181
OversetManager * overset_manager()
Definition CFDSim.H:124
void set_mbc(MultiBlockContainer *mbc)
Definition CFDSim.H:69
const PostProcessManager & post_manager() const
Definition CFDSim.H:122
bool has_overset() const
Definition CFDSim.cpp:86
ReadERFFunction m_read_erf
Definition CFDSim.H:205
FieldRepo & repo() const
Definition CFDSim.H:77
MultiBlockContainer ** mbc()
Definition CFDSim.H:70
std::unique_ptr< ExtSolverMgr > m_ext_solver_mgr
Definition CFDSim.H:195
const PhysicsMgr & physics_manager() const
Definition CFDSim.H:83
bool has_mesh_mapping() const
Definition CFDSim.H:159
const PhysicsMgr::TypeVector & physics() const
Definition CFDSim.H:86
const ExtSolverMgr & ext_solver_manager() const
Definition CFDSim.H:134
bool is_anelastic() const
Definition CFDSim.cpp:99
FieldBoundaryMgr::TypeVector & field_boundaries()
Definition CFDSim.H:97
PostProcessManager & post_manager()
Definition CFDSim.H:121
std::unique_ptr< MeshMap > m_mesh_map
Definition CFDSim.H:193
amrex::Vector< TypePtr > TypeVector
Definition CollMgr.H:25
Definition ExtSolver.H:20
Definition FieldBoundary.H:51
Definition FieldRepo.H:86
Definition helics.H:20
Definition IOManager.H:32
Definition MeshMap.H:31
Definition OversetManager.H:24
Definition Physics.H:100
Definition PostProcessing.H:224
Definition SimTime.H:33
Definition PDEBase.H:117
Definition TransportModel.H:32
Definition TurbulenceModel.H:32
Definition CFDSim.H:27
Definition CFDSim.H:31
This test case is intended as an evaluation of the momentum advection scheme.
Definition BCInterface.cpp:10