/home/runner/work/amr-wind/amr-wind/amr-wind/wind_energy/ABLMesoscaleInput.H Source File

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