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() [1/3]

MultiBlockLevelCopier::MultiBlockLevelCopier ( )
inline

◆ ~MultiBlockLevelCopier()

virtual MultiBlockLevelCopier::~MultiBlockLevelCopier ( )
virtual

destructor

Referenced by MultiBlockLevelCopier().

◆ MultiBlockLevelCopier() [2/3]

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

full constructor

◆ MultiBlockLevelCopier() [3/3]

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

Member Function Documentation

◆ undefine()

virtual void MultiBlockLevelCopier::undefine ( )
virtual

Referenced by MultiBlockLevelCopier().

◆ define() [1/2]

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

◆ define() [2/2]

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

◆ defineVector()

virtual void MultiBlockLevelCopier::defineVector ( )
virtual

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

Referenced by MultiBlockLevelCopier().

◆ copyTo() [1/2]

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

Referenced by MultiBlockLevelCopier().

◆ copyTo() [2/2]

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

◆ copyToVector() [1/2]

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

Referenced by MultiBlockLevelCopier().

◆ copyToVector() [2/2]

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.

◆ copyToAllWithVector()

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

Referenced by MultiBlockLevelCopier().

◆ extraCells()

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

accessor

References CH_assert, isDefined(), and m_extraCellsIVS.

◆ stencils()

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.

◆ isDefined()

bool MultiBlockLevelCopier::isDefined ( ) const
inline

References m_isDefined.

Referenced by extraCells(), and stencils().

Member Data Documentation

◆ m_isDefined

bool MultiBlockLevelCopier::m_isDefined
protected

is defined?

Referenced by isDefined(), and MultiBlockLevelCopier().

◆ m_isVectorDefined

bool MultiBlockLevelCopier::m_isVectorDefined
protected

is defined for vector transformations?

Referenced by MultiBlockLevelCopier().

◆ m_type

IndexType MultiBlockLevelCopier::m_type
protected

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

◆ m_srcLayout

DisjointBoxLayout MultiBlockLevelCopier::m_srcLayout
protected

underlying source grids

◆ m_srcFullLayout

DisjointBoxLayout MultiBlockLevelCopier::m_srcFullLayout
protected

◆ m_dstLayout

BoxLayout MultiBlockLevelCopier::m_dstLayout
protected

underlying destination grids

◆ m_dstFixedOff

BoxLayout MultiBlockLevelCopier::m_dstFixedOff
protected

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

◆ m_allGridsHaveFixedPt

bool MultiBlockLevelCopier::m_allGridsHaveFixedPt
protected

whether all original underlying grids contain m_fixedPt in m_fixedDimsVect

◆ m_blockNumbersDst

LayoutData<int> MultiBlockLevelCopier::m_blockNumbersDst
protected

block number of base box of each box in m_dstLayout

◆ m_order

int MultiBlockLevelCopier::m_order
protected

order of approximation wanted

◆ m_radius

int MultiBlockLevelCopier::m_radius
protected

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

◆ m_degree

int MultiBlockLevelCopier::m_degree
protected

degree of Taylor polynomials

◆ m_degreeBox

Box MultiBlockLevelCopier::m_degreeBox
protected

[0:m_degree]^D

◆ m_powers

Vector<IntVect> MultiBlockLevelCopier::m_powers
protected

powers in Taylor polynomial

◆ m_numTaylorCoeffs

int MultiBlockLevelCopier::m_numTaylorCoeffs
protected

number of coefficients in Taylor polynomial

◆ m_geomPtr

MultiBlockLevelGeom* MultiBlockLevelCopier::m_geomPtr
protected

contains topological and geometric information

◆ m_coordSysPtr

MultiBlockCoordSys* MultiBlockLevelCopier::m_coordSysPtr
protected

contains coordinate systems; from m_geomPtr

◆ m_nblocks

int MultiBlockLevelCopier::m_nblocks
protected

Number of mapping blocks.

◆ m_extraCellsIVS

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

◆ m_validBlock

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.

◆ m_validIndices

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.

◆ m_validMappedCenter

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.

◆ m_fixedDims

Interval MultiBlockLevelCopier::m_fixedDims
protected

interval of dimensions that are fixed. Default empty.

◆ m_fixedDimsVect

Vector<int> MultiBlockLevelCopier::m_fixedDimsVect
protected

dimensions that are fixed. Default empty.

◆ m_interpDimsVect

Vector<int> MultiBlockLevelCopier::m_interpDimsVect
protected

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

◆ m_fixedPt

Vector<int> MultiBlockLevelCopier::m_fixedPt
protected

fixed values of dimensions that are fixed. Default empty.

◆ m_gridsFixedOff

BoxLayout MultiBlockLevelCopier::m_gridsFixedOff
protected

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

◆ m_stencils

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

◆ m_vectorstencils

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

◆ m_validLayout

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

◆ m_validFullLayout

Vector<BoxLayout*> MultiBlockLevelCopier::m_validFullLayout
protected

◆ m_stencilCellsMinBox

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

◆ m_stencilCellsFullMinBox

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

◆ m_copiers

Vector<Copier*> MultiBlockLevelCopier::m_copiers
protected

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

◆ m_copiersFull

Vector<Copier*> MultiBlockLevelCopier::m_copiersFull
protected

◆ m_mbUtil

MultiBlockUtil* MultiBlockLevelCopier::m_mbUtil
protected

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