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

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

#include <MultiBlockLevelCopier.H>

Inheritance diagram for MultiBlockLevelCopier:
Inheritance graph
[legend]

Public Member Functions

 MultiBlockLevelCopier ()
 default constructor More...
 
virtual ~MultiBlockLevelCopier ()
 destructor More...
 
 MultiBlockLevelCopier (const MultiBlockLevelGeom *a_geomPtr, const BoxLayout &a_dstLayout, int a_order)
 full constructor More...
 
 MultiBlockLevelCopier (const MultiBlockLevelGeom *a_geomPtr, const DisjointBoxLayout &a_dstDisjointLayout, const IntVect &a_ghostVect, int a_order)
 
virtual void undefine ()
 
virtual void define (const MultiBlockLevelGeom *a_geomPtr, const BoxLayout &a_dstLayout, int a_order)
 
virtual void define (const MultiBlockLevelGeom *a_geomPtr, const DisjointBoxLayout &a_dstDisjointLayout, const IntVect &a_ghostVect, int a_order)
 
virtual void defineVector ()
 must be in the derived class, else error when calling. More...
 
virtual void copyTo (const LevelData< FArrayBox > &a_src, BoxLayoutData< FArrayBox > &a_dst, const Interval &a_intvl) const
 copy from a_src to extra-block cells of a_dst at components in a_intvl More...
 
virtual void copyTo (const LevelData< FArrayBox > &a_src, BoxLayoutData< FArrayBox > &a_dst) const
 copy from a_src to extra-block cells of a_dst at all components More...
 
virtual void copyToVector (const LevelData< FArrayBox > &a_src, BoxLayoutData< FArrayBox > &a_dst) const
 copy from a_src to extra-block cells of vector a_dst at all components More...
 
virtual void copyToVector (const LevelData< FArrayBox > &a_src, BoxLayoutData< FArrayBox > &a_dst, const Interval &a_intvl) const
 copy from a_src to extra-block cells of vector a_dst at components in a_intvl, of length SpaceDim. Must be in the derived class, else error when calling. More...
 
virtual void copyToAllWithVector (const LevelData< FArrayBox > &a_src, BoxLayoutData< FArrayBox > &a_dst, const Interval &a_vecIntvl) const
 copy from a_src to extra-block cells of a_dst at all components where a_vecIntvl is interval of components of a vector, and the other components are scalars More...
 
const LayoutData< IntVectSet > & extraCells () const
 accessor More...
 
const LayoutData
< RefCountedPtr< IVSFAB
< MBStencil > > > & 
stencils () const
 accessor More...
 
bool isDefined () const
 

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_srcLayout
 underlying source grids More...
 
DisjointBoxLayout m_srcFullLayout
 
BoxLayout m_dstLayout
 underlying destination grids More...
 
BoxLayout m_dstFixedOff
 displacement of original destination layout from m_dstLayout: 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< int > m_blockNumbersDst
 block number of base box of each box in m_dstLayout More...
 
int m_order
 order of approximation wanted More...
 
int m_radius
 radius of neighborhood of data used for interpolation to extra-block 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...
 
int m_nblocks
 Number of mapping blocks. More...
 
LayoutData< IntVectSetm_extraCellsIVS
 extra-block cells of m_dstLayout that need to be filled in, in the form of IntVectSets More...
 
LayoutData< IVSFAB< int > * > m_validBlock
 index of the valid block in which the center of each extra-block ghost cell falls. Lives on m_extraCellsIVS, has 1 component. More...
 
LayoutData< IVSFAB< IntVect > * > m_validIndices
 index of the valid cell in which each extra-block ghost cell falls. Lives on m_extraCellsIVS, has 1 component. More...
 
LayoutData< IVSFAB< RealVect > * > m_validMappedCenter
 mapped coordinates, in valid block's index space, of center of each extra-block ghost cell. Lives on m_extraCellsIVS, has 1 component. 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 from m_fixedPt of original underlying grids, 0 in m_interpDimsVect but varying 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 MultiBlockLevelCopier stores topological and geometric information.

