/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
16#include "AMReX_REAL.H"
17
18using namespace amrex::literals;
19
29
36
37class incflo;
38
39namespace amr_wind {
40
42
43namespace pde::icns {
44class ABLForcing;
48} // namespace pde::icns
49
50namespace pde::temperature {
53} // namespace pde::temperature
54
67class ABL : public Physics::Register<ABL>
68{
69public:
70 static std::string identifier() { return "ABL"; }
71
72 explicit ABL(CFDSim& sim);
73
74 ~ABL() override;
75
77
78 void post_init_actions() override;
79
80 void post_regrid_actions() override;
81
82 void initialize_fields(int level, const amrex::Geometry& geom) override;
83
84 void pre_advance_work() override;
85
86 void pre_predictor_work() override;
87
88 void post_advance_work() override;
89
91 {
92 m_abl_forcing = forcing;
93 }
94
100 {
101 m_abl_meso_mom_forcing = forcing;
102 }
108
110 {
111 m_hurricane_forcing = forcing;
112 }
113
119
120 const ABLBoundaryPlane& bndry_plane() const { return *m_bndry_plane; }
122 const ABLModulatedPowerLaw& abl_mpl() const { return *m_abl_mpl; }
123
125 const ABLStatsBase& abl_statistics() const { return *m_stats; }
126
127 const ABLMesoscaleInput& abl_meso_file() const { return *m_meso_file; }
128
129 const ABLAnelastic& anelastic() const { return *m_abl_anelastic; }
130
131private:
132 const CFDSim& m_sim;
133
138 Field* m_tke{nullptr};
139 Field* m_sdr{nullptr};
140
142
144 std::unique_ptr<ABLFieldInit> m_field_init;
145
147 std::unique_ptr<ABLBoundaryPlane> m_bndry_plane;
148
150 std::unique_ptr<ABLModulatedPowerLaw> m_abl_mpl;
151
154
156 std::unique_ptr<ABLStatsBase> m_stats;
157
159 std::unique_ptr<ABLAnelastic> m_abl_anelastic;
160
162
166
167 std::unique_ptr<ABLMesoscaleInput> m_meso_file;
168
172
173 amrex::Real m_init_sdr{25.0_rt};
174
176 bool m_hybrid_rl{false};
177
179 bool m_file_input{false};
181 std::unique_ptr<ABLFieldInitFile> m_field_init_file;
182};
183
184} // namespace amr_wind
185
186#endif /* ABL_H */
Definition ABLAnelastic.H:22
Definition ABLBoundaryPlane.H:116
std::unique_ptr< ABLModulatedPowerLaw > m_abl_mpl
ABL modulated power law instance.
Definition ABL.H:150
void pre_advance_work() override
Definition ABL.cpp:177
void register_meso_temp_forcing(pde::temperature::ABLMesoForcingTemp *forcing) const
Definition ABL.H:103
Field * m_tke
Definition ABL.H:138
std::unique_ptr< ABLFieldInit > m_field_init
ABL field initializer instance.
Definition ABL.H:144
std::unique_ptr< ABLMesoscaleInput > m_meso_file
Definition ABL.H:167
Field & m_mueff
Definition ABL.H:135
const CFDSim & m_sim
Definition ABL.H:132
ABLWallFunction m_abl_wall_func
Definition ABL.H:141
pde::icns::ABLMeanBoussinesq * m_abl_mean_bous
Definition ABL.H:161
bool m_hybrid_rl
Hybrid RANS-LES with Nalu-wind.
Definition ABL.H:176
static std::string identifier()
Definition ABL.H:70
const ABLModulatedPowerLaw & abl_mpl() const
Definition ABL.H:122
void register_meso_mom_forcing(pde::icns::ABLMesoForcingMom *forcing) const
Definition ABL.H:99
std::unique_ptr< ABLStatsBase > m_stats
ABL integrated statistics object.
Definition ABL.H:156
const ABLStatsBase & abl_statistics() const
Return the ABL statistics calculator.
Definition ABL.H:125
amrex::Real m_init_sdr
Default value set based on https://turbmodels.larc.nasa.gov/sst.html.
Definition ABL.H:173
pde::temperature::HurricaneTempForcing * m_hurricane_temp_forcing
Definition ABL.H:170
ABLBoundaryPlane & bndry_plane()
Definition ABL.H:121
const ABLAnelastic & anelastic() const
Definition ABL.H:129
pde::icns::ABLForcing * m_abl_forcing
Reference to ABL forcing term if present.
Definition ABL.H:153
std::unique_ptr< ABLFieldInitFile > m_field_init_file
File input initializer.
Definition ABL.H:181
std::unique_ptr< ABLAnelastic > m_abl_anelastic
ABL anelastic instance.
Definition ABL.H:159
pde::icns::HurricaneForcing * m_hurricane_forcing
Definition ABL.H:169
void pre_predictor_work() override
Definition ABL.cpp:257
Field & m_velocity
Definition ABL.H:134
const ABLBoundaryPlane & bndry_plane() const
Definition ABL.H:120
void register_hurricane_forcing(pde::icns::HurricaneForcing *forcing) const
Definition ABL.H:109
void register_forcing_term(pde::icns::ABLForcing *forcing) const
Definition ABL.H:90
void initialize_fields(int level, const amrex::Geometry &geom) override
Definition ABL.cpp:99
void post_advance_work() override
Definition ABL.cpp:264
bool m_file_input
File input flag.
Definition ABL.H:179
pde::temperature::ABLMesoForcingTemp * m_abl_meso_temp_forcing
Definition ABL.H:164
void register_hurricane_temp_forcing(pde::temperature::HurricaneTempForcing *forcing) const
Definition ABL.H:114
pde::icns::ABLMesoForcingMom * m_abl_meso_mom_forcing
Definition ABL.H:163
Field * m_sdr
Definition ABL.H:139
void register_mean_boussinesq_term(pde::icns::ABLMeanBoussinesq *term) const
Definition ABL.H:95
Field & m_density
Definition ABL.H:136
std::unique_ptr< ABLBoundaryPlane > m_bndry_plane
ABL boundary plane instance.
Definition ABL.H:147
void post_init_actions() override
Definition ABL.cpp:142
const ABLWallFunction & abl_wall_function() const
Definition ABL.H:76
Field * m_temperature
Definition ABL.H:137
const ABLMesoscaleInput & abl_meso_file() const
Definition ABL.H:127
~ABL() override
void post_regrid_actions() override
Definition ABL.cpp:165
ABL(CFDSim &sim)
Definition ABL.cpp:25
Definition ABLMesoscaleInput.H:11
Definition ABLModulatedPowerLaw.H:22
Definition ABLStatsBase.H:24
Definition ABLWallFunction.H:24
Definition CFDSim.H:54
Definition Field.H:116
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:16
This test case is intended as an evaluation of the momentum advection scheme.
Definition BCInterface.cpp:10