MultiBlockLevelCopier Class Reference

#include <MultiBlockLevelCopier.H>

Inheritance diagram for MultiBlockLevelCopier:

Inheritance graph
[legend]

List of all members.


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.

Public Member Functions

 MultiBlockLevelCopier ()
 default constructor
virtual ~MultiBlockLevelCopier ()
 destructor
 MultiBlockLevelCopier (const MultiBlockLevelGeom *a_geomPtr, const BoxLayout &a_dstLayout, int a_order)
 full constructor
 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.
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
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
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
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.
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
const LayoutData< IntVectSet > & extraCells () const
 accessor
const LayoutData
< RefCountedPtr< IVSFAB
< MBStencil > > > & 
stencils () const
 accessor
bool isDefined () const

Protected Attributes

bool m_isDefined
 is defined?
bool m_isVectorDefined
 is defined for vector transformations?
IndexType m_type
 either IndexType::TheCellType() for averaged, or IndexType::TheNodeType() for centered
DisjointBoxLayout m_srcLayout
 underlying source grids
DisjointBoxLayout m_srcFullLayout
BoxLayout m_dstLayout
 underlying destination grids
BoxLayout m_dstFixedOff
 displacement of original destination layout from m_dstLayout: 0 in m_interpDimsVect but varying in m_fixedDimsVect
bool m_allGridsHaveFixedPt
 whether all original underlying grids contain m_fixedPt in m_fixedDimsVect
LayoutData< int > m_blockNumbersDst
 block number of base box of each box in m_dstLayout
int m_order
 order of approximation wanted
int m_radius
 radius of neighborhood of data used for interpolation to extra-block cell
int m_degree
 degree of Taylor polynomials
Box m_degreeBox
 [0:m_degree]^D
Vector< IntVectm_powers
 powers in Taylor polynomial
int m_numTaylorCoeffs
 number of coefficients in Taylor polynomial
MultiBlockLevelGeomm_geomPtr
 contains topological and geometric information
MultiBlockCoordSysm_coordSysPtr
 contains coordinate systems; from m_geomPtr
int m_nblocks
 Number of mapping blocks.
LayoutData< IntVectSetm_extraCellsIVS
 extra-block cells of m_dstLayout that need to be filled in, in the form of IntVectSets
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.
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.
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.
Interval m_fixedDims
 interval of dimensions that are fixed. Default empty.
Vector< int > m_fixedDimsVect
 dimensions that are fixed. Default empty.
Vector< int > m_interpDimsVect
 dimensions that are not fixed. Default 0:SpaceDim-1.
Vector< int > m_fixedPt
 fixed values of dimensions that are fixed. Default empty.
BoxLayout m_gridsFixedOff
 displacement from m_fixedPt of original underlying grids, 0 in m_interpDimsVect but varying in m_fixedDimsVect
LayoutData< RefCountedPtr
< IVSFAB< MBStencil > > > 
m_stencils
 interpolation stencils
LayoutData< RefCountedPtr
< IVSFAB< MBVectorStencil > > > 
m_vectorstencils
 vector interpolation stencils
Vector< BoxLayout * > m_validLayout
 for each source block, min Box containing valid cells
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].
Vector< Copier * > m_copiersFull
MultiBlockUtilm_mbUtil


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_ghostCells[dit] (i.e., thisGhostCell an extra-block ghost cell of m_grids[dit]), 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

is defined?

Referenced by isDefined(), and MultiBlockLevelCopier().

is defined for vector transformations?

Referenced by MultiBlockLevelCopier().

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

underlying source grids

underlying destination grids

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

whether all original underlying grids contain m_fixedPt in m_fixedDimsVect

block number of base box of each box in m_dstLayout

order of approximation wanted

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

degree of Taylor polynomials

[0:m_degree]^D

powers in Taylor polynomial

number of coefficients in Taylor polynomial

contains topological and geometric information

contains coordinate systems; from m_geomPtr

Number of mapping blocks.

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().

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

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

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

interval of dimensions that are fixed. Default empty.

dimensions that are fixed. Default empty.

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

fixed values of dimensions that are fixed. Default empty.

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

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().

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].

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].

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


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

Generated on Fri Apr 28 03:27:18 2017 for Chombo + EB + MF by  doxygen 1.5.5