Finite Volume Solver  prototype
A framework to build finite volume solvers for the AG Klein at the Freie Universität Berlin.
Public Member Functions | Static Public Attributes | Private Types | Private Attributes | List of all members
fub::amrex::MultiBlockBoundary Class Reference

#include <MultiBlockBoundary.hpp>

Public Member Functions

 MultiBlockBoundary (const std::string &name, const MultiBlockGriddingAlgorithm &gridding, const BlockConnection &connection, int gcw, const FlameMasterReactor &reactor, int level)
 Constructs coupled boundary states by pre computing mirror and ghost states for each of the specified domains. More...
 
 MultiBlockBoundary (const std::string &name, const MultiBlockGriddingAlgorithm &gridding, const BlockConnection &connection, int gcw, const FlameMasterReactor &reactor, int level, std::shared_ptr< PressureValve > valve)
 
 MultiBlockBoundary (const MultiBlockGriddingAlgorithm &gridding, const BlockConnection &connection, int gcw, const FlameMasterReactor &reactor, int level)
 Constructs coupled boundary states by pre computing mirror and ghost states for each of the specified domains. More...
 
 MultiBlockBoundary (const MultiBlockBoundary &other)
 
MultiBlockBoundaryoperator= (const MultiBlockBoundary &other)
 
 MultiBlockBoundary (MultiBlockBoundary &&other)=default
 
MultiBlockBoundaryoperator= (MultiBlockBoundary &&other)=default
 
void ComputeBoundaryData (const cutcell::PatchHierarchy &plenum, const PatchHierarchy &tube)
 Precompute Boundary states for each domain. More...
 
void FillBoundary (::amrex::MultiFab &mf, const cutcell::GriddingAlgorithm &gridding, int level)
 Assuming that mf represents a MultiFab living in the higher dimensional plenum simulation its ghost layer will be filled with data from the tube simulation. More...
 
void FillBoundary (::amrex::MultiFab &mf, const cutcell::GriddingAlgorithm &gridding, int level, Direction dir)
 
void FillBoundary (::amrex::MultiFab &mf, const GriddingAlgorithm &gridding, int level)
 Assuming that mf represents a MultiFab living in the one dimensional tube simulation its ghost layer will be filled with data from the plenum simulation. More...
 
void FillBoundary (::amrex::MultiFab &mf, const GriddingAlgorithm &gridding, int level, Direction dir)
 
const std::shared_ptr< PressureValve > & GetValve () const noexcept
 

Static Public Attributes

static constexpr int Plenum_Rank
 
static constexpr int Tube_Rank
 

Private Types

using logger_type = boost::log::sources::severity_channel_logger< boost::log::trivial::severity_level >
 

Private Attributes

logger_type log_
 
std::shared_ptr< PressureValvevalve_
 
IdealGasMix< Plenum_Rankplenum_equation_
 
IdealGasMix< Tube_Ranktube_equation_
 
::amrex::Box plenum_mirror_box_
 
::amrex::Box tube_mirror_box_
 
std::unique_ptr<::amrex::FArrayBox > plenum_mirror_data_
 
std::unique_ptr<::amrex::FArrayBox > tube_ghost_data_
 
std::unique_ptr<::amrex::FArrayBox > tube_mirror_data_
 
std::unique_ptr<::amrex::FArrayBox > plenum_ghost_data_
 
Direction dir_
 
int side_
 
int level_
 
int gcw_
 

Member Typedef Documentation

◆ logger_type

using fub::amrex::MultiBlockBoundary::logger_type = boost::log::sources::severity_channel_logger< boost::log::trivial::severity_level>
private

Constructor & Destructor Documentation

◆ MultiBlockBoundary() [1/5]

fub::amrex::MultiBlockBoundary::MultiBlockBoundary ( const std::string &  name,
const MultiBlockGriddingAlgorithm gridding,
const BlockConnection connection,
int  gcw,
const FlameMasterReactor reactor,
int  level 
)

Constructs coupled boundary states by pre computing mirror and ghost states for each of the specified domains.

This function might grow the specified mirror boxes to an extent which is required to fulfill the specified ghost cell width requirements.

◆ MultiBlockBoundary() [2/5]

fub::amrex::MultiBlockBoundary::MultiBlockBoundary ( const std::string &  name,
const MultiBlockGriddingAlgorithm gridding,
const BlockConnection connection,
int  gcw,
const FlameMasterReactor reactor,
int  level,
std::shared_ptr< PressureValve valve 
)

◆ MultiBlockBoundary() [3/5]

fub::amrex::MultiBlockBoundary::MultiBlockBoundary ( const MultiBlockGriddingAlgorithm gridding,
const BlockConnection connection,
int  gcw,
const FlameMasterReactor reactor,
int  level 
)

