Flather Class Reference

Kynema-SGF API: kynema_sgf::Flather Class Reference
Kynema-SGF API v0.1.0
CFD solver for wind plant simulations
Loading...
Searching...
No Matches

#include <Flather.H>

Inheritance diagram for kynema_sgf::Flather:
[legend]
Collaboration diagram for kynema_sgf::Flather:
[legend]

Public Member Functions

 Flather (CFDSim &sim)
void post_init_actions () override
void pre_advance_work () override
void post_advance_work () override
void set_velocity (int lev, amrex::Real time, const Field &fld, amrex::MultiFab &mfab, int dcomp=0, int orig_comp=0) const override
void update_flather_variables (const int lev, const FieldState fstate, const bool use_mac_fields=false)
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

Static Public Member Functions

static std::string identifier ()

Private Member Functions

void compute_internal_z_averages ()
void compute_boundary_z_averages (int lev, FieldState fstate, bool use_mac_fields=false)

Private Attributes

const CFDSimm_sim
const kynema_sgf::SimTimem_time
const FieldRepom_repo
const amrex::AmrCore & m_mesh
Fieldm_velocity
const Fieldm_u_mac
const Fieldm_v_mac
const Fieldm_vof
const IntFieldm_terrain_blank {nullptr}
amrex::Vector< amrex::Real > m_gravity {0.0_rt, 0.0_rt, -9.81_rt}
amrex::Real m_velocity_scale_factor_max {2.0_rt}
amrex::Real m_velocity_scale_factor_min {0.25_rt}
MultiLevelVector m_xlo_uhliq {FieldLoc::CELL}
MultiLevelVector m_xhi_uhliq {FieldLoc::CELL}
MultiLevelVector m_ylo_uhliq {FieldLoc::CELL}
MultiLevelVector m_yhi_uhliq {FieldLoc::CELL}
MultiLevelVector m_xlo_uhmix {FieldLoc::CELL}
MultiLevelVector m_xhi_uhmix {FieldLoc::CELL}
MultiLevelVector m_ylo_uhmix {FieldLoc::CELL}
MultiLevelVector m_yhi_uhmix {FieldLoc::CELL}
MultiLevelVector m_xlo_bnd_uh {FieldLoc::CELL}
MultiLevelVector m_xhi_bnd_uh {FieldLoc::CELL}
MultiLevelVector m_ylo_bnd_uh {FieldLoc::CELL}
MultiLevelVector m_yhi_bnd_uh {FieldLoc::CELL}
MultiLevelVector m_xlo_h {FieldLoc::CELL}
MultiLevelVector m_xhi_h {FieldLoc::CELL}
MultiLevelVector m_ylo_h {FieldLoc::CELL}
MultiLevelVector m_yhi_h {FieldLoc::CELL}
MultiLevelVector m_xlo_bnd_h {FieldLoc::CELL}
MultiLevelVector m_xhi_bnd_h {FieldLoc::CELL}
MultiLevelVector m_ylo_bnd_h {FieldLoc::CELL}
MultiLevelVector m_yhi_bnd_h {FieldLoc::CELL}

Detailed Description

Flather-style open boundary for velocity

This boundary reads current boundary ghost-cell values and adjacent interior values, computes a blended target, and writes updated boundary values.

Constructor & Destructor Documentation

◆ Flather()

kynema_sgf::Flather::Flather ( CFDSim & sim)
explicit

Member Function Documentation

◆ accumulate_boundary()

void kynema_sgf::Flather::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

◆ compute_boundary_z_averages()

void kynema_sgf::Flather::compute_boundary_z_averages ( int lev,
FieldState fstate,
bool use_mac_fields = false )
private

◆ compute_internal_z_averages()

void kynema_sgf::Flather::compute_internal_z_averages ( )
private

◆ identifier()

std::string kynema_sgf::Flather::identifier ( )
inlinestatic

◆ post_advance_work()

void kynema_sgf::Flather::post_advance_work ( )
inlineoverride

◆ post_init_actions()

void kynema_sgf::Flather::post_init_actions ( )
override

◆ pre_advance_work()

void kynema_sgf::Flather::pre_advance_work ( )
override

◆ set_velocity()

void kynema_sgf::Flather::set_velocity ( int lev,
amrex::Real time,
const Field & fld,
amrex::MultiFab & mfab,
int dcomp = 0,
int orig_comp = 0 ) const
override

◆ update_flather_variables()

void kynema_sgf::Flather::update_flather_variables ( const int lev,
const FieldState fstate,
const bool use_mac_fields = false )
inline

Member Data Documentation

