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

Kynema-SGF API: /home/runner/work/kynema-sgf/kynema-sgf/src/turbulence/LES/Kosovic.H Source File
Kynema-SGF API v0.1.0
CFD solver for wind plant simulations
Loading...
Searching...
No Matches
Kosovic.H
Go to the documentation of this file.
1#ifndef KOSOVIC_H
2#define KOSOVIC_H
3
4#include <string>
8#include "AMReX_REAL.H"
9
10using namespace amrex::literals;
11
12namespace kynema_sgf::turbulence {
13
17template <typename Transport>
18class Kosovic : public TurbModelBase<Transport>
19{
20public:
21 static std::string identifier()
22 {
23 return "Kosovic-" + Transport::identifier();
24 }
25
26 explicit Kosovic(CFDSim& sim);
27
29 [[nodiscard]] std::string model_name() const override { return "Kosovic"; }
30
33 FieldState fstate, DiffusionType /*unused*/) override;
34
36 void post_advance_work() override {}
37
39 void update_alphaeff(Field& alphaeff) override;
40
42 void parse_model_coeffs() override;
43
45 [[nodiscard]] TurbulenceModel::CoeffsDictType model_coeffs() const override;
46
47private:
49 // Ref: Mirocha et. al "Implementation of a Nonlinear Subfilter Turbulence
50 // Stress Model for Large-Eddy Simulation in the Advanced Research WRF
51 // Model"
52 // , MWR 2012.
53 amrex::Real m_Cb{0.36_rt};
54 amrex::Real m_Cs{0.135_rt};
55 amrex::Real m_C1{2.1_rt};
56 amrex::Real m_C2{2.1_rt};
57 amrex::Real m_Sk{0.5_rt};
58 bool m_surfaceRANS{false};
59 amrex::Real m_surfaceFactor{0.0_rt};
60 amrex::Real m_switchLoc{24.0_rt};
61 amrex::Real m_surfaceRANSExp{2.0_rt};
63 amrex::Real m_muCoeff{3.0_rt};
64 bool m_writeTerms{false};
65 const Field& m_vel;
66 const Field& m_rho;
67 const Field& m_theta;
70 std::string m_wall_het_model{"none"};
72 amrex::Real m_kappa{0.41_rt};
73 amrex::Real m_gamma_m{5.0_rt};
74 amrex::Real m_beta_m{16.0_rt};
75 amrex::Real m_surface_roughness_z0{0.1_rt};
76 amrex::Vector<amrex::Real> m_gravity{0.0_rt, 0.0_rt, -9.81_rt};
77};
78
79} // namespace kynema_sgf::turbulence
80
81#endif /* SMAGORINSKY_H */
Definition CFDSim.H:55
Definition Field.H:112
Kosovic(CFDSim &sim)
Definition Kosovic.cpp:21
static std::string identifier()
Definition Kosovic.H:21
amrex::Real m_muCoeff
Definition Kosovic.H:63
const Field & m_vel
Definition Kosovic.H:65
Field & m_Nij
Definition Kosovic.H:68
std::string model_name() const override
Model name for debugging purposes.
Definition Kosovic.H:29
amrex::Real m_gamma_m
Definition Kosovic.H:73
amrex::Real m_C2
Definition Kosovic.H:56
TurbulenceModel::CoeffsDictType model_coeffs() const override
Return model coefficients dictionary.
Definition Kosovic.cpp:282
amrex::Real m_Cs
Definition Kosovic.H:54
amrex::Real m_surfaceFactor
Definition Kosovic.H:59
amrex::Real m_surface_roughness_z0
Definition Kosovic.H:75
Field & m_divNij
Definition Kosovic.H:69
amrex::Real m_LESTurnOff
Definition Kosovic.H:62
amrex::Real m_kappa
Definition Kosovic.H:72
bool m_writeTerms
Definition Kosovic.H:64
amrex::Real m_surfaceRANSExp
Definition Kosovic.H:61
const Field & m_rho
Definition Kosovic.H:66
void parse_model_coeffs() override
Parse turbulence model coefficients.
Definition Kosovic.cpp:274
amrex::Real m_beta_m
Definition Kosovic.H:74
amrex::Vector< amrex::Real > m_gravity
Definition Kosovic.H:76
void update_turbulent_viscosity(FieldState fstate, DiffusionType) override
Update the turbulent viscosity field.
Definition Kosovic.cpp:64
void update_alphaeff(Field &alphaeff) override
Update the effective thermal diffusivity field.
Definition Kosovic.cpp:249
bool m_surfaceRANS
Definition Kosovic.H:58
void post_advance_work() override
No post advance work for this model.
Definition Kosovic.H:36
amrex::Real m_Cb
Kosovic coefficient (default value set for ABL simulations)
Definition Kosovic.H:53
amrex::Real m_Sk
Definition Kosovic.H:57
amrex::Real m_C1
Definition Kosovic.H:55
amrex::Real m_monin_obukhov_length
Definition Kosovic.H:71
const Field & m_theta
Definition Kosovic.H:67
amrex::Real m_switchLoc
Definition Kosovic.H:60
std::string m_wall_het_model
Definition Kosovic.H:70
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
static constexpr amrex::Real LARGE_NUM
A large positive number.
Definition constants.H:29
Definition CFDSim.H:31