MultiBlockLevelCopier stores topological and geometric information about a particular layout with a particular MultiBlockCoordSys, for copying to another layout.

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

Constructor & Destructor Documentation

MultiBlockLevelCopier::MultiBlockLevelCopier ( )
inline

default constructor

References m_isDefined, and m_isVectorDefined.

virtual MultiBlockLevelCopier::~MultiBlockLevelCopier ( )
virtual

destructor

MultiBlockLevelCopier::MultiBlockLevelCopier ( const MultiBlockLevelGeom a_geomPtr,
const BoxLayout a_dstLayout,
int  a_order 
)

full constructor

MultiBlockLevelCopier::MultiBlockLevelCopier ( const MultiBlockLevelGeom a_geomPtr,
const DisjointBoxLayout a_dstDisjointLayout,
const IntVect a_ghostVect,
int  a_order 
)

Member Function Documentation

virtual void MultiBlockLevelCopier::undefine ( )
virtual
virtual void MultiBlockLevelCopier::define ( const MultiBlockLevelGeom a_geomPtr,
const BoxLayout a_dstLayout,
int  a_order 
)
virtual
virtual void MultiBlockLevelCopier::define ( const MultiBlockLevelGeom a_geomPtr,
const DisjointBoxLayout a_dstDisjointLayout,
const IntVect a_ghostVect,
int  a_order 
)
virtual
virtual void MultiBlockLevelCopier::defineVector ( )
virtual

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

virtual void MultiBlockLevelCopier::copyTo ( const LevelData< FArrayBox > &  a_src,
BoxLayoutData< FArrayBox > &  a_dst,
const Interval a_intvl 
) const
virtual

copy from a_src to extra-block cells of a_dst at components in a_intvl

virtual void MultiBlockLevelCopier::copyTo ( const LevelData< FArrayBox > &  a_src,
BoxLayoutData< FArrayBox > &  a_dst 
) const
virtual

copy from a_src to extra-block cells of a_dst at all components

virtual void MultiBlockLevelCopier::copyToVector ( const LevelData< FArrayBox > &  a_src,
BoxLayoutData< FArrayBox > &  a_dst 
) const
virtual

copy from a_src to extra-block cells of vector a_dst at all components

virtual void MultiBlockLevelCopier::copyToVector ( const LevelData< FArrayBox > &  a_src,
BoxLayoutData< FArrayBox > &  a_dst,
const Interval a_intvl 
) const
virtual

copy from a_src to extra-block cells of vector a_dst at components in a_intvl, of length SpaceDim. Must be in the derived class, else error when calling.

virtual void MultiBlockLevelCopier::copyToAllWithVector ( const LevelData< FArrayBox > &  a_src,
BoxLayoutData< FArrayBox > &  a_dst,
const Interval a_vecIntvl 
) const
virtual

copy from a_src to extra-block cells of a_dst at all components where a_vecIntvl is interval of components of a vector, and the other components are scalars

const LayoutData< IntVectSet >& MultiBlockLevelCopier::extraCells ( ) const
inline

accessor

References CH_assert, isDefined(), and m_extraCellsIVS.

const LayoutData< RefCountedPtr< IVSFAB<MBStencil> > >& MultiBlockLevelCopier::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.

bool MultiBlockLevelCopier::isDefined ( ) const
inline

References m_isDefined.

Referenced by extraCells(), and stencils().

Member Data Documentation

bool MultiBlockLevelCopier::m_isDefined
protected

is defined?

Referenced by isDefined(), and MultiBlockLevelCopier().

bool MultiBlockLevelCopier::m_isVectorDefined
protected

is defined for vector transformations?

Referenced by MultiBlockLevelCopier().

IndexType MultiBlockLevelCopier::m_type
protected

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

DisjointBoxLayout MultiBlockLevelCopier::m_srcLayout
protected

underlying source grids

DisjointBoxLayout MultiBlockLevelCopier::m_srcFullLayout
protected
BoxLayout MultiBlockLevelCopier::m_dstLayout
protected

