/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
11namespace amr_wind {
12
21{
22public:
23 explicit ABLWallFunction(const CFDSim& sim);
24
25 ~ABLWallFunction() = default;
26
27 MOData& mo() { return m_mo; }
28 const MOData& mo() const { return m_mo; }
29
32 amrex::Real utau() const { return m_mo.utau; }
33
36
38 void update_umean(
39 const VelPlaneAveragingFine& vpa, const FieldPlaneAveragingFine& tpa);
40
41 void update_tflux(const amrex::Real tflux);
42
43private:
44 const CFDSim& m_sim;
45
46 const amrex::AmrCore& m_mesh;
47
50
51 int m_direction{2};
52 bool m_use_fch{true};
53
54 amrex::Vector<amrex::Real> m_gravity{0.0, 0.0, -9.81};
55
58 amrex::Vector<amrex::Real> m_surf_temp_time;
59 amrex::Vector<amrex::Real> m_surf_temp_value;
60
61 bool m_tempflux{true};
62 bool m_temp_table{false};
63 amrex::Real m_surf_temp_rate{0.0};
64 amrex::Real m_surf_temp_rate_tstart{0.0};
65 amrex::Real m_surf_temp_init{300.0};
66
67 bool m_inflow_outflow{false};
68 amrex::Real m_wf_vmag{0.0};
69 amrex::Array<amrex::Real, 2> m_wf_vel{0.0, 0.0};
70 amrex::Real m_wf_theta{300.0};
71};
72
79{
80public:
81 ABLVelWallFunc(Field& velocity, const ABLWallFunction& wall_func);
82
83 void operator()(Field& velocity, const FieldState rho_state) override;
84
85 template <typename ShearStress>
86 void wall_model(
87 Field& velocity, const FieldState rho_state, const ShearStress& tau);
88
89private:
91 std::string m_wall_shear_stress_type{"moeng"};
92 std::string m_wall_het_model{"none"};
94};
95
97{
98public:
99 ABLTempWallFunc(Field& temperature, const ABLWallFunction& wall_fuc);
100
101 void operator()(Field& temperature, const FieldState rho_state) override;
102
103 template <typename HeatFlux>
104 void wall_model(
105 Field& temperature, const FieldState rho_state, const HeatFlux& tau);
106
107private:
109 std::string m_wall_shear_stress_type{"moeng"};
110 std::string m_wall_het_model{"none"};
112};
113
114} // namespace amr_wind
115
116#endif /* ABLWALLFUNCTION_H */
amrex::Real m_monin_obukhov_length
Definition ABLWallFunction.H:111
ABLTempWallFunc(Field &temperature, const ABLWallFunction &wall_fuc)
Definition ABLWallFunction.cpp:359
const ABLWallFunction & m_wall_func
Definition ABLWallFunction.H:108
std::string m_wall_shear_stress_type
Definition ABLWallFunction.H:109
std::string m_wall_het_model
Definition ABLWallFunction.H:110
void operator()(Field &temperature, const FieldState rho_state) override
Definition ABLWallFunction.cpp:480
std::string m_wall_het_model
Definition ABLWallFunction.H:92
std::string m_wall_shear_stress_type
Definition ABLWallFunction.H:91
ABLVelWallFunc(Field &velocity, const ABLWallFunction &wall_func)
Definition ABLWallFunction.cpp:194
const ABLWallFunction & m_wall_func
Definition ABLWallFunction.H:90
void operator()(Field &velocity, const FieldState rho_state) override
Definition ABLWallFunction.cpp:328
amrex::Real m_monin_obukhov_length
Definition ABLWallFunction.H:93
Definition ABLWallFunction.H:21
amrex::Array< amrex::Real, 2 > m_wf_vel
Definition ABLWallFunction.H:69
amrex::Real m_wf_vmag
Definition ABLWallFunction.H:68
MOData & mo()
Definition ABLWallFunction.H:27
bool m_tempflux
Definition ABLWallFunction.H:61
amrex::Vector< amrex::Real > m_surf_temp_value
Definition ABLWallFunction.H:59
std::string m_surf_temp_timetable
Ability to read in a table of surface temperature versus time.
Definition ABLWallFunction.H:57
amrex::Real m_surf_temp_rate_tstart
Definition ABLWallFunction.H:64
ABLWallFunction(const CFDSim &sim)
Definition ABLWallFunction.cpp:19
amrex::Real m_surf_temp_rate
Definition ABLWallFunction.H:63
bool m_temp_table
Definition ABLWallFunction.H:62
int m_direction
Direction normal to wall.
Definition ABLWallFunction.H:51
const CFDSim & m_sim
Definition ABLWallFunction.H:44
const amrex::AmrCore & m_mesh
Definition ABLWallFunction.H:46
bool m_inflow_outflow
Definition ABLWallFunction.H:67
amrex::Real utau() const
Return the plane-averaged computed friction velocity at any given instance.
Definition ABLWallFunction.H:32
amrex::Vector< amrex::Real > m_gravity
Definition ABLWallFunction.H:54
bool m_use_fch
Use first cell height?
Definition ABLWallFunction.H:52
amrex::Real m_surf_temp_init
Definition ABLWallFunction.H:65
void update_umean(const VelPlaneAveragingFine &vpa, const FieldPlaneAveragingFine &tpa)
Update the mean velocity at a given timestep.
Definition ABLWallFunction.cpp:149
MOData m_mo
Monin-Obukhov instance.
Definition ABLWallFunction.H:49
const MOData & mo() const
Definition ABLWallFunction.H:28
void init_log_law_height()
Initialize the log-law height based on user inputs.
Definition ABLWallFunction.cpp:141
amrex::Vector< amrex::Real > m_surf_temp_time
Definition ABLWallFunction.H:58
amrex::Real m_wf_theta
Definition ABLWallFunction.H:70
void update_tflux(const amrex::Real tflux)
Definition ABLWallFunction.cpp:189
Definition CFDSim.H:54
Definition FieldBCOps.H:32
Definition Field.H:116
Definition FieldPlaneAveragingFine.H:114
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:7
FPlaneAveragingFine< Field > FieldPlaneAveragingFine
Definition FieldPlaneAveragingFine.H:107
Definition MOData.H:21