/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>
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 VelPlaneAveraging&
38 vel_profile_coarse() const = 0;
39 [[nodiscard]] virtual const VelPlaneAveragingFine& vel_profile() const = 0;
40
42 [[nodiscard]] virtual const FieldPlaneAveraging& theta_profile() const = 0;
43 [[nodiscard]] virtual const FieldPlaneAveragingFine&
44 theta_profile_fine() const = 0;
45
47 virtual void post_init_actions() = 0;
48
50 virtual void pre_advance_work() = 0;
51
53 virtual void post_advance_work() = 0;
54
55 virtual void
57
58 virtual void
60
62 pde::temperature::ABLMesoForcingTemp* forcing) const = 0;
63};
64
65} // namespace kynema_sgf
66
67#endif /* ABLSTATSBASE_H */
virtual const VelPlaneAveragingFine & vel_profile() const =0
~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 const FieldPlaneAveragingFine & theta_profile_fine() const =0
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 void register_forcing_term(pde::icns::ABLForcing *forcing) const =0
virtual void pre_advance_work()=0
Perform actions at the beginning of a timestep.
static std::string base_identifier()
Definition ABLStatsBase.H:27
Definition FieldPlaneAveragingFine.H:144
Definition FieldPlaneAveraging.H:146
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:139
FPlaneAveragingFine< Field > FieldPlaneAveragingFine
Definition FieldPlaneAveragingFine.H:137
ABLStatsMode
Definition ABLStatsBase.H:18
@ prescribed
! Computed using planar averages
Definition ABLStatsBase.H:20
@ computed
Definition ABLStatsBase.H:19