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 Attributes | List of all members
fub::amrex::PatchHierarchy Class Reference

The PatchHierarchy holds simulation data on multiple refinement levels. More...

#include <PatchHierarchy.hpp>

Public Member Functions

template<typename Equation >
 PatchHierarchy (const Equation &equation, const CartesianGridGeometry &geometry, const PatchHierarchyOptions &options)
 Constructs a PatchHierarchy object which is capable of holding data described by the secified data description on given geometry extents. More...
 
 PatchHierarchy (DataDescription description, const CartesianGridGeometry &geometry, const PatchHierarchyOptions &options)
 Constructs a PatchHierarchy object which is capable of holding data described by the secified data description on given geometry extents. More...
 
const DataDescriptionGetDataDescription () const noexcept
 
const PatchHierarchyOptionsGetOptions () const noexcept
 Return some additional patch hierarchy options. More...
 
const CartesianGridGeometryGetGridGeometry () const noexcept
 Returns the Grid Geometry which was used to create the hierarchy with. More...
 
std::ptrdiff_t GetCycles (int level=0) const
 
Duration GetTimePoint (int level=0) const
 
int GetNumberOfLevels () const noexcept
 
int GetMaxNumberOfLevels () const noexcept
 
int GetRatioToCoarserLevel (int level, Direction dir) const noexcept
 
::amrex::IntVect GetRatioToCoarserLevel (int level) const noexcept
 
PatchLevelGetPatchLevel (int level)
 
const PatchLevelGetPatchLevel (int level) const
 
const ::amrex::GeometryGetGeometry (int level) const
 Returns a Geometry object for a specified level. More...
 
const ::amrex::Vector<::amrex::GeometryGetGeometries () const
 Returns the hierarchy of Geometry objects. More...
 
const ::amrex::Vector<::amrex::BoxArray > GetBoxArrays () const
 Returns the hierarchy of BoxArray objects. More...
 
const ::amrex::Vector<::amrex::DistributionMapping > GetDistributionMappings () const
 Returns the hierarchy of DistributionMapping objects. More...
 
const ::amrex::Vector< const ::amrex::MultiFab * > GetData () const
 Returns the hierarchy of MultiFabs representing the data. More...
 
void PushBack (const PatchLevel &level)
 
void PushBack (PatchLevel &&level)
 
void PopBack ()
 
span< const ::amrex::EB2::IndexSpace * > GetIndexSpaces () noexcept
 
const std::shared_ptr< CounterRegistry > & GetCounterRegistry () const noexcept
 Returns a shared pointer to the counter registry. More...
 
const std::shared_ptr< DebugStorage > & GetDebugStorage () const noexcept
 Returns a shared pointer to the debug storage. More...
 
void SetCounterRegistry (std::shared_ptr< CounterRegistry > registry)
 

Private Attributes

DataDescription description_
 
CartesianGridGeometry grid_geometry_
 
PatchHierarchyOptions options_
 
std::vector< PatchLevelpatch_level_
 
std::vector<::amrex::Geometrypatch_level_geometry_
 
std::vector< const ::amrex::EB2::IndexSpace * > index_spaces_
 
std::shared_ptr< CounterRegistry > registry_
 
std::shared_ptr< DebugStoragedebug_storage_
 

Detailed Description

The PatchHierarchy holds simulation data on multiple refinement levels.

It also holds a time stamp for each level.

Constructor & Destructor Documentation

◆ PatchHierarchy() [1/2]

template<typename Equation >
fub::amrex::PatchHierarchy::PatchHierarchy ( const Equation &  equation,
const CartesianGridGeometry geometry,
const PatchHierarchyOptions options 
)

Constructs a PatchHierarchy object which is capable of holding data described by the secified data description on given geometry extents.

◆ PatchHierarchy() [2/2]

fub::amrex::PatchHierarchy::PatchHierarchy ( DataDescription  description,
const CartesianGridGeometry geometry,
const PatchHierarchyOptions options 
)

Constructs a PatchHierarchy object which is capable of holding data described by the secified data description on given geometry extents.

Member Function Documentation

◆ GetBoxArrays()

const ::amrex::Vector<::amrex::BoxArray> fub::amrex::PatchHierarchy::GetBoxArrays ( ) const

Returns the hierarchy of BoxArray objects.

◆ GetCounterRegistry()

const std::shared_ptr<CounterRegistry>& fub::amrex::PatchHierarchy::GetCounterRegistry ( ) const
noexcept