Constructs coupled boundary states by pre computing mirror and ghost states for each of the specified domains.

This function might grow the specified mirror boxes to an extent which is required to fulfill the specified ghost cell width requirements.

◆ MultiBlockBoundary() [4/5]

fub::amrex::MultiBlockBoundary::MultiBlockBoundary ( const MultiBlockBoundary other)

◆ MultiBlockBoundary() [5/5]

fub::amrex::MultiBlockBoundary::MultiBlockBoundary ( MultiBlockBoundary &&  other)
default

Member Function Documentation

◆ ComputeBoundaryData()

void fub::amrex::MultiBlockBoundary::ComputeBoundaryData ( const cutcell::PatchHierarchy plenum,
const PatchHierarchy tube 
)

Precompute Boundary states for each domain.

Subsequent calls to FillBoundary will use these computed boundary states.

Parameters
[in]plenumThe higher dimensional patch hierarchy with geometry information. States here will be conservatively averaged and projected onto a one-dimesnional space.
[in]tubeThe low dimensional tube data.

◆ FillBoundary() [1/4]

void fub::amrex::MultiBlockBoundary::FillBoundary ( ::amrex::MultiFab &  mf,
const cutcell::GriddingAlgorithm gridding,
int  level 
)

Assuming that mf represents a MultiFab living in the higher dimensional plenum simulation its ghost layer will be filled with data from the tube simulation.

◆ FillBoundary() [2/4]

void fub::amrex::MultiBlockBoundary::FillBoundary ( ::amrex::MultiFab &  mf,
const cutcell::GriddingAlgorithm gridding,
int  level,
Direction  dir 
)
inline

◆ FillBoundary() [3/4]

void fub::amrex::MultiBlockBoundary::FillBoundary ( ::amrex::MultiFab &  mf,
const GriddingAlgorithm gridding,
int  level 
)

Assuming that mf represents a MultiFab living in the one dimensional tube simulation its ghost layer will be filled with data from the plenum simulation.

◆ FillBoundary() [4/4]

void fub::amrex::MultiBlockBoundary::FillBoundary ( ::amrex::MultiFab &  mf,
const GriddingAlgorithm gridding,
int  level,
Direction  dir 
)
inline

◆ GetValve()

const std::shared_ptr<PressureValve>& fub::amrex::MultiBlockBoundary::GetValve ( ) const
noexcept

◆ operator=() [1/2]

MultiBlockBoundary& fub::amrex::MultiBlockBoundary::operator= ( const MultiBlockBoundary other)

◆ operator=() [2/2]

MultiBlockBoundary& fub::amrex::MultiBlockBoundary::operator= ( MultiBlockBoundary &&  other)
default

Member Data Documentation

◆ dir_

Direction fub::amrex::MultiBlockBoundary::dir_
private

◆ gcw_

int fub::amrex::MultiBlockBoundary::gcw_
private

◆ level_

int fub::amrex::MultiBlockBoundary::level_
private

◆ log_

logger_type fub::amrex::MultiBlockBoundary::log_
private

◆ plenum_equation_

IdealGasMix<Plenum_Rank> fub::amrex::MultiBlockBoundary::plenum_equation_
private

◆ plenum_ghost_data_

std::unique_ptr<::amrex::FArrayBox> fub::amrex::MultiBlockBoundary::plenum_ghost_data_
private

◆ plenum_mirror_box_

::amrex::Box fub::amrex::MultiBlockBoundary::plenum_mirror_box_
private

◆ plenum_mirror_data_

std::unique_ptr<::amrex::FArrayBox> fub::amrex::MultiBlockBoundary::plenum_mirror_data_
private

◆ Plenum_Rank

constexpr int fub::amrex::MultiBlockBoundary::Plenum_Rank
staticconstexpr

◆ side_

int fub::amrex::MultiBlockBoundary::side_
private

◆ tube_equation_

IdealGasMix<Tube_Rank> fub::amrex::MultiBlockBoundary::tube_equation_
private

◆ tube_ghost_data_

std::unique_ptr<::amrex::FArrayBox> fub::amrex::MultiBlockBoundary::tube_ghost_data_
private

◆ tube_mirror_box_

::amrex::Box fub::amrex::MultiBlockBoundary::tube_mirror_box_
private

◆ tube_mirror_data_

std::unique_ptr<::amrex::FArrayBox> fub::amrex::MultiBlockBoundary::tube_mirror_data_
private

◆ Tube_Rank

constexpr int fub::amrex::MultiBlockBoundary::Tube_Rank
staticconstexpr

◆ valve_

std::shared_ptr<PressureValve> fub::amrex::MultiBlockBoundary::valve_
private

The documentation for this class was generated from the following file: