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

Kynema-SGF API: /home/runner/work/kynema-sgf/kynema-sgf/src/wind_energy/ABLStatsBase.H Source File
Kynema-SGF API v0.1.0
CFD solver for wind plant simulations
Loading...
Searching...
No Matches
ABLStatsBase.H
Go to the documentation of this file.
1#ifndef ABLSTATSBASE_H
2#define ABLSTATSBASE_H
3
4#include <cstdint>
5#include "src/core/Factory.H"
6#include "src/CFDSim.H"
8
9namespace kynema_sgf {
10namespace pde::icns {
11class ABLForcing;
13} // namespace pde::icns
14namespace pde::temperature {
16}
17
18enum class ABLStatsMode : std::uint8_t {
21};
22
24 : public Factory<ABLStatsBase, CFDSim&, ABLWallFunction&, int, int>
25{
26public:
27 static std::string base_identifier() { return "ABLStatsBase"; }
28
29 ABLStatsBase() = default;
30
31 ~ABLStatsBase() override = default;
32
34 [[nodiscard]] virtual ABLStatsMode abl_mode() const = 0;
35
37 [[nodiscard]] virtual const int& max_level() const = 0;
38
40 [[nodiscard]] virtual const VelPlaneAveraging&
41 vel_profile_coarse() const = 0;
42 [[nodiscard]] virtual const VelPlaneAveraging& vel_profile() const = 0;
43
45 [[nodiscard]] virtual const FieldPlaneAveraging& theta_profile() const = 0;
46 [[nodiscard]] virtual const FieldPlaneAveraging&
47 theta_profile_fine() const = 0;
48
50 virtual void post_init_actions() = 0;
51
53 virtual void pre_advance_work() = 0;
54
56 virtual void post_advance_work() = 0;
57
58 virtual void
60
61 virtual void
63
65 pde::temperature::ABLMesoForcingTemp* forcing) const = 0;
66};
67
68} // namespace kynema_sgf
69
70#endif /* ABLSTATSBASE_H */
~ABLStatsBase() override=default
virtual ABLStatsMode abl_mode() const =0
Flag indicating ABL simulation mode.
virtual void post_advance_work()=0
Perform actions at the end of a timestep.
virtual void post_init_actions()=0
Perform initialization actions after the mesh has been created.
virtual void register_meso_temp_forcing(pde::temperature::ABLMesoForcingTemp *forcing) const =0
virtual void register_meso_mom_forcing(pde::icns::ABLMesoForcingMom *forcing) const =0
virtual const VelPlaneAveraging & vel_profile_coarse() const =0
Interpolating object for vertical velocity profile.
virtual const FieldPlaneAveraging & theta_profile() const =0
Interpolating object for vertical temperature profile.
virtual const int & max_level() const =0
Maximum level considered for "coarse" planar averages.
virtual const VelPlaneAveraging & vel_profile() const =0
virtual void register_forcing_term(pde::icns::ABLForcing *forcing) const =0
virtual void pre_advance_work()=0
Perform actions at the beginning of a timestep.
virtual const FieldPlaneAveraging & theta_profile_fine() const =0
static std::string base_identifier()
Definition ABLStatsBase.H:27
Definition FieldPlaneAveraging.H:150
Definition ABLForcing.H:20
Definition ABLMesoForcingMom.H:26
Definition ABLMesoForcingTemp.H:19
Definition ABLForcing.cpp:14
Definition ABLMesoForcingTemp.cpp:15
This test case is intended as an evaluation of the momentum advection scheme.
Definition BCInterface.cpp:10
FPlaneAveraging< Field > FieldPlaneAveraging
Definition FieldPlaneAveraging.H:143
ABLStatsMode
Definition ABLStatsBase.H:18
@ prescribed
! Computed using planar averages
Definition ABLStatsBase.H:20
@ computed
Definition ABLStatsBase.H:19