/home/runner/work/kynema-sgf/kynema-sgf/src/utilities/tagging/GeometryRefinement.H Source File

Kynema-SGF API: /home/runner/work/kynema-sgf/kynema-sgf/src/utilities/tagging/GeometryRefinement.H Source File
Kynema-SGF API v0.1.0
CFD solver for wind plant simulations
Loading...
Searching...
No Matches
GeometryRefinement.H
Go to the documentation of this file.
1#ifndef GEOMETRYREFINEMENT_H
2#define GEOMETRYREFINEMENT_H
3
6
7namespace kynema_sgf {
8namespace tagging {
9
14 : public Factory<GeometryType, const CFDSim&, const std::string&>
15{
16public:
17 static std::string base_identifier() { return "GeometryType"; }
18
19 GeometryType() = default;
20
21 ~GeometryType() override = default;
22
23 virtual void operator()(
24 const amrex::Box&,
25 const amrex::Geometry& geom,
26 const amrex::Array4<amrex::TagBox::TagType>& tags,
27 const tagging::TaggingOperator& op) const = 0;
28
29 [[nodiscard]] virtual const amrex::RealBox& bound_box() const = 0;
30};
31
32} // namespace tagging
33
38 : public RefinementCriteria::Register<GeometryRefinement>
39{
40public:
41 static std::string identifier() { return "GeometryRefinement"; }
42
43 explicit GeometryRefinement(const CFDSim& /*sim*/);
44
45 ~GeometryRefinement() override = default;
46
48 void initialize(const std::string& key) override;
49
50 void
51 operator()(int level, amrex::TagBoxArray& tags, amrex::Real time, int ngrow)
52 override;
53
54private:
55 const CFDSim& m_sim;
56
57 amrex::Vector<std::unique_ptr<tagging::GeometryType>> m_geom_refiners;
58
62 int m_set_level{-1};
63
64 // If the user hasn't specified a particular level, act on a range of levels
66 int m_max_level{32};
67};
68
69} // namespace kynema_sgf
70
71#endif /* GEOMETRYREFINEMENT_H */
Definition CFDSim.H:55
void operator()(int level, amrex::TagBoxArray &tags, amrex::Real time, int ngrow) override
Definition GeometryRefinement.cpp:34
~GeometryRefinement() override=default
int m_set_level
Definition GeometryRefinement.H:62
amrex::Vector< std::unique_ptr< tagging::GeometryType > > m_geom_refiners
Definition GeometryRefinement.H:57
static std::string identifier()
Definition GeometryRefinement.H:41
GeometryRefinement(const CFDSim &)
Definition GeometryRefinement.cpp:9
const CFDSim & m_sim
Definition GeometryRefinement.H:55
void initialize(const std::string &key) override
Read input file and initialize boxarray used to refine each level.
Definition GeometryRefinement.cpp:13
int m_max_level
Definition GeometryRefinement.H:66
int m_min_level
Definition GeometryRefinement.H:65
static std::string base_identifier()
Definition GeometryRefinement.H:17
virtual const amrex::RealBox & bound_box() const =0
virtual void operator()(const amrex::Box &, const amrex::Geometry &geom, const amrex::Array4< amrex::TagBox::TagType > &tags, const tagging::TaggingOperator &op) const =0
~GeometryType() override=default
Definition BoxRefiner.cpp:9
TaggingOperator
Definition RefinementCriteria.H:24
This test case is intended as an evaluation of the momentum advection scheme.
Definition BCInterface.cpp:10