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

This class holds state data arrays for each refinement level of a patch hierarchy. More...

#include <PatchHierarchy.hpp>

Public Types

using MultiCutFabs = std::array< std::shared_ptr<::amrex::MultiCutFab >, AMREX_SPACEDIM >
 

Public Member Functions

 PatchLevel ()=default
 
 ~PatchLevel ()=default
 
 PatchLevel (const PatchLevel &)
 Deeply copy a patch level on each MPI Rank and recompute shielded fractions. More...
 
PatchLeveloperator= (const PatchLevel &)
 Deeply copy a patch level on each MPI Rank and recompute shielded fractions. More...
 
 PatchLevel (int level, Duration tp, const ::amrex::BoxArray &ba, const ::amrex::DistributionMapping &dm, int n_components, std::shared_ptr<::amrex::EBFArrayBoxFactory > factory, int ngrow)
 Constructs a patch level and computes shielded fractions. More...
 
 PatchLevel (PatchLevel &&) noexcept=default
 Moves a patch level without any allocations happening. More...
 
PatchLeveloperator= (PatchLevel &&) noexcept=default
 Moves a patch level without any allocations happening. More...
 

Public Attributes

std::shared_ptr<::amrex::EBFArrayBoxFactory > factory
 This stores the EB factory for this refinement level. More...
 
MultiCutFabs unshielded
 Store unshielded face fractions for all faces which touch a cut cell. More...
 
MultiCutFabs shielded_left
 Store singly shielded from left face fractions for all faces which touch a cut cell. More...
 
MultiCutFabs shielded_right
 Store singly shielded from right face fractions for all faces which touch a cut cell. More...
 
MultiCutFabs doubly_shielded
 Store doubly shielded face fractions for all faces which touch a cut cell. More...
 
int level_number
 
Duration time_point
 
std::ptrdiff_t cycles
 
::amrex::BoxArray box_array
 
::amrex::DistributionMapping distribution_mapping
 
::amrex::MultiFab data
 
std::unique_ptr<::amrex::MultiFab > nodes
 
std::array< std::unique_ptr<::amrex::MultiFab >, AMREX_SPACEDIM > faces
 

Detailed Description

This class holds state data arrays for each refinement level of a patch hierarchy.

This cut-cell version stores some embedded boundary informations in addition to the normal patch level type.

Member Typedef Documentation

◆ MultiCutFabs

using fub::amrex::cutcell::PatchLevel::MultiCutFabs = std::array<std::shared_ptr<::amrex::MultiCutFab>, AMREX_SPACEDIM>

Constructor & Destructor Documentation

◆ PatchLevel() [1/4]

fub::amrex::cutcell::PatchLevel::PatchLevel ( )
default

◆ ~PatchLevel()

fub::amrex::cutcell::PatchLevel::~PatchLevel ( )
default

◆ PatchLevel() [2/4]

fub::amrex::cutcell::PatchLevel::PatchLevel ( const PatchLevel )

Deeply copy a patch level on each MPI Rank and recompute shielded fractions.

◆ PatchLevel() [3/4]

fub::amrex::cutcell::PatchLevel::PatchLevel ( PatchLevel &&  )
defaultnoexcept

Moves a patch level without any allocations happening.

◆ PatchLevel() [4/4]

fub::amrex::cutcell::PatchLevel::PatchLevel ( int  level,
Duration  tp,
const ::amrex::BoxArray &  ba,
const ::amrex::DistributionMapping &  dm,
int  n_components,
std::shared_ptr<::amrex::EBFArrayBoxFactory >  factory,
int  ngrow 
)

Constructs a patch level and computes shielded fractions.

Parameters
[in]levelthe refinement level number in a hierarchy
[in]tpthe time point associated with this level
[in]bathe box array describing all boxes of this level
[in]dmthe distribution mapping for all boxes of this level
[in]factorythe boundary informations for cut cells.

Member Function Documentation

◆ operator=() [1/2]

PatchLevel& fub::amrex::cutcell::PatchLevel::operator= ( const PatchLevel )

Deeply copy a patch level on each MPI Rank and recompute shielded fractions.

◆ operator=() [2/2]

PatchLevel& fub::amrex::cutcell::PatchLevel::operator= ( PatchLevel &&  )
defaultnoexcept

Moves a patch level without any allocations happening.

Member Data Documentation

◆ box_array

::amrex::BoxArray fub::amrex::PatchLevel::box_array
inherited

◆ cycles

std::ptrdiff_t fub::amrex::PatchLevel::cycles
inherited

◆ data

::amrex::MultiFab fub::amrex::PatchLevel::data
inherited

◆ distribution_mapping

::amrex::DistributionMapping fub::amrex::PatchLevel::distribution_mapping
inherited

◆ doubly_shielded

MultiCutFabs fub::amrex::cutcell::PatchLevel::doubly_shielded

Store doubly shielded face fractions for all faces which touch a cut cell.

◆ faces

std::array<std::unique_ptr<::amrex::MultiFab>, AMREX_SPACEDIM> fub::amrex::PatchLevel::faces
inherited

◆ factory

std::shared_ptr<::amrex::EBFArrayBoxFactory> fub::amrex::cutcell::PatchLevel::factory

This stores the EB factory for this refinement level.

◆ level_number

int fub::amrex::PatchLevel::level_number
inherited

◆ nodes

std::unique_ptr<::amrex::MultiFab> fub::amrex::PatchLevel::nodes
inherited

◆ shielded_left

MultiCutFabs fub::amrex::cutcell::PatchLevel::shielded_left

Store singly shielded from left face fractions for all faces which touch a cut cell.

◆ shielded_right

MultiCutFabs fub::amrex::cutcell::PatchLevel::shielded_right

Store singly shielded from right face fractions for all faces which touch a cut cell.

◆ time_point

Duration fub::amrex::PatchLevel::time_point
inherited

◆ unshielded

MultiCutFabs fub::amrex::cutcell::PatchLevel::unshielded

Store unshielded face fractions for all faces which touch a cut cell.


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