Chombo + EB + MF  3.2
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
MultiBlockLevelExchange Class Reference

The class MultiBlockLevelExchange stores topological and geometric information. More...

#include <MultiBlockLevelExchange.H>

Inheritance diagram for MultiBlockLevelExchange:
Inheritance graph
[legend]

Public Member Functions

 MultiBlockLevelExchange ()
 default constructor More...
 
virtual ~MultiBlockLevelExchange ()
 destructor More...
 
 MultiBlockLevelExchange (const MultiBlockLevelGeom *a_geomPtr, int a_ghosts, int a_order)
 full constructor More...
 
virtual void undefine ()
 
virtual void define (const MultiBlockLevelGeom *a_geomPtr, int a_ghosts, int a_order)
 
virtual void defineVector ()
 must be in the derived class, else error when calling. More...
 
virtual void interpGhosts (LevelData< FArrayBox > &a_data, const Interval &a_intvl) const
 fill extra-block ghost cells of a_data at components in a_intvl More...
 
virtual void interpGhosts (LevelData< FArrayBox > &a_data) const
 fill extra-block ghost cells of a_data at all components More...
 
virtual void interpGhostsVector (LevelData< FArrayBox > &a_data) const
 fill extra-block ghost cells of vector a_data at all components More...
 
virtual void interpGhostsVector (LevelData< FArrayBox > &a_data, const Interval &a_intvl) const
 fill extra-block ghost cells of vector a_data at components in a_intvl, of length SpaceDim. Must be in the derived class, else error when calling. More...
 
virtual void interpGhostsAllWithVector (LevelData< FArrayBox > &a_data, const Interval &a_vecIntvl) const
 fill extra-block ghost cells of all components of a_data at components, where a_vecIntvl is interval of components of a vector, and the other components are scalars More...
 
const LayoutData< IntVectSet > & ghostCells () const
 accessor More...
 
const LayoutData< RefCountedPtr< IVSFAB< MBStencil > > > & stencils () const
 accessor More...
 
const LayoutData< RefCountedPtr< IVSFAB< MBVectorStencil > > > & vectorstencils () const
 accessor More...
 
bool isDefined () const
 

Protected Member Functions

virtual void removeNoValidSource ()
 remove from m_ghostCells all cells that do not have complete stencils. More...
 

Protected Attributes

bool m_isDefined
 is defined? More...
 
bool m_isVectorDefined
 is defined for vector transformations? More...
 
IndexType m_type
 either IndexType::TheCellType() for averaged, or IndexType::TheNodeType() for centered More...
 
DisjointBoxLayout m_grids
 underlying grids More...
 
int m_ghosts
 width of ghost layer around m_grids, at which data will be filled in More...
 
int m_order
 order of approximation wanted More...
 
int m_radius
 radius of neighborhood of data used for interpolation to ghost cell More...
 
int m_degree
 degree of Taylor polynomials More...
 
Box m_degreeBox
 [0:m_degree]^D More...
 
Vector< IntVectm_powers
 powers in Taylor polynomial More...
 
int m_numTaylorCoeffs
 number of coefficients in Taylor polynomial More...
 
MultiBlockLevelGeomm_geomPtr
 contains topological and geometric information More...
 
MultiBlockCoordSysm_coordSysPtr
 contains coordinate systems; from m_geomPtr More...
 
DisjointBoxLayout m_gridsFull
 original underlying grids More...
 
int m_nblocks
 Number of mapping blocks. More...
 
LayoutData< IntVectSetm_ghostCells
 extra-block ghost cells of m_grids that need to be filled in More...
 
Interval m_fixedDims
 interval of dimensions that are fixed. Default empty. More...
 
Vector< int > m_fixedDimsVect
 dimensions that are fixed. Default empty. More...
 
Vector< int > m_interpDimsVect
 dimensions that are not fixed. Default 0:SpaceDim-1. More...
 
Vector< int > m_fixedPt
 fixed values of dimensions that are fixed. Default empty. More...
 
BoxLayout m_gridsFixedOff
 displacement of original underlying grids from m_grids: 0 in m_interpDimsVect but varying in m_fixedDimsVect More...
 
bool m_allGridsHaveFixedPt
 whether all original underlying grids contain m_fixedPt in m_fixedDimsVect More...
 
LayoutData< RefCountedPtr< IVSFAB< MBStencil > > > m_stencils
 interpolation stencils More...
 
LayoutData< RefCountedPtr< IVSFAB< MBVectorStencil > > > m_vectorstencils
 vector interpolation stencils More...
 
Vector< BoxLayout * > m_validLayout
 for each source block, min Box containing valid cells More...
 
Vector< BoxLayout * > m_validFullLayout
 
Vector< RefCountedPtr< LayoutData< Box > > > m_stencilCellsMinBox
 
Vector< RefCountedPtr< LayoutData< Box > > > m_stencilCellsFullMinBox
 
Vector< Copier * > m_copiers
 Copier *m_copiers[srcBlock] for copying from m_grids to BoxLayout *m_validLayout[srcBlock]. More...
 
