/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
CFDSim.H
Go to the documentation of this file.
1#ifndef CFDSIM_H
2#define CFDSIM_H
3
4#include "AMReX_AmrCore.H"
10#include "amr-wind/helics.H"
11
13class MultiBlockContainer;
14
19namespace amr_wind {
20class IOManager;
21class PostProcessManager;
22class OversetManager;
23class ExtSolverMgr;
24class HelicsStorage;
25
26namespace transport {
27class TransportModel;
28}
29
30namespace turbulence {
31class TurbulenceModel;
32}
33
53class CFDSim
54{
55public:
56 explicit CFDSim(amrex::AmrCore& mesh);
57
59
61 amrex::AmrCore& mesh() { return m_mesh; }
62 const amrex::AmrCore& mesh() const { return m_mesh; }
63
65 SimTime& time() { return m_time; }
66 const SimTime& time() const { return m_time; }
67
68 void set_mbc(MultiBlockContainer* mbc) { m_mbc = mbc; }
69 MultiBlockContainer** mbc() { return &m_mbc; }
70
71 void set_read_erf(ReadERFFunction fcn) { m_read_erf = std::move(fcn); }
73
75 FieldRepo& repo() { return m_repo; }
76 FieldRepo& repo() const { return m_repo; }
77
79 const pde::PDEMgr& pde_manager() const { return m_pde_mgr; }
80
82 const PhysicsMgr& physics_manager() const { return m_physics_mgr; }
83
86 {
87 return m_physics_mgr.objects();
88 }
89
92 {
93 return *m_transport;
94 }
95
98 {
99 return *m_turbulence;
100 }
101
103 const IOManager& io_manager() const { return *m_io_mgr; }
104
106 const PostProcessManager& post_manager() const { return *m_post_mgr; }
107
110 {
111 return m_overset_mgr.get();
112 }
113
114 MeshMap* mesh_mapping() { return m_mesh_map.get(); }
115 const MeshMap* mesh_mapping() const { return m_mesh_map.get(); }
116
119
121 const HelicsStorage& helics() const { return *m_helics; }
122
123 bool has_overset() const;
124
127
130
132 void init_physics();
133
135 void activate_overset();
136
138 void activate_mesh_map();
139
140 bool has_mesh_mapping() const { return m_mesh_mapping; }
141
142 void set_during_overset_advance(const bool flag)
143 {
145 }
146
148
149 bool is_anelastic() const;
150
151private:
152 amrex::AmrCore& m_mesh;
153
155
157
159
161
162 std::unique_ptr<transport::TransportModel> m_transport;
163
164 std::unique_ptr<turbulence::TurbulenceModel> m_turbulence;
165
166 std::unique_ptr<IOManager> m_io_mgr;
167
168 std::unique_ptr<PostProcessManager> m_post_mgr;
169
170 std::unique_ptr<OversetManager> m_overset_mgr;
171
172 std::unique_ptr<MeshMap> m_mesh_map;
173
174 std::unique_ptr<ExtSolverMgr> m_ext_solver_mgr;
175
176 std::unique_ptr<HelicsStorage> m_helics;
177
178 bool m_mesh_mapping{false};
179
180 // State of solver - know if during an overset timestep or not
182
183 MultiBlockContainer* m_mbc{nullptr};
185};
186
187} // namespace amr_wind
188
189#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 ABLReadERFFunction.H:10
Definition CFDSim.H:54
void set_read_erf(ReadERFFunction fcn)
Definition CFDSim.H:71
turbulence::TurbulenceModel & turbulence_model()
Definition CFDSim.H:96
void activate_mesh_map()
Activate mesh mapping.
Definition CFDSim.cpp:77
SimTime m_time
Definition CFDSim.H:154
std::unique_ptr< ExtSolverMgr > m_ext_solver_mgr
Definition CFDSim.H:174
const pde::PDEMgr & pde_manager() const
Definition CFDSim.H:79
const PhysicsMgr::TypeVector & physics() const
Definition CFDSim.H:85
HelicsStorage & helics()
Definition CFDSim.H:120
FieldRepo & repo()
Return the field repository.
Definition CFDSim.H:75
std::unique_ptr< IOManager > m_io_mgr
Definition CFDSim.H:166
std::unique_ptr< turbulence::TurbulenceModel > m_turbulence
Definition CFDSim.H:164
PhysicsMgr & physics_manager()
Definition CFDSim.H:81
void create_transport_model()
Instantiate the transport model based on user inputs.
Definition CFDSim.cpp:26
ReadERFFunction m_read_erf
Definition CFDSim.H:184
const HelicsStorage & helics() const
Definition CFDSim.H:121
const MeshMap * mesh_mapping() const
Definition CFDSim.H:115
const OversetManager * overset_manager() const
Definition CFDSim.H:109
bool has_mesh_mapping() const
Definition CFDSim.H:140
MultiBlockContainer ** mbc()
Definition CFDSim.H:69
PhysicsMgr::TypeVector & physics()
Definition CFDSim.H:84
FieldRepo & repo() const
Definition CFDSim.H:76
PostProcessManager & post_manager()
Definition CFDSim.H:105
void set_during_overset_advance(const bool flag)
Definition CFDSim.H:142
amrex::AmrCore & mesh()
Return the AMR mesh hierarchy.
Definition CFDSim.H:61
bool m_during_overset_advance
Definition CFDSim.H:181
MultiBlockContainer * m_mbc
Definition CFDSim.H:183
transport::TransportModel & transport_model()
Definition CFDSim.H:90
ReadERFFunction * get_read_erf()
Definition CFDSim.H:72
bool is_during_overset_advance() const
Definition CFDSim.H:147
void activate_overset()
Activate overset connectivity.
Definition CFDSim.cpp:67
const PhysicsMgr & physics_manager() const
Definition CFDSim.H:82
MeshMap * mesh_mapping()
Definition CFDSim.H:114
void set_mbc(MultiBlockContainer *mbc)
Definition CFDSim.H:68
void create_turbulence_model()
Instantiate the turbulence model based on user inputs.
Definition CFDSim.cpp:37
OversetManager * overset_manager()
Definition CFDSim.H:108
amrex::AmrCore & m_mesh
Definition CFDSim.H:152
void init_physics()
Instantiate all physics instances based on user inputs.
Definition CFDSim.cpp:56
bool is_anelastic() const
Definition CFDSim.cpp:88
PhysicsMgr m_physics_mgr
Definition CFDSim.H:160
FieldRepo m_repo
Definition CFDSim.H:156
const transport::TransportModel & transport_model() const
Definition CFDSim.H:91
std::unique_ptr< transport::TransportModel > m_transport
Definition CFDSim.H:162
CFDSim(amrex::AmrCore &mesh)
Definition CFDSim.cpp:14
std::unique_ptr< OversetManager > m_overset_mgr
Definition CFDSim.H:170
bool m_mesh_mapping
Definition CFDSim.H:178
std::unique_ptr< HelicsStorage > m_helics
Definition CFDSim.H:176
const SimTime & time() const
Definition CFDSim.H:66
const amrex::AmrCore & mesh() const
Definition CFDSim.H:62
SimTime & time()
Return simulation time control.
Definition CFDSim.H:65
std::unique_ptr< PostProcessManager > m_post_mgr
Definition CFDSim.H:168
bool has_overset() const
Definition CFDSim.cpp:75
pde::PDEMgr m_pde_mgr
Definition CFDSim.H:158
ExtSolverMgr & ext_solver_manager()
Definition CFDSim.H:117
std::unique_ptr< MeshMap > m_mesh_map
Definition CFDSim.H:172
const turbulence::TurbulenceModel & turbulence_model() const
Definition CFDSim.H:97
const PostProcessManager & post_manager() const
Definition CFDSim.H:106
const IOManager & io_manager() const
Definition CFDSim.H:103
IOManager & io_manager()
Definition CFDSim.H:102
const ExtSolverMgr & ext_solver_manager() const
Definition CFDSim.H:118
pde::PDEMgr & pde_manager()
Definition CFDSim.H:78
TypeVector & objects()
Return a vector of the registered objects.
Definition CollMgr.H:51
amrex::Vector< TypePtr > TypeVector
Definition CollMgr.H:25
Definition ExtSolver.H:20
Definition FieldRepo.H:86
Definition helics.H:17
Definition IOManager.H:32
Definition MeshMap.H:31
Definition OversetManager.H:23
Definition Physics.H:100
Definition PostProcessing.H:63
Definition SimTime.H:30
Definition PDEBase.H:115
Definition TransportModel.H:32
Definition TurbulenceModel.H:32
Definition BCInterface.cpp:7