/home/runner/work/amr-wind/amr-wind/amr-wind/CFDSim.H Source File

AMR-Wind API: /home/runner/work/amr-wind/amr-wind/amr-wind/CFDSim.H Source File
AMR-Wind 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"
11#include "amr-wind/helics.H"
12
14class MultiBlockContainer;
15
20namespace amr_wind {
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 amr_wind
209
210#endif /* CFDSIM_H */
std::function< void( const amrex::Real time, amrex::Vector< amrex::Real > &, amr_wind::InletData &, const amrex::Vector< amr_wind::Field * > &, MultiBlockContainer *)> ReadERFFunction
Definition ReadERFFunction.H:10
void set_read_erf(ReadERFFunction fcn)
Definition CFDSim.H:72
turbulence::TurbulenceModel & turbulence_model()
Definition CFDSim.H:112
void activate_mesh_map()
Activate mesh mapping.
Definition CFDSim.cpp:88
SimTime m_time
Definition CFDSim.H:173
std::unique_ptr< ExtSolverMgr > m_ext_solver_mgr
Definition CFDSim.H:195
const pde::PDEMgr & pde_manager() const
Definition CFDSim.H:80
const PhysicsMgr::TypeVector & physics() const
Definition CFDSim.H:86
HelicsStorage & helics()
Definition CFDSim.H:136
FieldRepo & repo()
Return the field repository.
Definition CFDSim.H:76
std::unique_ptr< IOManager > m_io_mgr
Definition CFDSim.H:187
std::unique_ptr< turbulence::TurbulenceModel > m_turbulence
Definition CFDSim.H:185
PhysicsMgr & physics_manager()
Definition CFDSim.H:82
void create_transport_model()
Instantiate the transport model based on user inputs.
Definition CFDSim.cpp:26
ReadERFFunction m_read_erf
Definition CFDSim.H:205
const HelicsStorage & helics() const
Definition CFDSim.H:137
const MeshMap * mesh_mapping() const
Definition CFDSim.H:131
const OversetManager * overset_manager() const
Definition CFDSim.H:125
bool has_mesh_mapping() const
Definition CFDSim.H:159
MultiBlockContainer ** mbc()
Definition CFDSim.H:70
PhysicsMgr::TypeVector & physics()
Definition CFDSim.H:85
FieldBoundaryMgr m_field_boundary_mgr
Definition CFDSim.H:181
FieldRepo & repo() const
Definition CFDSim.H:77
PostProcessManager & post_manager()
Definition CFDSim.H:121
void set_during_overset_advance(const bool flag)
Definition CFDSim.H:161
amrex::AmrCore & mesh()
Return the AMR mesh hierarchy.
Definition CFDSim.H:62
bool m_during_overset_advance
Definition CFDSim.H:202
MultiBlockContainer * m_mbc
Definition CFDSim.H:204
transport::TransportModel & transport_model()
Definition CFDSim.H:106
ReadERFFunction * get_read_erf()
Definition CFDSim.H:73
bool is_during_overset_advance() const
Definition CFDSim.H:166
void activate_overset()
Activate overset connectivity.
Definition CFDSim.cpp:78
const PhysicsMgr & physics_manager() const
Definition CFDSim.H:83
MeshMap * mesh_mapping()
Definition CFDSim.H:130
void set_mbc(MultiBlockContainer *mbc)
Definition CFDSim.H:69
void create_turbulence_model()
Instantiate the turbulence model based on user inputs.
Definition CFDSim.cpp:37
OversetManager * overset_manager()
Definition CFDSim.H:124
amrex::AmrCore & m_mesh
Definition CFDSim.H:171
void init_physics()
Instantiate all physics instances based on user inputs.
Definition CFDSim.cpp:56
bool is_anelastic() const
Definition CFDSim.cpp:99
PhysicsMgr m_physics_mgr
Definition CFDSim.H:179
FieldRepo m_repo
Definition CFDSim.H:175
const transport::TransportModel & transport_model() const
Definition CFDSim.H:107
std::unique_ptr< transport::TransportModel > m_transport
Definition CFDSim.H:183
void init_field_boundaries()
Instantiate all field boundaries based on user inputs.
Definition CFDSim.cpp:67
CFDSim(amrex::AmrCore &mesh)
Definition CFDSim.cpp:14
std::unique_ptr< OversetManager > m_overset_mgr
Definition CFDSim.H:191
bool m_mesh_mapping
Definition CFDSim.H:199
std::unique_ptr< HelicsStorage > m_helics
Definition CFDSim.H:197
const SimTime & time() const
Definition CFDSim.H:67
const amrex::AmrCore & mesh() const
Definition CFDSim.H:63
SimTime & time()
Return simulation time control.
Definition CFDSim.H:66
std::unique_ptr< PostProcessManager > m_post_mgr
Definition CFDSim.H:189
bool has_overset() const
Definition CFDSim.cpp:86
pde::PDEMgr m_pde_mgr
Definition CFDSim.H:177
FieldBoundaryMgr::TypeVector & field_boundaries()
Definition CFDSim.H:97
const FieldBoundaryMgr::TypeVector & field_boundaries() const
Definition CFDSim.H:101
const FieldBoundaryMgr & field_boundary_manager() const
Definition CFDSim.H:92
ExtSolverMgr & ext_solver_manager()
Definition CFDSim.H:133
FieldBoundaryMgr & field_boundary_manager()
Definition CFDSim.H:91
std::unique_ptr< MeshMap > m_mesh_map
Definition CFDSim.H:193
const turbulence::TurbulenceModel & turbulence_model() const
Definition CFDSim.H:113
const PostProcessManager & post_manager() const
Definition CFDSim.H:122
const IOManager & io_manager() const
Definition CFDSim.H:119
IOManager & io_manager()
Definition CFDSim.H:118
const ExtSolverMgr & ext_solver_manager() const
Definition CFDSim.H:134
pde::PDEMgr & pde_manager()
Definition CFDSim.H:79
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:23
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