Returns a shared pointer to the counter registry.

◆ GetCycles()

std::ptrdiff_t fub::amrex::PatchHierarchy::GetCycles ( int  level = 0) const

◆ GetData()

const ::amrex::Vector<const ::amrex::MultiFab*> fub::amrex::PatchHierarchy::GetData ( ) const

Returns the hierarchy of MultiFabs representing the data.

◆ GetDataDescription()

const DataDescription& fub::amrex::PatchHierarchy::GetDataDescription ( ) const
noexcept

◆ GetDebugStorage()

const std::shared_ptr<DebugStorage>& fub::amrex::PatchHierarchy::GetDebugStorage ( ) const
noexcept

Returns a shared pointer to the debug storage.

◆ GetDistributionMappings()

const ::amrex::Vector<::amrex::DistributionMapping> fub::amrex::PatchHierarchy::GetDistributionMappings ( ) const

Returns the hierarchy of DistributionMapping objects.

◆ GetGeometries()

const ::amrex::Vector<::amrex::Geometry> fub::amrex::PatchHierarchy::GetGeometries ( ) const

Returns the hierarchy of Geometry objects.

◆ GetGeometry()

const ::amrex::Geometry& fub::amrex::PatchHierarchy::GetGeometry ( int  level) const

Returns a Geometry object for a specified level.

Parameters
[in]Therefinement level number for this geometry obejct.

◆ GetGridGeometry()

const CartesianGridGeometry& fub::amrex::PatchHierarchy::GetGridGeometry ( ) const
noexcept

Returns the Grid Geometry which was used to create the hierarchy with.

◆ GetIndexSpaces()

span<const ::amrex::EB2::IndexSpace*> fub::amrex::PatchHierarchy::GetIndexSpaces ( )
noexcept

◆ GetMaxNumberOfLevels()

int fub::amrex::PatchHierarchy::GetMaxNumberOfLevels ( ) const
noexcept

◆ GetNumberOfLevels()

int fub::amrex::PatchHierarchy::GetNumberOfLevels ( ) const
noexcept

◆ GetOptions()

const PatchHierarchyOptions& fub::amrex::PatchHierarchy::GetOptions ( ) const
noexcept

Return some additional patch hierarchy options.

◆ GetPatchLevel() [1/2]

PatchLevel& fub::amrex::PatchHierarchy::GetPatchLevel ( int  level)

◆ GetPatchLevel() [2/2]

const PatchLevel& fub::amrex::PatchHierarchy::GetPatchLevel ( int  level) const

◆ GetRatioToCoarserLevel() [1/2]

::amrex::IntVect fub::amrex::PatchHierarchy::GetRatioToCoarserLevel ( int  level) const
noexcept

◆ GetRatioToCoarserLevel() [2/2]

int fub::amrex::PatchHierarchy::GetRatioToCoarserLevel ( int  level,
Direction  dir 
) const
noexcept

◆ GetTimePoint()

Duration fub::amrex::PatchHierarchy::GetTimePoint ( int  level = 0) const

◆ PopBack()

void fub::amrex::PatchHierarchy::PopBack ( )

◆ PushBack() [1/2]

void fub::amrex::PatchHierarchy::PushBack ( const PatchLevel level)

◆ PushBack() [2/2]

void fub::amrex::PatchHierarchy::PushBack ( PatchLevel &&  level)

◆ SetCounterRegistry()

void fub::amrex::PatchHierarchy::SetCounterRegistry ( std::shared_ptr< CounterRegistry >  registry)

Member Data Documentation

◆ debug_storage_

std::shared_ptr<DebugStorage> fub::amrex::PatchHierarchy::debug_storage_
private

◆ description_

DataDescription fub::amrex::PatchHierarchy::description_
private

◆ grid_geometry_

CartesianGridGeometry fub::amrex::PatchHierarchy::grid_geometry_
private

◆ index_spaces_

std::vector<const ::amrex::EB2::IndexSpace*> fub::amrex::PatchHierarchy::index_spaces_
private

◆ options_

PatchHierarchyOptions fub::amrex::PatchHierarchy::options_
private

◆ patch_level_

std::vector<PatchLevel> fub::amrex::PatchHierarchy::patch_level_
private

◆ patch_level_geometry_

std::vector<::amrex::Geometry> fub::amrex::PatchHierarchy::patch_level_geometry_
private

◆ registry_

std::shared_ptr<CounterRegistry> fub::amrex::PatchHierarchy::registry_
private

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