/home/runner/work/kynema-sgf/kynema-sgf/src/wind_energy/ABLMesoscaleInput.H Source File

Kynema-SGF API: /home/runner/work/kynema-sgf/kynema-sgf/src/wind_energy/ABLMesoscaleInput.H Source File
Kynema-SGF API v0.1.0
CFD solver for wind plant simulations
Loading...
Searching...
No Matches
ABLMesoscaleInput.H
Go to the documentation of this file.
1#ifndef ABLMESOSCALEINPUT_H
2#define ABLMESOSCALEINPUT_H
3
4#include <string>
5#include "AMReX_REAL.H"
6#include "AMReX_Vector.H"
7
8namespace kynema_sgf {
9
11{
12
13public:
14 ABLMesoscaleInput(std::string ncfile, std::string var_prefix = "");
15
16 ~ABLMesoscaleInput() = default;
17
18 [[nodiscard]] const amrex::Vector<amrex::Real>& meso_heights() const
19 {
20 return m_height;
21 }
22
23 [[nodiscard]] const amrex::Vector<amrex::Real>& meso_times() const
24 {
25 return m_time;
26 }
27
28 [[nodiscard]] const amrex::Vector<amrex::Real>& meso_u() const
29 {
30 return m_u;
31 }
32
33 [[nodiscard]] const amrex::Vector<amrex::Real>& meso_v() const
34 {
35 return m_v;
36 }
37
38 [[nodiscard]] const amrex::Vector<amrex::Real>& meso_temp() const
39 {
40 return m_temp;
41 }
42
43 [[nodiscard]] const amrex::Vector<amrex::Real>& meso_tflux() const
44 {
45 return m_tflux;
46 }
47
48 [[nodiscard]] const amrex::Vector<amrex::Real>&
50 {
52 }
53
54 [[nodiscard]] bool is_tendency_forcing() const { return m_abl_tendency; }
55
56 [[nodiscard]] int nheights() const { return m_nheight; }
57 [[nodiscard]] int times() const { return m_ntime; }
58
59private:
60 std::string m_filename;
61 std::string m_var_prefix; // to support legacy WRF meso input files
62
63 amrex::Vector<amrex::Real> m_height;
64 amrex::Vector<amrex::Real> m_time;
65
66 amrex::Vector<amrex::Real> m_u;
67 amrex::Vector<amrex::Real> m_v;
68 amrex::Vector<amrex::Real> m_temp;
69 amrex::Vector<amrex::Real> m_tflux;
70
71 // possible unexpected behaviors, as described in
72 // ec5eb95c6ca853ce0fea8488e3f2515a2d6374e7
73 //
74 // See also:
75 // - wind_energy/ABLMesoscaleInput.cpp
76 // - equation_systems/icns/source_terms/ABLMesoForcingMom.cpp
77 // - equation_systems/temperature/source_terms/ABLMesoForcingTemp.cpp
78 //
79 // workaround is to not try to read in and update this transition height
80 // variable on the fly
81 amrex::Vector<amrex::Real> m_transition_height;
82
85 bool m_abl_tendency{false};
86};
87
88} // namespace kynema_sgf
89
90#endif
int m_nheight
Definition ABLMesoscaleInput.H:83
const amrex::Vector< amrex::Real > & meso_times() const
Definition ABLMesoscaleInput.H:23
const amrex::Vector< amrex::Real > & meso_transition_height() const
Definition ABLMesoscaleInput.H:49
amrex::Vector< amrex::Real > m_temp
Definition ABLMesoscaleInput.H:68
const amrex::Vector< amrex::Real > & meso_temp() const
Definition ABLMesoscaleInput.H:38
int times() const
Definition ABLMesoscaleInput.H:57
std::string m_var_prefix
Definition ABLMesoscaleInput.H:61
amrex::Vector< amrex::Real > m_u
Definition ABLMesoscaleInput.H:66
bool m_abl_tendency
Definition ABLMesoscaleInput.H:85
amrex::Vector< amrex::Real > m_v
Definition ABLMesoscaleInput.H:67
std::string m_filename
Definition ABLMesoscaleInput.H:60
amrex::Vector< amrex::Real > m_tflux
Definition ABLMesoscaleInput.H:69
const amrex::Vector< amrex::Real > & meso_v() const
Definition ABLMesoscaleInput.H:33
int nheights() const
Definition ABLMesoscaleInput.H:56
ABLMesoscaleInput(std::string ncfile, std::string var_prefix="")
Definition ABLMesoscaleInput.cpp:9
amrex::Vector< amrex::Real > m_time
Definition ABLMesoscaleInput.H:64
const amrex::Vector< amrex::Real > & meso_tflux() const
Definition ABLMesoscaleInput.H:43
const amrex::Vector< amrex::Real > & meso_u() const
Definition ABLMesoscaleInput.H:28
const amrex::Vector< amrex::Real > & meso_heights() const
Definition ABLMesoscaleInput.H:18
int m_ntime
Definition ABLMesoscaleInput.H:84
bool is_tendency_forcing() const
Definition ABLMesoscaleInput.H:54
amrex::Vector< amrex::Real > m_height
Definition ABLMesoscaleInput.H:63
amrex::Vector< amrex::Real > m_transition_height
Definition ABLMesoscaleInput.H:81
This test case is intended as an evaluation of the momentum advection scheme.
Definition BCInterface.cpp:12