Vector< Copier * > m_copiersFull
 
MultiBlockUtilm_mbUtil
 

Detailed Description

The class MultiBlockLevelExchange stores topological and geometric information.

MultiBlockLevelExchange stores topological and geometric information about a particular layout with a particular MultiBlockCoordSys.

Implementations of specific multiblock coordinate systems will be provided by derived classes.

Constructor & Destructor Documentation

◆ MultiBlockLevelExchange() [1/2]

MultiBlockLevelExchange::MultiBlockLevelExchange ( )
inline

◆ ~MultiBlockLevelExchange()

virtual MultiBlockLevelExchange::~MultiBlockLevelExchange ( )
virtual

destructor

Referenced by MultiBlockLevelExchange().

◆ MultiBlockLevelExchange() [2/2]

MultiBlockLevelExchange::MultiBlockLevelExchange ( const MultiBlockLevelGeom a_geomPtr,
int  a_ghosts,
int  a_order 
)

full constructor

Member Function Documentation

◆ undefine()

virtual void MultiBlockLevelExchange::undefine ( )
virtual

Referenced by MultiBlockLevelExchange().

◆ define()

virtual void MultiBlockLevelExchange::define ( const MultiBlockLevelGeom a_geomPtr,
int  a_ghosts,
int  a_order 
)
virtual

◆ defineVector()

virtual void MultiBlockLevelExchange::defineVector ( )
virtual

must be in the derived class, else error when calling.

Referenced by MultiBlockLevelExchange().

◆ interpGhosts() [1/2]

virtual void MultiBlockLevelExchange::interpGhosts ( LevelData< FArrayBox > &  a_data,
const Interval a_intvl 
) const
virtual

fill extra-block ghost cells of a_data at components in a_intvl

Referenced by MultiBlockLevelExchange().

◆ interpGhosts() [2/2]

virtual void MultiBlockLevelExchange::interpGhosts ( LevelData< FArrayBox > &  a_data) const
virtual

fill extra-block ghost cells of a_data at all components

◆ interpGhostsVector() [1/2]

virtual void MultiBlockLevelExchange::interpGhostsVector ( LevelData< FArrayBox > &  a_data) const
virtual

fill extra-block ghost cells of vector a_data at all components

Referenced by MultiBlockLevelExchange().

◆ interpGhostsVector() [2/2]

virtual void MultiBlockLevelExchange::interpGhostsVector ( LevelData< FArrayBox > &  a_data,
const Interval a_intvl 
) const
virtual

fill extra-block ghost cells of vector a_data at components in a_intvl, of length SpaceDim. Must be in the derived class, else error when calling.

◆ interpGhostsAllWithVector()

virtual void MultiBlockLevelExchange::interpGhostsAllWithVector ( LevelData< FArrayBox > &  a_data,
const Interval a_vecIntvl 
) const
virtual

fill extra-block ghost cells of all components of a_data at components, where a_vecIntvl is interval of components of a vector, and the other components are scalars

Referenced by MultiBlockLevelExchange().

◆ ghostCells()

const LayoutData< IntVectSet >& MultiBlockLevelExchange::ghostCells ( ) const
inline

accessor

References CH_assert, isDefined(), and m_ghostCells.

◆ stencils()

const LayoutData< RefCountedPtr< IVSFAB<MBStencil> > >& MultiBlockLevelExchange::stencils ( ) const
inline

accessor

IVSFAB<MBStencil> *m_stencils[dit] lives on m_ghostCells[dit] and has 1 component. For each IntVect thisGhostCell in IntVectSet m_ghostCellsdit, MBStencil *m_stencils[dit](thisGhostCell, 0) contains the interpolation stencil for thisGhostCell.

References CH_assert, isDefined(), and m_stencils.

◆ vectorstencils()

const LayoutData< RefCountedPtr< IVSFAB<MBVectorStencil> > >& MultiBlockLevelExchange::vectorstencils ( ) const
inline

accessor

IVSFAB<MBVectorStencil> *m_vectorstencils[dit] lives on m_ghostCells[dit] and has 1 component. For each IntVect thisGhostCell in IntVectSet m_ghostCellsdit, MBVectorStencil *m_vectorstencils[dit](thisGhostCell, 0) contains the vector interpolation stencil for thisGhostCell.

References CH_assert, isDefined(), and m_vectorstencils.

◆ isDefined()

bool MultiBlockLevelExchange::isDefined ( ) const
inline

◆ removeNoValidSource()

virtual void MultiBlockLevelExchange::removeNoValidSource ( )
protectedvirtual

remove from m_ghostCells all cells that do not have complete stencils.

Referenced by isDefined().

Member Data Documentation

◆ m_isDefined

bool MultiBlockLevelExchange::m_isDefined
protected

is defined?

Referenced by isDefined(), and MultiBlockLevelExchange().

◆ m_isVectorDefined

bool MultiBlockLevelExchange::m_isVectorDefined
protected

is defined for vector transformations?

Referenced by MultiBlockLevelExchange().

◆ m_type

IndexType MultiBlockLevelExchange::m_type
protected

