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

#include <MultiBlockBoundary2.hpp>

Public Member Functions

template<typename Boundary >
 AnyMultiBlockBoundary (Boundary boundary, const MultiBlockGriddingAlgorithm2 &gridding, const BlockConnection &connection, int gcw, int level)
 Constructs coupled boundary states by pre computing mirror and ghost states for each of the specified domains. More...
 
 AnyMultiBlockBoundary (const AnyMultiBlockBoundary &other)
 
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)
 

Private Member Functions

void Initialize (const MultiBlockGriddingAlgorithm2 &gridding, const BlockConnection &connection, int gcw, int level)
 

Private Attributes

std::unique_ptr< MultiBlockBoundaryBaseimpl_
 
::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_
 

Constructor & Destructor Documentation

◆ AnyMultiBlockBoundary() [1/2]

template<typename Boundary >
fub::amrex::AnyMultiBlockBoundary::AnyMultiBlockBoundary ( Boundary  boundary,
const MultiBlockGriddingAlgorithm2 gridding,
const BlockConnection connection,
int  gcw,
int  level 
)
inline

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.

◆ AnyMultiBlockBoundary() [2/2]

fub::amrex::AnyMultiBlockBoundary::AnyMultiBlockBoundary ( const AnyMultiBlockBoundary other)

Member Function Documentation

◆ ComputeBoundaryData()

void fub::amrex::AnyMultiBlockBoundary::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::AnyMultiBlockBoundary::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::AnyMultiBlockBoundary::FillBoundary ( ::amrex::MultiFab &  mf,
const cutcell::GriddingAlgorithm gridding,
int  level,
Direction  dir 
)
inline

◆ FillBoundary() [3/4]

void fub::amrex::AnyMultiBlockBoundary::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::AnyMultiBlockBoundary::FillBoundary ( ::amrex::MultiFab &  mf,
const GriddingAlgorithm gridding,
int  level,
Direction  dir 
)
inline

◆ Initialize()

void fub::amrex::AnyMultiBlockBoundary::Initialize ( const MultiBlockGriddingAlgorithm2 gridding,
const BlockConnection connection,
int  gcw,
int  level 
)
private

Member Data Documentation

◆ dir_

Direction fub::amrex::AnyMultiBlockBoundary::dir_
private

◆ gcw_

int fub::amrex::AnyMultiBlockBoundary::gcw_
private

◆ impl_

std::unique_ptr<MultiBlockBoundaryBase> fub::amrex::AnyMultiBlockBoundary::impl_
private

◆ level_

int fub::amrex::AnyMultiBlockBoundary::level_
private

◆ plenum_ghost_data_

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

◆ plenum_mirror_box_

::amrex::Box fub::amrex::AnyMultiBlockBoundary::plenum_mirror_box_
private

◆ plenum_mirror_data_

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

◆ side_

int fub::amrex::AnyMultiBlockBoundary::side_
private

◆ tube_ghost_data_

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

◆ tube_mirror_box_

::amrex::Box fub::amrex::AnyMultiBlockBoundary::tube_mirror_box_
private

◆ tube_mirror_data_

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

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