1#ifndef AMREX_EB2_MULTIGFAB_H_
2#define AMREX_EB2_MULTIGFAB_H_
3#include <AMReX_Config.H>
26 static constexpr int ng = 2;
35 for (
int idim = 0; idim < AMREX_SPACEDIM; ++idim) {
37#if (AMREX_SPACEDIM == 3)
55#if (AMREX_SPACEDIM == 3)
77#if (AMREX_SPACEDIM == 3)
101 for (
MFIter mfi(*
this); mfi.isValid(); ++mfi) {
102 const Box& bx = mfi.validbox();
103 auto& gfab = (*this)[mfi];
Fixed-size array types for use on GPU and CPU.
A FortranArrayBox(FAB)-like object.
Definition AMReX_BaseFab.H:222
Reference-counted collection of Boxes.
Definition AMReX_BoxArray.H:681
Calculates the distribution of FABs to MPI processes.
Definition AMReX_DistributionMapping.H:51
Box validbox() const
Valid box covered by this GFab.
Definition AMReX_EB2_MultiGFab.H:45
Graph & getGraph()
Definition AMReX_EB2_MultiGFab.H:63
const Graph & getGraph() const
Accessor for the EB graph structure stored within this tile.
Definition AMReX_EB2_MultiGFab.H:62
const BaseFab< Real > & getLevelSet() const
Access the nodal level-set field (const and mutable).
Definition AMReX_EB2_MultiGFab.H:48
const Array< BaseFab< Type_t >, 3 > & getFaceType() const
Access face-type classification arrays.
Definition AMReX_EB2_MultiGFab.H:52
const Array< BaseFab< Type_t >, 3 > & getEdgeType() const
Access edge-type arrays (3-D only).
Definition AMReX_EB2_MultiGFab.H:57
BaseFab< Real > & getLevelSet()
Definition AMReX_EB2_MultiGFab.H:49
Array< BaseFab< Type_t >, 3 > & getEdgeType()
Definition AMReX_EB2_MultiGFab.H:58
void buildTypes(EBCellFlagFab &celltype)
Derive face/edge types from the supplied EB cell flags.
Definition AMReX_EB2_MultiGFab.cpp:8
Array< BaseFab< Type_t >, 3 > & getFaceType()
Definition AMReX_EB2_MultiGFab.H:53
void define(const Box &vbx)
Allocate level-set and type arrays for valid box vbx.
Definition AMReX_EB2_MultiGFab.H:31
static constexpr int ng
Definition AMReX_EB2_MultiGFab.H:26
void define(const BoxArray &ba, const DistributionMapping &dm)
Define the layout and allocate per-box GFab storage.
Definition AMReX_EB2_MultiGFab.H:99
MultiGFab(const BoxArray &ba, const DistributionMapping &dm)
Construct and define the layout immediately.
Definition AMReX_EB2_MultiGFab.H:92
MultiFab getLevelSet()
Collect the level-set data from each GFab into a MultiFab.
Definition AMReX_EB2_MultiGFab.cpp:41
FAB storing EBCellFlag data per cell.
Definition AMReX_EBCellFlag.H:324
friend class MFIter
Definition AMReX_FabArrayBase.H:48
__host__ static __device__ constexpr IntVectND< dim > TheNodeVector() noexcept
Definition AMReX_IntVect.H:823
__host__ static __device__ constexpr IntVectND< dim > TheDimensionVector(int d) noexcept
Definition AMReX_IntVect.H:790
void define(const BoxArray &a_grids, const DistributionMapping &a_dm)
Definition AMReX_LayoutData.H:24
A collection (stored as an array) of FArrayBox objects.
Definition AMReX_MultiFab.H:40
__host__ __device__ BoxND< dim > convert(const BoxND< dim > &b, const IntVectND< dim > &typ) noexcept
Return a copy of b converted to the nodal flags typ.
Definition AMReX_Box.H:1632
__host__ __device__ BoxND< dim > surroundingNodes(const BoxND< dim > &b, int dir) noexcept
Return a BoxND with NODE based coordinates in direction dir that encloses BoxND b.
Definition AMReX_Box.H:1584
__host__ __device__ BoxND< dim > grow(const BoxND< dim > &b, int i) noexcept
Return a copy of b grown uniformly by i cells in every direction.
Definition AMReX_Box.H:1328
std::array< T, N > Array
Definition AMReX_Array.H:31
Definition AMReX_FabArrayBase.H:38
std::unordered_map< IntVect, Vector< Vertex >, IntVect::hasher > Graph
EB graph type: map from cell index to all EB vertices stored there.
Definition AMReX_EB2_Graph.H:109
BoxND< 3 > Box
Box is an alias for amrex::BoxND instantiated with AMREX_SPACEDIM.
Definition AMReX_BaseFwd.H:35