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

AMR-Wind API: /home/runner/work/amr-wind/amr-wind/amr-wind/wind_energy/ABLWallFunction.H Source File
AMR-Wind API v0.1.0
CFD solver for wind plant simulations
Loading...
Searching...
No Matches
ABLWallFunction.H
Go to the documentation of this file.
1#ifndef ABLWALLFUNCTION_H
2#define ABLWALLFUNCTION_H
3
4#include "amr-wind/CFDSim.H"
10#include "AMReX_REAL.H"
11
12using namespace amrex::literals;
13
14namespace amr_wind {
15
24{
25public:
26 explicit ABLWallFunction(const CFDSim& sim);
27
28 ~ABLWallFunction() = default;
29
30 MOData& mo() { return m_mo; }
31 const MOData& mo() const { return m_mo; }
32
35 amrex::Real utau() const { return m_mo.utau; }
36
39
41 void update_umean(
42 const VelPlaneAveragingFine& vpa, const FieldPlaneAveragingFine& tpa);
43
44 void update_tflux(const amrex::Real tflux);
45
46private:
47 const CFDSim& m_sim;
48
49 const amrex::AmrCore& m_mesh;
50
53
54 int m_direction{2};
55 bool m_use_fch{true};
56
57 amrex::Vector<amrex::Real> m_gravity{0.0_rt, 0.0_rt, -9.81_rt};
58
61 amrex::Vector<amrex::Real> m_surf_temp_time;
62 amrex::Vector<amrex::Real> m_surf_temp_value;
63
64 bool m_tempflux{true};
65 bool m_temp_table{false};
66 amrex::Real m_surf_temp_rate{0.0_rt};
67 amrex::Real m_surf_temp_rate_tstart{0.0_rt};
68 amrex::Real m_surf_temp_init{300.0_rt};
69
70 bool m_inflow_outflow{false};
71 amrex::Real m_wf_vmag{0.0_rt};
72 amrex::Array<amrex::Real, 2> m_wf_vel{0.0_rt, 0.0_rt};
73 amrex::Real m_wf_theta{300.0_rt};
74};
75
82{
83public:
84 ABLVelWallFunc(Field& velocity, const ABLWallFunction& wall_func);
85
86 void operator()(Field& velocity, const FieldState rho_state) override;
87
88 template <typename ShearStress>
89 void wall_model(
90 Field& velocity, const FieldState rho_state, const ShearStress& tau);
91
92private:
94 std::string m_wall_shear_stress_type{"moeng"};
95 std::string m_wall_het_model{"none"};
97};
98
100{
101public:
102 ABLTempWallFunc(Field& temperature, const ABLWallFunction& wall_fuc);
103
104 void operator()(Field& temperature, const FieldState rho_state) override;
105
106 template <typename HeatFlux>
107 void wall_model(
108 Field& temperature, const FieldState rho_state, const HeatFlux& tau);
109
110private:
112 std::string m_wall_shear_stress_type{"moeng"};
113 std::string m_wall_het_model{"none"};
115};
116
117} // namespace amr_wind
118
119#endif /* ABLWALLFUNCTION_H */
amrex::Real m_monin_obukhov_length
Definition ABLWallFunction.H:114
ABLTempWallFunc(Field &temperature, const ABLWallFunction &wall_fuc)
Definition ABLWallFunction.cpp:364
const ABLWallFunction & m_wall_func
Definition ABLWallFunction.H:111
std::string m_wall_shear_stress_type
Definition ABLWallFunction.H:112
std::string m_wall_het_model
Definition ABLWallFunction.H:113
void operator()(Field &temperature, const FieldState rho_state) override
Definition ABLWallFunction.cpp:487
std::string m_wall_het_model
Definition ABLWallFunction.H:95
std::string m_wall_shear_stress_type
Definition ABLWallFunction.H:94
ABLVelWallFunc(Field &velocity, const ABLWallFunction &wall_func)
Definition ABLWallFunction.cpp:197
const ABLWallFunction & m_wall_func
Definition ABLWallFunction.H:93
void operator()(Field &velocity, const FieldState rho_state) override
Definition ABLWallFunction.cpp:333
amrex::Real m_monin_obukhov_length
Definition ABLWallFunction.H:96
Definition ABLWallFunction.H:24
amrex::Array< amrex::Real, 2 > m_wf_vel
Definition ABLWallFunction.H:72
amrex::Real m_wf_vmag
Definition ABLWallFunction.H:71
MOData & mo()
Definition ABLWallFunction.H:30
bool m_tempflux
Definition ABLWallFunction.H:64
amrex::Vector< amrex::Real > m_surf_temp_value
Definition ABLWallFunction.H:62
std::string m_surf_temp_timetable
Ability to read in a table of surface temperature versus time.
Definition ABLWallFunction.H:60
amrex::Real m_surf_temp_rate_tstart
Definition ABLWallFunction.H:67
ABLWallFunction(const CFDSim &sim)
Definition ABLWallFunction.cpp:22
amrex::Real m_surf_temp_rate
Definition ABLWallFunction.H:66
bool m_temp_table
Definition ABLWallFunction.H:65
int m_direction
Direction normal to wall.
Definition ABLWallFunction.H:54
const CFDSim & m_sim
Definition ABLWallFunction.H:47
const amrex::AmrCore & m_mesh
Definition ABLWallFunction.H:49
bool m_inflow_outflow
Definition ABLWallFunction.H:70
amrex::Real utau() const
Return the plane-averaged computed friction velocity at any given instance.
Definition ABLWallFunction.H:35
amrex::Vector< amrex::Real > m_gravity
Definition ABLWallFunction.H:57
bool m_use_fch
Use first cell height?
Definition ABLWallFunction.H:55
amrex::Real m_surf_temp_init
Definition ABLWallFunction.H:68
void update_umean(const VelPlaneAveragingFine &vpa, const FieldPlaneAveragingFine &tpa)
Update the mean velocity at a given timestep.
Definition ABLWallFunction.cpp:152
MOData m_mo
Monin-Obukhov instance.
Definition ABLWallFunction.H:52
const MOData & mo() const
Definition ABLWallFunction.H:31
void init_log_law_height()
Initialize the log-law height based on user inputs.
Definition ABLWallFunction.cpp:144
amrex::Vector< amrex::Real > m_surf_temp_time
Definition ABLWallFunction.H:61
amrex::Real m_wf_theta
Definition ABLWallFunction.H:73
void update_tflux(const amrex::Real tflux)
Definition ABLWallFunction.cpp:192
Definition CFDSim.H:54
Definition FieldBCOps.H:32
Definition Field.H:116
Definition FieldPlaneAveragingFine.H:138
FieldState
Definition FieldDescTypes.H:14
@ wall_model
Definition incflo_enums.H:13
static constexpr amrex::Real LARGE_NUM
A large positive number.
Definition constants.H:29
This test case is intended as an evaluation of the momentum advection scheme.
Definition BCInterface.cpp:10
FPlaneAveragingFine< Field > FieldPlaneAveragingFine
Definition FieldPlaneAveragingFine.H:131
Definition MOData.H:24