either IndexType::TheCellType() for averaged, or IndexType::TheNodeType() for centered

◆ m_grids

DisjointBoxLayout MultiBlockLevelExchange::m_grids
protected

underlying grids

◆ m_ghosts

int MultiBlockLevelExchange::m_ghosts
protected

width of ghost layer around m_grids, at which data will be filled in

◆ m_order

int MultiBlockLevelExchange::m_order
protected

order of approximation wanted

◆ m_radius

int MultiBlockLevelExchange::m_radius
protected

radius of neighborhood of data used for interpolation to ghost cell

◆ m_degree

int MultiBlockLevelExchange::m_degree
protected

degree of Taylor polynomials

◆ m_degreeBox

Box MultiBlockLevelExchange::m_degreeBox
protected

[0:m_degree]^D

◆ m_powers

Vector<IntVect> MultiBlockLevelExchange::m_powers
protected

powers in Taylor polynomial

◆ m_numTaylorCoeffs

int MultiBlockLevelExchange::m_numTaylorCoeffs
protected

number of coefficients in Taylor polynomial

◆ m_geomPtr

MultiBlockLevelGeom* MultiBlockLevelExchange::m_geomPtr
protected

contains topological and geometric information

◆ m_coordSysPtr

MultiBlockCoordSys* MultiBlockLevelExchange::m_coordSysPtr
protected

contains coordinate systems; from m_geomPtr

◆ m_gridsFull

DisjointBoxLayout MultiBlockLevelExchange::m_gridsFull
protected

original underlying grids

◆ m_nblocks

int MultiBlockLevelExchange::m_nblocks
protected

Number of mapping blocks.

◆ m_ghostCells

LayoutData< IntVectSet > MultiBlockLevelExchange::m_ghostCells
protected

extra-block ghost cells of m_grids that need to be filled in

Referenced by ghostCells().

◆ m_fixedDims

Interval MultiBlockLevelExchange::m_fixedDims
protected

interval of dimensions that are fixed. Default empty.

◆ m_fixedDimsVect

Vector<int> MultiBlockLevelExchange::m_fixedDimsVect
protected

dimensions that are fixed. Default empty.

◆ m_interpDimsVect

Vector<int> MultiBlockLevelExchange::m_interpDimsVect
protected

dimensions that are not fixed. Default 0:SpaceDim-1.

◆ m_fixedPt

Vector<int> MultiBlockLevelExchange::m_fixedPt
protected

fixed values of dimensions that are fixed. Default empty.

◆ m_gridsFixedOff

BoxLayout MultiBlockLevelExchange::m_gridsFixedOff
protected

displacement of original underlying grids from m_grids: 0 in m_interpDimsVect but varying in m_fixedDimsVect

◆ m_allGridsHaveFixedPt

bool MultiBlockLevelExchange::m_allGridsHaveFixedPt
protected

whether all original underlying grids contain m_fixedPt in m_fixedDimsVect

◆ m_stencils

LayoutData< RefCountedPtr< IVSFAB<MBStencil> > > MultiBlockLevelExchange::m_stencils
protected

interpolation stencils

For each dit, IVSFAB<MBStencil> *m_stencils[dit] lives on IntVectSet m_ghostCells[dit] and has 1 component, containing the stencil for each extra-block ghost cell of m_grids[dit].

Referenced by stencils().

◆ m_vectorstencils

LayoutData< RefCountedPtr< IVSFAB<MBVectorStencil> > > MultiBlockLevelExchange::m_vectorstencils
protected

vector interpolation stencils

For each dit, IVSFAB<MBVectorStencil> *m_vectorstencils[dit] lives on IntVectSet m_ghostCells[dit] and has 1 component, containing the vector stencil for each extra-block ghost cell of m_grids[dit].

Referenced by vectorstencils().

◆ m_validLayout

Vector<BoxLayout*> MultiBlockLevelExchange::m_validLayout
protected

for each source block, min Box containing valid cells

For each srcBlock and dit, Box (*(m_validLayout[srcBlock]))[dit] is the minimum Box containing all valid cells that are needed to fill in the ghost cells of m_ghostCells[dit].

◆ m_validFullLayout

Vector<BoxLayout*> MultiBlockLevelExchange::m_validFullLayout
protected

◆ m_stencilCellsMinBox

Vector< RefCountedPtr< LayoutData<Box> > > MultiBlockLevelExchange::m_stencilCellsMinBox
protected

◆ m_stencilCellsFullMinBox

Vector< RefCountedPtr< LayoutData<Box> > > MultiBlockLevelExchange::m_stencilCellsFullMinBox
protected

◆ m_copiers

Vector<Copier*> MultiBlockLevelExchange::m_copiers
protected

Copier *m_copiers[srcBlock] for copying from m_grids to BoxLayout *m_validLayout[srcBlock].

◆ m_copiersFull

Vector<Copier*> MultiBlockLevelExchange::m_copiersFull
protected

◆ m_mbUtil

MultiBlockUtil* MultiBlockLevelExchange::m_mbUtil
protected

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