AMR-Wind  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 
16 namespace amr_wind {
17 class IOManager;
18 class PostProcessManager;
19 class OversetManager;
20 class ExtSolverMgr;
21 class helics_storage;
22 
23 namespace turbulence {
24 class TurbulenceModel;
25 }
26 
46 class CFDSim
47 {
48 public:
49  explicit CFDSim(amrex::AmrCore& mesh);
50 
52 
54  amrex::AmrCore& mesh() { return m_mesh; }
55  const amrex::AmrCore& mesh() const { return m_mesh; }
56 
58  SimTime& time() { return m_time; }
59  const SimTime& time() const { return m_time; }
60 
62  FieldRepo& repo() { return m_repo; }
63  FieldRepo& repo() const { return m_repo; }
64 
66  const pde::PDEMgr& pde_manager() const { return m_pde_mgr; }
67 
69  const PhysicsMgr& physics_manager() const { return m_physics_mgr; }
70 
73  {
74  return m_physics_mgr.objects();
75  }
76 
79  {
80  return *m_turbulence;
81  }
82 
83  IOManager& io_manager() { return *m_io_mgr; }
84  const IOManager& io_manager() const { return *m_io_mgr; }
85 
87  const PostProcessManager& post_manager() const { return *m_post_mgr; }
88 
91  {
92  return m_overset_mgr.get();
93  }
94 
95  MeshMap* mesh_mapping() { return m_mesh_map.get(); }
96  const MeshMap* mesh_mapping() const { return m_mesh_map.get(); }
97 
99  const ExtSolverMgr& ext_solver_manager() const { return *m_ext_solver_mgr; }
100 
102  const helics_storage& helics() const { return *m_helics; }
103 
104  bool has_overset() const;
105 
108 
110  void init_physics();
111 
113  void activate_overset();
114 
116  void activate_mesh_map();
117 
118  bool has_mesh_mapping() const { return m_mesh_mapping; }
119 
120  bool is_anelastic() const;
121 
122 private:
123  amrex::AmrCore& m_mesh;
124 
126 
127  mutable FieldRepo m_repo;
128 
130 
132 
133  std::unique_ptr<turbulence::TurbulenceModel> m_turbulence;
134 
135  std::unique_ptr<IOManager> m_io_mgr;
136 
137  std::unique_ptr<PostProcessManager> m_post_mgr;
138 
139  std::unique_ptr<OversetManager> m_overset_mgr;
140 
141  std::unique_ptr<MeshMap> m_mesh_map;
142 
143  std::unique_ptr<ExtSolverMgr> m_ext_solver_mgr;
144 
145  std::unique_ptr<helics_storage> m_helics;
146 
147  bool m_mesh_mapping{false};
148 };
149 
150 } // namespace amr_wind
151 
152 #endif /* CFDSIM_H */
Data structures for a CFD simulation.
Definition: CFDSim.H:47
const helics_storage & helics() const
Definition: CFDSim.H:102
PostProcessManager & post_manager()
Definition: CFDSim.H:86
const ExtSolverMgr & ext_solver_manager() const
Definition: CFDSim.H:99
void activate_mesh_map()
Activate mesh mapping.
Definition: CFDSim.cpp:65
SimTime m_time
Definition: CFDSim.H:125
std::unique_ptr< ExtSolverMgr > m_ext_solver_mgr
Definition: CFDSim.H:143
const PostProcessManager & post_manager() const
Definition: CFDSim.H:87
const OversetManager * overset_manager() const
Definition: CFDSim.H:90
std::unique_ptr< IOManager > m_io_mgr
Definition: CFDSim.H:135
const MeshMap * mesh_mapping() const
Definition: CFDSim.H:96
std::unique_ptr< turbulence::TurbulenceModel > m_turbulence
Definition: CFDSim.H:133
const SimTime & time() const
Definition: CFDSim.H:59
turbulence::TurbulenceModel & turbulence_model()
Definition: CFDSim.H:77
SimTime & time()
Return simulation time control.
Definition: CFDSim.H:58
const amrex::AmrCore & mesh() const
Definition: CFDSim.H:55
bool has_mesh_mapping() const
Definition: CFDSim.H:118
const turbulence::TurbulenceModel & turbulence_model() const
Definition: CFDSim.H:78
IOManager & io_manager()
Definition: CFDSim.H:83
ExtSolverMgr & ext_solver_manager()
Definition: CFDSim.H:98
FieldRepo & repo()
Return the field repository.
Definition: CFDSim.H:62
const IOManager & io_manager() const
Definition: CFDSim.H:84
PhysicsMgr::TypeVector & physics()
Definition: CFDSim.H:71
void activate_overset()
Activate overset connectivity.
Definition: CFDSim.cpp:55
void create_turbulence_model()
Instantiate the turbulence model based on user inputs.
Definition: CFDSim.cpp:25
const PhysicsMgr::TypeVector & physics() const
Definition: CFDSim.H:72
amrex::AmrCore & m_mesh
Definition: CFDSim.H:123
void init_physics()
Instantiate all physics instances based on user inputs.
Definition: CFDSim.cpp:44
bool is_anelastic() const
Definition: CFDSim.cpp:76
PhysicsMgr m_physics_mgr
Definition: CFDSim.H:131
FieldRepo m_repo
Definition: CFDSim.H:127
pde::PDEMgr & pde_manager()
Definition: CFDSim.H:65
CFDSim(amrex::AmrCore &mesh)
Definition: CFDSim.cpp:13
helics_storage & helics()
Definition: CFDSim.H:101
std::unique_ptr< helics_storage > m_helics
Definition: CFDSim.H:145
std::unique_ptr< OversetManager > m_overset_mgr
Definition: CFDSim.H:139
amrex::AmrCore & mesh()
Return the AMR mesh hierarchy.
Definition: CFDSim.H:54
bool m_mesh_mapping
Definition: CFDSim.H:147
const PhysicsMgr & physics_manager() const
Definition: CFDSim.H:69
std::unique_ptr< PostProcessManager > m_post_mgr
Definition: CFDSim.H:137
bool has_overset() const
Definition: CFDSim.cpp:63
pde::PDEMgr m_pde_mgr
Definition: CFDSim.H:129
PhysicsMgr & physics_manager()
Definition: CFDSim.H:68
FieldRepo & repo() const
Definition: CFDSim.H:63
std::unique_ptr< MeshMap > m_mesh_map
Definition: CFDSim.H:141
const pde::PDEMgr & pde_manager() const
Definition: CFDSim.H:66
MeshMap * mesh_mapping()
Definition: CFDSim.H:95
OversetManager * overset_manager()
Definition: CFDSim.H:89
amrex::Vector< TypePtr > TypeVector
Definition: CollMgr.H:25
TypeVector & objects()
Return a vector of the registered objects.
Definition: CollMgr.H:51
Definition: ExtSolver.H:20
Field Repository.
Definition: FieldRepo.H:86
Input/Output manager.
Definition: IOManager.H:32
Abstract representation of different mesh mapping models.
Definition: MeshMap.H:31
Overset interface manager.
Definition: OversetManager.H:23
A collection of Physics models instances that are active during a simulation.
Definition: Physics.H:97
A collection of post-processing instances that are active during a simulation.
Definition: PostProcessing.H:63
Time manager for simulations.
Definition: SimTime.H:30
Definition: helics.H:17
PDE systems manager.
Definition: PDEBase.H:115
Abstract representation of a turbulence model.
Definition: TurbulenceModel.H:32
AMR-Wind.
Definition: BCInterface.cpp:6