/home/runner/work/kynema-sgf/kynema-sgf/src/equation_systems/icns/source_terms/ABLMeanBoussinesq.H Source File

Kynema-SGF API: /home/runner/work/kynema-sgf/kynema-sgf/src/equation_systems/icns/source_terms/ABLMeanBoussinesq.H Source File
Kynema-SGF API v0.1.0
CFD solver for wind plant simulations
Loading...
Searching...
No Matches
ABLMeanBoussinesq.H
Go to the documentation of this file.
1#ifndef ABLMEANBOUSSINESQ_H
2#define ABLMEANBOUSSINESQ_H
3
8#include "AMReX_REAL.H"
9
10using namespace amrex::literals;
11
12namespace kynema_sgf::pde::icns {
13
21class ABLMeanBoussinesq : public MomentumSource::Register<ABLMeanBoussinesq>
22{
23public:
24 static std::string identifier() { return "ABLMeanBoussinesq"; }
25
26 explicit ABLMeanBoussinesq(const CFDSim& sim);
27
29
30 void operator()(
31 int lev, FieldState fstate, amrex::MultiFab& src_term) const override;
32
33 void mean_temperature_init(const FieldPlaneAveraging& /*tavg*/);
34
35 void mean_temperature_update(const FieldPlaneAveraging& /*tavg*/);
36
37private:
38 const amrex::AmrCore& m_mesh;
40
41 amrex::Vector<amrex::Real> m_gravity{0.0_rt, 0.0_rt, -9.81_rt};
42
43 amrex::Gpu::DeviceVector<amrex::Real> m_theta_ht;
44 amrex::Gpu::DeviceVector<amrex::Real> m_theta_vals;
45
48
49 int m_axis{2};
50
51 bool m_const_profile{false};
52
53 mutable std::unique_ptr<ScratchField> m_beta_scratch;
54 mutable std::unique_ptr<ScratchField> m_ref_theta_scratch;
55
57 void read_temperature_profile(const std::string& profile_file_name);
58};
59} // namespace kynema_sgf::pde::icns
60
61#endif /* ABLMEANBOUSSINESQ_H */
Definition CFDSim.H:55
Definition FieldRepo.H:86
void read_temperature_profile(const std::string &profile_file_name)
Read a temperature profile from a text file.
Definition ABLMeanBoussinesq.cpp:157
void operator()(int lev, FieldState fstate, amrex::MultiFab &src_term) const override
Definition ABLMeanBoussinesq.cpp:86
int m_axis
Definition ABLMeanBoussinesq.H:49
bool m_const_profile
Definition ABLMeanBoussinesq.H:51
amrex::Gpu::DeviceVector< amrex::Real > m_theta_ht
Definition ABLMeanBoussinesq.H:43
void mean_temperature_init(const FieldPlaneAveraging &)
Definition ABLMeanBoussinesq.cpp:128
const transport::TransportModel & m_transport
Transport model.
Definition ABLMeanBoussinesq.H:47
const amrex::AmrCore & m_mesh
Definition ABLMeanBoussinesq.H:38
ABLMeanBoussinesq(const CFDSim &sim)
Definition ABLMeanBoussinesq.cpp:15
std::unique_ptr< ScratchField > m_beta_scratch
Definition ABLMeanBoussinesq.H:53
std::unique_ptr< ScratchField > m_ref_theta_scratch
Definition ABLMeanBoussinesq.H:54
amrex::Vector< amrex::Real > m_gravity
Definition ABLMeanBoussinesq.H:41
FieldRepo & m_repo
Definition ABLMeanBoussinesq.H:39
static std::string identifier()
Definition ABLMeanBoussinesq.H:24
amrex::Gpu::DeviceVector< amrex::Real > m_theta_vals
Definition ABLMeanBoussinesq.H:44
void mean_temperature_update(const FieldPlaneAveraging &)
Definition ABLMeanBoussinesq.cpp:147
Definition TransportModel.H:32
FieldState
Definition FieldDescTypes.H:16
Definition ABLForcing.cpp:14
FPlaneAveraging< Field > FieldPlaneAveraging
Definition FieldPlaneAveraging.H:143