underlying destination grids

BoxLayout MultiBlockLevelCopier::m_dstFixedOff
protected

displacement of original destination layout from m_dstLayout: 0 in m_interpDimsVect but varying in m_fixedDimsVect

bool MultiBlockLevelCopier::m_allGridsHaveFixedPt
protected

whether all original underlying grids contain m_fixedPt in m_fixedDimsVect

LayoutData<int> MultiBlockLevelCopier::m_blockNumbersDst
protected

block number of base box of each box in m_dstLayout

int MultiBlockLevelCopier::m_order
protected

order of approximation wanted

int MultiBlockLevelCopier::m_radius
protected

radius of neighborhood of data used for interpolation to extra-block cell

int MultiBlockLevelCopier::m_degree
protected

degree of Taylor polynomials

Box MultiBlockLevelCopier::m_degreeBox
protected

[0:m_degree]^D

Vector<IntVect> MultiBlockLevelCopier::m_powers
protected

powers in Taylor polynomial

int MultiBlockLevelCopier::m_numTaylorCoeffs
protected

number of coefficients in Taylor polynomial

MultiBlockLevelGeom* MultiBlockLevelCopier::m_geomPtr
protected

contains topological and geometric information

MultiBlockCoordSys* MultiBlockLevelCopier::m_coordSysPtr
protected

contains coordinate systems; from m_geomPtr

int MultiBlockLevelCopier::m_nblocks
protected

Number of mapping blocks.

LayoutData< IntVectSet > MultiBlockLevelCopier::m_extraCellsIVS
protected

extra-block cells of m_dstLayout that need to be filled in, in the form of IntVectSets

For each dit, IntVectSet m_extraCellsIVS[dit] contains the cells of m_grids[dit] that\ are not in block m_blockNumbersDst[dit].

Referenced by extraCells().

LayoutData< IVSFAB<int>* > MultiBlockLevelCopier::m_validBlock
protected

index of the valid block in which the center of each extra-block ghost cell falls. Lives on m_extraCellsIVS, has 1 component.

LayoutData< IVSFAB<IntVect>* > MultiBlockLevelCopier::m_validIndices
protected

index of the valid cell in which each extra-block ghost cell falls. Lives on m_extraCellsIVS, has 1 component.

LayoutData< IVSFAB<RealVect>* > MultiBlockLevelCopier::m_validMappedCenter
protected

mapped coordinates, in valid block's index space, of center of each extra-block ghost cell. Lives on m_extraCellsIVS, has 1 component.

Interval MultiBlockLevelCopier::m_fixedDims
protected

interval of dimensions that are fixed. Default empty.

Vector<int> MultiBlockLevelCopier::m_fixedDimsVect
protected

dimensions that are fixed. Default empty.

Vector<int> MultiBlockLevelCopier::m_interpDimsVect
protected

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

Vector<int> MultiBlockLevelCopier::m_fixedPt
protected

fixed values of dimensions that are fixed. Default empty.

BoxLayout MultiBlockLevelCopier::m_gridsFixedOff
protected

displacement from m_fixedPt of original underlying grids, 0 in m_interpDimsVect but varying in m_fixedDimsVect

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

interpolation stencils

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

Referenced by stencils().

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

vector interpolation stencils

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

Vector<BoxLayout*> MultiBlockLevelCopier::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].

Vector<BoxLayout*> MultiBlockLevelCopier::m_validFullLayout
protected
Vector< RefCountedPtr< LayoutData<Box> > > MultiBlockLevelCopier::m_stencilCellsMinBox
protected
Vector< RefCountedPtr< LayoutData<Box> > > MultiBlockLevelCopier::m_stencilCellsFullMinBox
protected
Vector<Copier*> MultiBlockLevelCopier::m_copiers
protected

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

Vector<Copier*> MultiBlockLevelCopier::m_copiersFull
protected
MultiBlockUtil* MultiBlockLevelCopier::m_mbUtil
protected

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