/home/runner/work/kynema-sgf/kynema-sgf/src/utilities/subvolume/SubvolumeBase.H Source File

Kynema-SGF API: /home/runner/work/kynema-sgf/kynema-sgf/src/utilities/subvolume/SubvolumeBase.H Source File
Kynema-SGF API v0.1.0
CFD solver for wind plant simulations
Loading...
Searching...
No Matches
SubvolumeBase.H
Go to the documentation of this file.
1#ifndef SUBVOLUMEBASE_H
2#define SUBVOLUMEBASE_H
3
4#include <AMReX_Geometry.H>
5#include <AMReX_RealVect.H>
6#include "src/core/Factory.H"
7
8namespace kynema_sgf {
9
10class CFDSim;
11
12namespace subvolume {
13
21class SubvolumeBase : public Factory<SubvolumeBase, CFDSim&>
22{
23public:
24 static std::string base_identifier() { return "SubvolumeBase"; }
25
26 ~SubvolumeBase() override = default;
27
29 [[nodiscard]] virtual std::string label() const = 0;
30 virtual std::string& label() = 0;
31
33 [[nodiscard]] virtual std::string subvolumetype() const = 0;
34
36 virtual void initialize(const std::string& key) = 0;
37
39 virtual void evaluate_inputs() = 0;
40
42 virtual void post_init_actions() { evaluate_inputs(); }
43
46
48 [[nodiscard]] virtual int lev() const { return 0; }
49
51 [[nodiscard]] virtual amrex::BoxArray box_array() const
52 {
53 return amrex::BoxArray(0);
54 }
55
57 [[nodiscard]] virtual amrex::BoxArray source_box_array() const
58 {
59 return box_array();
60 }
61
63 [[nodiscard]] virtual amrex::IntVect sampling_stride() const
64 {
65 return amrex::IntVect{1, 1, 1};
66 }
67
69 [[nodiscard]] virtual amrex::Geometry output_geom() const
70 {
71 return amrex::Geometry{};
72 }
73};
74
75} // namespace subvolume
76} // namespace kynema_sgf
77
78#endif /* SUBVOLUMEBASE_H */
Definition CFDSim.H:55
Definition SubvolumeBase.H:22
virtual std::string subvolumetype() const =0
Class name of this sampler (e.g., Rectangular)
virtual int lev() const
Level that the subvolume corresponds to.
Definition SubvolumeBase.H:48
virtual void evaluate_inputs()=0
Check inputs and prepare for output.
virtual amrex::BoxArray box_array() const
BoxArray that the subvolume corresponds to.
Definition SubvolumeBase.H:51
virtual void post_init_actions()
Run actions after initialize.
Definition SubvolumeBase.H:42
virtual amrex::IntVect sampling_stride() const
Integer sampling stride in each direction from source cells.
Definition SubvolumeBase.H:63
virtual std::string label() const =0
Name used to refer to this sampler (e.g., myline1)
virtual std::string & label()=0
virtual amrex::Geometry output_geom() const
Output geometry for the single-level plotfile.
Definition SubvolumeBase.H:69
virtual void post_regrid_actions()
Run actions after regrid.
Definition SubvolumeBase.H:45
static std::string base_identifier()
Definition SubvolumeBase.H:24
virtual amrex::BoxArray source_box_array() const
Source BoxArray used to gather data before downsampling.
Definition SubvolumeBase.H:57
virtual void initialize(const std::string &key)=0
Read inputs.
Definition RectangularSubvolume.cpp:9
This test case is intended as an evaluation of the momentum advection scheme.
Definition BCInterface.cpp:10