/home/runner/work/kynema-sgf/kynema-sgf/src/boundary_conditions/field_boundary_fill/Flather.H Source File

Kynema-SGF API: /home/runner/work/kynema-sgf/kynema-sgf/src/boundary_conditions/field_boundary_fill/Flather.H Source File
Kynema-SGF API v0.1.0
CFD solver for wind plant simulations
Loading...
Searching...
No Matches
Flather.H
Go to the documentation of this file.
1#ifndef FLATHER_H
2#define FLATHER_H
3
4#include "src/core/Field.H"
5#include "src/core/IntField.H"
6#include "src/CFDSim.H"
10#include "AMReX_REAL.H"
11#include <limits>
12
13using namespace amrex::literals;
14
15namespace kynema_sgf {
16
22class Flather : public FieldBoundary::Register<Flather>
23{
24public:
25 static std::string identifier() { return "Flather"; }
26
27 explicit Flather(CFDSim& sim);
28
29 void post_init_actions() override;
30
31 void pre_advance_work() override;
32
33 void post_advance_work() override {}
34
35 void set_velocity(
36 int lev,
37 amrex::Real time,
38 const Field& fld,
39 amrex::MultiFab& mfab,
40 int dcomp = 0,
41 int orig_comp = 0) const override;
42
44 const int lev,
45 const FieldState fstate,
46 const bool use_mac_fields = false)
47 {
48 compute_boundary_z_averages(lev, fstate, use_mac_fields);
49 }
50
52 int current_level,
53 int idir,
54 int phase_switch,
55 bool is_low,
56 MultiLevelVector& out_uvec,
57 MultiLevelVector& out_hvec,
58 bool sample_boundary,
59 FieldState fstate,
60 bool use_mac_fields = false) const;
61
62private:
65 int lev, FieldState fstate, bool use_mac_fields = false);
66
67 const CFDSim& m_sim;
70 const amrex::AmrCore& m_mesh;
72 const Field& m_u_mac;
73 const Field& m_v_mac;
74 const Field& m_vof;
75 const IntField* m_terrain_blank{nullptr};
76 amrex::Vector<amrex::Real> m_gravity{0.0_rt, 0.0_rt, -9.81_rt};
77 amrex::Real m_velocity_scale_factor_max{2.0_rt};
78 amrex::Real m_velocity_scale_factor_min{0.25_rt};
79
100};
101
102} // namespace kynema_sgf
103
104#endif /* FLATHER_H */
Definition CFDSim.H:55
Definition Field.H:112
Definition FieldRepo.H:86
MultiLevelVector m_ylo_bnd_h
Definition Flather.H:98
amrex::Real m_velocity_scale_factor_max
Definition Flather.H:77
const kynema_sgf::SimTime & m_time
Definition Flather.H:68
MultiLevelVector m_yhi_uhmix
Definition Flather.H:87
MultiLevelVector m_xhi_uhliq
Definition Flather.H:81
void update_flather_variables(const int lev, const FieldState fstate, const bool use_mac_fields=false)
Definition Flather.H:43
amrex::Vector< amrex::Real > m_gravity
Definition Flather.H:76
MultiLevelVector m_yhi_uhliq
Definition Flather.H:83
MultiLevelVector m_ylo_bnd_uh
Definition Flather.H:90
void accumulate_boundary(int current_level, int idir, int phase_switch, bool is_low, MultiLevelVector &out_uvec, MultiLevelVector &out_hvec, bool sample_boundary, FieldState fstate, bool use_mac_fields=false) const
Definition Flather.cpp:78
MultiLevelVector m_xlo_bnd_h
Definition Flather.H:96
MultiLevelVector m_ylo_h
Definition Flather.H:94
Field & m_velocity
Definition Flather.H:71
MultiLevelVector m_yhi_bnd_uh
Definition Flather.H:91
const amrex::AmrCore & m_mesh
Definition Flather.H:70
const Field & m_v_mac
Definition Flather.H:73
MultiLevelVector m_xhi_bnd_h
Definition Flather.H:97
const Field & m_u_mac
Definition Flather.H:72
MultiLevelVector m_xhi_h
Definition Flather.H:93
const FieldRepo & m_repo
Definition Flather.H:69
MultiLevelVector m_ylo_uhmix
Definition Flather.H:86
MultiLevelVector m_yhi_h
Definition Flather.H:95
MultiLevelVector m_xlo_h
Definition Flather.H:92
MultiLevelVector m_xlo_uhliq
Definition Flather.H:80
MultiLevelVector m_xhi_uhmix
Definition Flather.H:85
amrex::Real m_velocity_scale_factor_min
Definition Flather.H:78
void compute_boundary_z_averages(int lev, FieldState fstate, bool use_mac_fields=false)
Definition Flather.cpp:299
MultiLevelVector m_xlo_bnd_uh
Definition Flather.H:88
void set_velocity(int lev, amrex::Real time, const Field &fld, amrex::MultiFab &mfab, int dcomp=0, int orig_comp=0) const override
Definition Flather.cpp:351
static std::string identifier()
Definition Flather.H:25
void post_advance_work() override
Definition Flather.H:33
MultiLevelVector m_xhi_bnd_uh
Definition Flather.H:89
MultiLevelVector m_ylo_uhliq
Definition Flather.H:82
MultiLevelVector m_yhi_bnd_h
Definition Flather.H:99
void compute_internal_z_averages()
Definition Flather.cpp:233
void post_init_actions() override
Definition Flather.cpp:70
const CFDSim & m_sim
Definition Flather.H:67
MultiLevelVector m_xlo_uhmix
Definition Flather.H:84
const IntField * m_terrain_blank
Definition Flather.H:75
Flather(CFDSim &sim)
Definition Flather.cpp:18
const Field & m_vof
Definition Flather.H:74
void pre_advance_work() override
Definition Flather.cpp:76
Definition IntField.H:20
Definition MultiLevelVector.H:23
Definition SimTime.H:34
FieldState
Definition FieldDescTypes.H:16
@ CELL
Cell-centered (default)
Definition FieldDescTypes.H:30
This test case is intended as an evaluation of the momentum advection scheme.
Definition BCInterface.cpp:10