#include <MultiBlockLevelCopier.H>

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. | |
| void | setGetConditionNumber (bool a_getConditionNumber) |
| whether to find condition number in define() | |
| const LayoutData< IntVectSet > & | extraCells () const |
| accessor | |
| const LayoutData< IVSFAB< Real > * > & | conditionNumber () 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 | |
| bool | m_getConditionNumber |
| whether to calculate condition numbers. Default false. | |
| 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< int > | m_powers |
| powers in Taylor polynomial | |
| int | m_numTaylorCoeffs |
| number of coefficients in Taylor polynomial | |
| MultiBlockLevelGeom * | m_geomPtr |
| contains topological and geometric information | |
| MultiBlockCoordSys * | m_coordSysPtr |
| contains coordinate systems; from m_geomPtr | |
| int | m_nblocks |
| Number of mapping blocks. | |
| LayoutData< IntVectSet > | m_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. | |
| LayoutData< IVSFAB< Real > * > | m_conditionNumber |
| condition number of interpolation. Has 1 component. Lives on m_extraCells | |
| 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 | |
| Vector< BoxLayout * > | m_validLayout |
| for each source block, min Box containing valid cells | |
| Vector< BoxLayout * > | m_validFullLayout |
| Vector< Copier * > | m_copiers |
| Copier *m_copiers[srcBlock] for copying from m_grids to BoxLayout *m_validLayout[srcBlock]. | |
| Vector< Copier * > | m_copiersFull |
| MultiBlockUtil * | m_mbUtil |
| MultiBlockLevelCopier::MultiBlockLevelCopier | ( | ) | [inline] |
| 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 | |||
| ) |
| virtual void MultiBlockLevelCopier::undefine | ( | ) | [virtual] |
Reimplemented in MultiBlockLevelCopierAverage, and MultiBlockLevelCopierCenter.
| virtual void MultiBlockLevelCopier::define | ( | const MultiBlockLevelGeom * | a_geomPtr, | |
| const BoxLayout & | a_dstLayout, | |||
| int | a_order | |||
| ) | [virtual] |
Reimplemented in MultiBlockLevelCopierAverage, and MultiBlockLevelCopierCenter.
| virtual void MultiBlockLevelCopier::define | ( | const MultiBlockLevelGeom * | a_geomPtr, | |
| const DisjointBoxLayout & | a_dstDisjointLayout, | |||
| const IntVect & | a_ghostVect, | |||
| int | a_order | |||
| ) | [virtual] |
Reimplemented in MultiBlockLevelCopierAverage, and MultiBlockLevelCopierCenter.
| virtual void MultiBlockLevelCopier::defineVector | ( | ) | [virtual] |
must be in the derived class, else error when calling.
Reimplemented in MultiBlockLevelCopierAverage, and MultiBlockLevelCopierCenter.
| 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.
Reimplemented in MultiBlockLevelCopierAverage, and MultiBlockLevelCopierCenter.
| void MultiBlockLevelCopier::setGetConditionNumber | ( | bool | a_getConditionNumber | ) | [inline] |
| const LayoutData< IntVectSet >& MultiBlockLevelCopier::extraCells | ( | ) | const [inline] |
| const LayoutData< IVSFAB<Real>* >& MultiBlockLevelCopier::conditionNumber | ( | ) | const [inline] |
| 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] |
bool MultiBlockLevelCopier::m_isDefined [protected] |
bool MultiBlockLevelCopier::m_isVectorDefined [protected] |
IndexType MultiBlockLevelCopier::m_type [protected] |
either IndexType::TheCellType() for averaged, or IndexType::TheNodeType() for centered
bool MultiBlockLevelCopier::m_getConditionNumber [protected] |
whether to calculate condition numbers. Default false.
Referenced by MultiBlockLevelCopier(), and setGetConditionNumber().
DisjointBoxLayout MultiBlockLevelCopier::m_srcLayout [protected] |
underlying source grids
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] |
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<int> 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.
LayoutData< IVSFAB<Real>* > MultiBlockLevelCopier::m_conditionNumber [protected] |
condition number of interpolation. Has 1 component. Lives on m_extraCells
Referenced by conditionNumber().
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().
Vector<BoxLayout*> MultiBlockLevelCopier::m_validLayout [protected] |
Vector<BoxLayout*> MultiBlockLevelCopier::m_validFullLayout [protected] |
Vector<Copier*> MultiBlockLevelCopier::m_copiers [protected] |
Vector<Copier*> MultiBlockLevelCopier::m_copiersFull [protected] |
MultiBlockUtil* MultiBlockLevelCopier::m_mbUtil [protected] |
1.5.5