/home/runner/work/amr-wind/amr-wind/amr-wind/turbulence/LES/OneEqKsgs.H Source File

AMR-Wind API: /home/runner/work/amr-wind/amr-wind/amr-wind/turbulence/LES/OneEqKsgs.H Source File
AMR-Wind API v0.1.0
CFD solver for wind plant simulations
Loading...
Searching...
No Matches
OneEqKsgs.H
Go to the documentation of this file.
1#ifndef ONEEQKSGS_H
2#define ONEEQKSGS_H
3
4#include <string>
6#include "AMReX_REAL.H"
7
8using namespace amrex::literals;
9
10namespace amr_wind::turbulence {
11
15template <typename Transport>
16class OneEqKsgs : public TurbModelBase<Transport>
17{
18public:
19 explicit OneEqKsgs(CFDSim& sim);
20
21 ~OneEqKsgs() override;
22
23protected:
25
31
32 Field* m_tke{nullptr};
33
35 amrex::Real m_Ce{0.1_rt};
36 amrex::Real m_Ceps{0.93_rt};
37};
38
46template <typename Transport>
47class OneEqKsgsM84 : public OneEqKsgs<Transport>
48{
49public:
50 static std::string identifier()
51 {
52 return "OneEqKsgsM84-" + Transport::identifier();
53 }
54
55 explicit OneEqKsgsM84(CFDSim& sim);
56
57 ~OneEqKsgsM84() override;
58
59 std::string model_name() const override { return "OneEqKsgsM84"; }
60
63 const FieldState fstate, const DiffusionType /*unused*/) override;
64
66 void post_advance_work() override;
67
69 void update_alphaeff(Field& alphaeff) override;
70
72 void update_scalar_diff(Field& deff, const std::string& name) override;
73
75 void parse_model_coeffs() override;
76
79
80private:
82
84 amrex::Vector<amrex::Real> m_gravity{0.0_rt, 0.0_rt, -9.81_rt};
85
87 bool m_hybrid_rl{false};
89};
90
98template <typename Transport>
99class OneEqKsgsS94 : public OneEqKsgs<Transport>
100{
101public:
102 static std::string identifier()
103 {
104 return "OneEqKsgsS94-" + Transport::identifier();
105 }
106
107 explicit OneEqKsgsS94(CFDSim& sim);
108
109 ~OneEqKsgsS94() override;
110
111 std::string model_name() const override { return "OneEqKsgsS94"; }
112
115 const FieldState fstate,
116 const DiffusionType diff_type /*unused*/) override;
117
119 void post_advance_work() override {}
120
122 void update_scalar_diff(Field& deff, const std::string& name) override;
123
125 void parse_model_coeffs() override;
126
129};
130
131} // namespace amr_wind::turbulence
132
133#endif /* ONEEQKSGS_H */
Definition CFDSim.H:54
Definition Field.H:116
Field & m_shear_prod
Definition OneEqKsgs.H:27
Field & m_dissip
Definition OneEqKsgs.H:29
amrex::Real m_Ceps
Definition OneEqKsgs.H:36
Field & m_turb_lscale
Definition OneEqKsgs.H:26
OneEqKsgs(CFDSim &sim)
Definition OneEqKsgs.cpp:19
Field & m_rho
Definition OneEqKsgs.H:30
amrex::Real m_Ce
Turbulence constant.
Definition OneEqKsgs.H:35
Field & m_vel
Definition OneEqKsgs.H:24
Field & m_buoy_prod
Definition OneEqKsgs.H:28
Field * m_tke
Definition OneEqKsgs.H:32
amrex::Vector< amrex::Real > m_gravity
Gravity vector (m/s^2)
Definition OneEqKsgs.H:84
void update_turbulent_viscosity(const FieldState fstate, const DiffusionType) override
Update the turbulent viscosity field.
Definition OneEqKsgs.cpp:91
bool m_hybrid_rl
Hybrid RANS-LES with Nalu-wind.
Definition OneEqKsgs.H:87
static std::string identifier()
Definition OneEqKsgs.H:50
Field * m_sdr
Definition OneEqKsgs.H:88
OneEqKsgsM84(CFDSim &sim)
Definition OneEqKsgs.cpp:37
void post_advance_work() override
Do any post advance work.
Definition OneEqKsgs.cpp:226
void parse_model_coeffs() override
Parse turbulence model coefficients.
Definition OneEqKsgs.cpp:73
void update_scalar_diff(Field &deff, const std::string &name) override
Update the effective scalar diffusivity field.
Definition OneEqKsgs.cpp:207
void update_alphaeff(Field &alphaeff) override
Update the effective thermal diffusivity field.
Definition OneEqKsgs.cpp:168
std::string model_name() const override
String representation of this turbulence model for I/O.
Definition OneEqKsgs.H:59
TurbulenceModel::CoeffsDictType model_coeffs() const override
Return turbulence model coefficients.
Definition OneEqKsgs.cpp:82
Field & m_temperature
Definition OneEqKsgs.H:81
void post_advance_work() override
No post advance work for this model.
Definition OneEqKsgs.H:119
void update_turbulent_viscosity(const FieldState fstate, const DiffusionType diff_type) override
Update the turbulent viscosity field.
Definition OneEqKsgs.cpp:291
void update_scalar_diff(Field &deff, const std::string &name) override
Update the effective scalar diffusivity field.
Definition OneEqKsgs.cpp:301
TurbulenceModel::CoeffsDictType model_coeffs() const override
Return turbulence model coefficients.
Definition OneEqKsgs.cpp:285
std::string model_name() const override
String representation of this turbulence model for I/O.
Definition OneEqKsgs.H:111
OneEqKsgsS94(CFDSim &sim)
Definition OneEqKsgs.cpp:266
void parse_model_coeffs() override
Parse turbulence model coefficients.
Definition OneEqKsgs.cpp:277
static std::string identifier()
Definition OneEqKsgs.H:102
TurbModelBase(CFDSim &sim)
Definition TurbModelBase.H:101
Field & alphaeff() override
Return the effective thermal diffusivity field.
Definition TurbModel.H:53
std::unordered_map< std::string, amrex::Real > CoeffsDictType
Default identifier used by factor methods.
Definition TurbulenceModel.H:35
FieldState
Definition FieldDescTypes.H:14
DiffusionType
Definition incflo_enums.H:4
Definition CFDSim.H:30