/home/runner/work/amr-wind/amr-wind/amr-wind/wind_energy/ABL.H Source File

AMR-Wind API: /home/runner/work/amr-wind/amr-wind/amr-wind/wind_energy/ABL.H Source File
AMR-Wind API v0.1.0
CFD solver for wind plant simulations
Loading...
Searching...
No Matches
ABL.H
Go to the documentation of this file.
1#ifndef ABL_H
2#define ABL_H
3
4#include <memory>
5
17#include "AMReX_REAL.H"
18
19using namespace amrex::literals;
20
30
37
38class incflo;
39
40namespace amr_wind {
41
43
44namespace pde::icns {
45class ABLForcing;
49} // namespace pde::icns
50
51namespace pde::temperature {
54} // namespace pde::temperature
55
68class ABL : public Physics::Register<ABL>
69{
70public:
71 static std::string identifier() { return "ABL"; }
72
73 explicit ABL(CFDSim& sim);
74
75 ~ABL() override;
76
78
79 void post_init_actions() override;
80
81 void post_regrid_actions() override;
82
83 void initialize_fields(int level, const amrex::Geometry& geom) override;
84
85 void pre_advance_work() override;
86
87 void post_advance_work() override;
88
90 {
91 m_abl_forcing = forcing;
92 }
93
107
109 {
110 m_hurricane_forcing = forcing;
111 }
112
118
120 const ABLStatsBase& abl_statistics() const { return *m_stats; }
121
122 const ABLMesoscaleInput& abl_meso_file() const { return *m_meso_file; }
123
124 const ABLAnelastic& anelastic() const { return *m_abl_anelastic; }
125
126private:
127 const CFDSim& m_sim;
128
133 Field* m_tke{nullptr};
134 Field* m_sdr{nullptr};
135
137
139 std::unique_ptr<ABLFieldInit> m_field_init;
140
143
145 std::unique_ptr<ABLStatsBase> m_stats;
146
148 std::unique_ptr<ABLAnelastic> m_abl_anelastic;
149
151
155
156 std::unique_ptr<ABLMesoscaleInput> m_meso_file;
157
161
162 amrex::Real m_init_sdr{25.0_rt};
163
165 bool m_hybrid_rl{false};
166
168 bool m_file_input{false};
170 std::unique_ptr<ABLFieldInitFile> m_field_init_file;
171};
172
173} // namespace amr_wind
174
175#endif /* ABL_H */
Definition ABLAnelastic.H:22
void pre_advance_work() override
Definition ABL.cpp:210
void register_meso_temp_forcing(pde::temperature::ABLMesoForcingTemp *forcing) const
Definition ABL.H:102
Field * m_tke
Definition ABL.H:133
std::unique_ptr< ABLFieldInit > m_field_init
ABL field initializer instance.
Definition ABL.H:139
std::unique_ptr< ABLMesoscaleInput > m_meso_file
Definition ABL.H:156
Field & m_mueff
Definition ABL.H:130
const CFDSim & m_sim
Definition ABL.H:127
ABLWallFunction m_abl_wall_func
Definition ABL.H:136
pde::icns::ABLMeanBoussinesq * m_abl_mean_bous
Definition ABL.H:150
bool m_hybrid_rl
Hybrid RANS-LES with Nalu-wind.
Definition ABL.H:165
static std::string identifier()
Definition ABL.H:71
void register_meso_mom_forcing(pde::icns::ABLMesoForcingMom *forcing) const
Definition ABL.H:98
std::unique_ptr< ABLStatsBase > m_stats
ABL integrated statistics object.
Definition ABL.H:145
const ABLStatsBase & abl_statistics() const
Return the ABL statistics calculator.
Definition ABL.H:120
amrex::Real m_init_sdr
Default value set based on https://turbmodels.larc.nasa.gov/sst.html.
Definition ABL.H:162
pde::temperature::HurricaneTempForcing * m_hurricane_temp_forcing
Definition ABL.H:159
const ABLAnelastic & anelastic() const
Definition ABL.H:124
pde::icns::ABLForcing * m_abl_forcing
Reference to ABL forcing term if present.
Definition ABL.H:142
std::unique_ptr< ABLFieldInitFile > m_field_init_file
File input initializer.
Definition ABL.H:170
std::unique_ptr< ABLAnelastic > m_abl_anelastic
ABL anelastic instance.
Definition ABL.H:148
pde::icns::HurricaneForcing * m_hurricane_forcing
Definition ABL.H:158
Field & m_velocity
Definition ABL.H:129
void register_hurricane_forcing(pde::icns::HurricaneForcing *forcing) const
Definition ABL.H:108
void register_forcing_term(pde::icns::ABLForcing *forcing) const
Definition ABL.H:89
void initialize_fields(int level, const amrex::Geometry &geom) override
Definition ABL.cpp:134
void post_advance_work() override
Definition ABL.cpp:286
bool m_file_input
File input flag.
Definition ABL.H:168
pde::temperature::ABLMesoForcingTemp * m_abl_meso_temp_forcing
Definition ABL.H:153
void register_hurricane_temp_forcing(pde::temperature::HurricaneTempForcing *forcing) const
Definition ABL.H:113
pde::icns::ABLMesoForcingMom * m_abl_meso_mom_forcing
Definition ABL.H:152
Field * m_sdr
Definition ABL.H:134
void register_mean_boussinesq_term(pde::icns::ABLMeanBoussinesq *term) const
Definition ABL.H:94
Field & m_density
Definition ABL.H:131
void post_init_actions() override
Definition ABL.cpp:177
const ABLWallFunction & abl_wall_function() const
Definition ABL.H:77
Field * m_temperature
Definition ABL.H:132
const ABLMesoscaleInput & abl_meso_file() const
Definition ABL.H:122
~ABL() override
void post_regrid_actions() override
Definition ABL.cpp:198
ABL(CFDSim &sim)
Definition ABL.cpp:25
Definition ABLMesoscaleInput.H:11
Definition ABLStatsBase.H:25
Definition ABLWallFunction.H:24
Definition CFDSim.H:55
Definition Field.H:112
Definition ABLForcing.H:20
Definition ABLMeanBoussinesq.H:22
Definition ABLMesoForcingMom.H:26
Definition HurricaneForcing.H:25
Definition ABLMesoForcingTemp.H:19
Definition HurricaneTempForcing.H:15
Definition incflo.H:52
Definition ABLForcing.cpp:14
Definition ABLMesoForcingTemp.cpp:15
This test case is intended as an evaluation of the momentum advection scheme.
Definition BCInterface.cpp:10