◆ m_gravity

amrex::Vector<amrex::Real> kynema_sgf::Flather::m_gravity {0.0_rt, 0.0_rt, -9.81_rt}
private

◆ m_mesh

const amrex::AmrCore& kynema_sgf::Flather::m_mesh
private

◆ m_repo

const FieldRepo& kynema_sgf::Flather::m_repo
private

◆ m_sim

const CFDSim& kynema_sgf::Flather::m_sim
private

◆ m_terrain_blank

const IntField* kynema_sgf::Flather::m_terrain_blank {nullptr}
private

◆ m_time

const kynema_sgf::SimTime& kynema_sgf::Flather::m_time
private

◆ m_u_mac

const Field& kynema_sgf::Flather::m_u_mac
private

◆ m_v_mac

const Field& kynema_sgf::Flather::m_v_mac
private

◆ m_velocity

Field& kynema_sgf::Flather::m_velocity
private

◆ m_velocity_scale_factor_max

amrex::Real kynema_sgf::Flather::m_velocity_scale_factor_max {2.0_rt}
private

◆ m_velocity_scale_factor_min

amrex::Real kynema_sgf::Flather::m_velocity_scale_factor_min {0.25_rt}
private

◆ m_vof

const Field& kynema_sgf::Flather::m_vof
private

◆ m_xhi_bnd_h

MultiLevelVector kynema_sgf::Flather::m_xhi_bnd_h {FieldLoc::CELL}
private

◆ m_xhi_bnd_uh

MultiLevelVector kynema_sgf::Flather::m_xhi_bnd_uh {FieldLoc::CELL}
private

◆ m_xhi_h

MultiLevelVector kynema_sgf::Flather::m_xhi_h {FieldLoc::CELL}
private

◆ m_xhi_uhliq

MultiLevelVector kynema_sgf::Flather::m_xhi_uhliq {FieldLoc::CELL}
private

◆ m_xhi_uhmix

MultiLevelVector kynema_sgf::Flather::m_xhi_uhmix {FieldLoc::CELL}
private

◆ m_xlo_bnd_h

MultiLevelVector kynema_sgf::Flather::m_xlo_bnd_h {FieldLoc::CELL}
private

◆ m_xlo_bnd_uh

MultiLevelVector kynema_sgf::Flather::m_xlo_bnd_uh {FieldLoc::CELL}
private

◆ m_xlo_h

MultiLevelVector kynema_sgf::Flather::m_xlo_h {FieldLoc::CELL}
private

◆ m_xlo_uhliq

MultiLevelVector kynema_sgf::Flather::m_xlo_uhliq {FieldLoc::CELL}
private

◆ m_xlo_uhmix

MultiLevelVector kynema_sgf::Flather::m_xlo_uhmix {FieldLoc::CELL}
private

◆ m_yhi_bnd_h

MultiLevelVector kynema_sgf::Flather::m_yhi_bnd_h {FieldLoc::CELL}
private

◆ m_yhi_bnd_uh

MultiLevelVector kynema_sgf::Flather::m_yhi_bnd_uh {FieldLoc::CELL}
private

◆ m_yhi_h

MultiLevelVector kynema_sgf::Flather::m_yhi_h {FieldLoc::CELL}
private

◆ m_yhi_uhliq

MultiLevelVector kynema_sgf::Flather::m_yhi_uhliq {FieldLoc::CELL}
private

◆ m_yhi_uhmix

MultiLevelVector kynema_sgf::Flather::m_yhi_uhmix {FieldLoc::CELL}
private

◆ m_ylo_bnd_h

MultiLevelVector kynema_sgf::Flather::m_ylo_bnd_h {FieldLoc::CELL}
private

◆ m_ylo_bnd_uh

MultiLevelVector kynema_sgf::Flather::m_ylo_bnd_uh {FieldLoc::CELL}
private

◆ m_ylo_h

MultiLevelVector kynema_sgf::Flather::m_ylo_h {FieldLoc::CELL}
private

◆ m_ylo_uhliq

MultiLevelVector kynema_sgf::Flather::m_ylo_uhliq {FieldLoc::CELL}
private

◆ m_ylo_uhmix

MultiLevelVector kynema_sgf::Flather::m_ylo_uhmix {FieldLoc::CELL}
private

The documentation for this class was generated from the following files:
  • /home/runner/work/kynema-sgf/kynema-sgf/src/boundary_conditions/field_boundary_fill/Flather.H
  • /home/runner/work/kynema-sgf/kynema-sgf/src/boundary_conditions/field_boundary_fill/Flather.cpp