/home/runner/work/kynema-sgf/kynema-sgf/src/turbulence/LES/OneEqKsgs.H Source File

Kynema-SGF API: /home/runner/work/kynema-sgf/kynema-sgf/src/turbulence/LES/OneEqKsgs.H Source File
Kynema-SGF 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>
7#include "AMReX_REAL.H"
8
9using namespace amrex::literals;
10
11namespace kynema_sgf::turbulence {
12
16template <typename Transport>
17class OneEqKsgs : public TurbModelBase<Transport>
18{
19public:
20 explicit OneEqKsgs(CFDSim& sim);
21
22 ~OneEqKsgs() override;
23
24protected:
26
32
33 Field* m_tke{nullptr};
34
36 amrex::Real m_Ce{0.1_rt};
37 amrex::Real m_Ceps{0.93_rt};
38};
39
47template <typename Transport>
48class OneEqKsgsM84 : public OneEqKsgs<Transport>
49{
50public:
51 static std::string identifier()
52 {
53 return "OneEqKsgsM84-" + Transport::identifier();
54 }
55
56 explicit OneEqKsgsM84(CFDSim& sim);
57
58 ~OneEqKsgsM84() override;
59
60 [[nodiscard]] std::string model_name() const override
61 {
62 return "OneEqKsgsM84";
63 }
64
67 FieldState fstate, DiffusionType /*unused*/) override;
68
70 void post_advance_work() override;
71
73 void post_init_actions() override;
74
76 void post_regrid_actions() override;
77
79 void update_alphaeff(Field& alphaeff) override;
80
82 void update_scalar_diff(Field& deff, const std::string& name) override;
83
85 void parse_model_coeffs() override;
86
88 [[nodiscard]] TurbulenceModel::CoeffsDictType model_coeffs() const override;
89
90private:
92
94 amrex::Vector<amrex::Real> m_gravity{0.0_rt, 0.0_rt, -9.81_rt};
95
97 bool m_hybrid_rl{false};
99
100 std::unique_ptr<ScratchField> m_gradT;
101};
102
110template <typename Transport>
111class OneEqKsgsS94 : public OneEqKsgs<Transport>
112{
113public:
114 static std::string identifier()
115 {
116 return "OneEqKsgsS94-" + Transport::identifier();
117 }
118
119 explicit OneEqKsgsS94(CFDSim& sim);
120
121 ~OneEqKsgsS94() override;
122
123 [[nodiscard]] std::string model_name() const override
124 {
125 return "OneEqKsgsS94";
126 }
127
130 FieldState fstate, DiffusionType diff_type /*unused*/) override;
131
133 void post_advance_work() override {}
134
136 void update_scalar_diff(Field& deff, const std::string& name) override;
137
139 void parse_model_coeffs() override;
140
142 [[nodiscard]] TurbulenceModel::CoeffsDictType model_coeffs() const override;
143};
144
145} // namespace kynema_sgf::turbulence
146
147#endif /* ONEEQKSGS_H */
Definition CFDSim.H:55
Definition Field.H:112
Field & m_buoy_prod
Definition OneEqKsgs.H:29
Field & m_shear_prod
Definition OneEqKsgs.H:28
OneEqKsgs(CFDSim &sim)
Definition OneEqKsgs.cpp:19
Field & m_turb_lscale
Definition OneEqKsgs.H:27
amrex::Real m_Ce
Turbulence constant.
Definition OneEqKsgs.H:36
Field & m_vel
Definition OneEqKsgs.H:25
Field * m_tke
Definition OneEqKsgs.H:33
Field & m_dissip
Definition OneEqKsgs.H:30
Field & m_rho
Definition OneEqKsgs.H:31
amrex::Real m_Ceps
Definition OneEqKsgs.H:37
amrex::Vector< amrex::Real > m_gravity
Gravity vector (m/s^2)
Definition OneEqKsgs.H:94
TurbulenceModel::CoeffsDictType model_coeffs() const override
Return turbulence model coefficients.
Definition OneEqKsgs.cpp:94
std::string model_name() const override
String representation of this turbulence model for I/O.
Definition OneEqKsgs.H:60
Field * m_sdr
Definition OneEqKsgs.H:98
bool m_hybrid_rl
Hybrid RANS-LES with Nalu-wind.
Definition OneEqKsgs.H:97
Field & m_temperature
Definition OneEqKsgs.H:91
void update_alphaeff(Field &alphaeff) override
Update the effective thermal diffusivity field.
Definition OneEqKsgs.cpp:179
void update_scalar_diff(Field &deff, const std::string &name) override
Update the effective scalar diffusivity field.
Definition OneEqKsgs.cpp:217
OneEqKsgsM84(CFDSim &sim)
Definition OneEqKsgs.cpp:37
void post_init_actions() override
Actions to perform post initialization.
Definition OneEqKsgs.cpp:73
static std::string identifier()
Definition OneEqKsgs.H:51
void post_advance_work() override
Do any post advance work.
Definition OneEqKsgs.cpp:236
void post_regrid_actions() override
Actions to perform post regrid.
Definition OneEqKsgs.cpp:79
void parse_model_coeffs() override
Parse turbulence model coefficients.
Definition OneEqKsgs.cpp:85
void update_turbulent_viscosity(FieldState fstate, DiffusionType) override
Update the turbulent viscosity field.
Definition OneEqKsgs.cpp:103
std::unique_ptr< ScratchField > m_gradT
Definition OneEqKsgs.H:100
TurbulenceModel::CoeffsDictType model_coeffs() const override
Return turbulence model coefficients.
Definition OneEqKsgs.cpp:294
void update_scalar_diff(Field &deff, const std::string &name) override
Update the effective scalar diffusivity field.
Definition OneEqKsgs.cpp:310
static std::string identifier()
Definition OneEqKsgs.H:114
void update_turbulent_viscosity(FieldState fstate, DiffusionType diff_type) override
Update the turbulent viscosity field.
Definition OneEqKsgs.cpp:300
void parse_model_coeffs() override
Parse turbulence model coefficients.
Definition OneEqKsgs.cpp:286
void post_advance_work() override
No post advance work for this model.
Definition OneEqKsgs.H:133
OneEqKsgsS94(CFDSim &sim)
Definition OneEqKsgs.cpp:275
std::string model_name() const override
String representation of this turbulence model for I/O.
Definition OneEqKsgs.H:123
TurbModelBase(CFDSim &sim)
Definition TurbModelBase.H:95
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:16
DiffusionType
Definition incflo_enums.H:6
Definition CFDSim.H:31