11 #ifndef _FOURTHORDERMAPPEDFINEINTERP_H_ 12 #define _FOURTHORDERMAPPEDFINEINTERP_H_ 32 #include "NamespaceHeader.H" 208 const bool a_willFillGhostsWithCrFnJU =
true,
234 const char*
const a_CrDataType,
333 int offset2Key(
const int *
const a_offsets)
const;
611 #include "NamespaceFooter.H"
The class MultiBlockLevelGeom stores topological and geometric information.
Definition: MultiBlockLevelGeom.H:29
DisjointBoxLayout m_CrFnGrid
The coarsened-fine boxes.
Definition: FourthOrderMappedFineInterp.H:422
Definition: FourthOrderMappedFineInterp.H:162
bool isGridDefined() const
True if coarsend-fine grid data defined.
Definition: FourthOrderMappedFineInterp.H:490
bool properNesting(const DisjointBoxLayout &a_CrBoxes, const DisjointBoxLayout &a_CrFnBoxes, LevelGridMetrics *const a_CrMetricsPtr) const
Check for proper nesting of the fine level in the coarse level.
int m_numCrFnFillGhost
Definition: FourthOrderMappedFineInterp.H:453
The class MultiBlockLevelCopierAverage stores topological and geometric information.
Definition: MultiBlockLevelCopierAverage.H:25
CHArray< IntVectSet, 1 > m_ivsStencilMask
Masks for the various stencils.
Definition: FourthOrderMappedFineInterp.H:382
An irregular domain on an integer lattice.
Definition: IntVectSet.H:44
#define CH_assert(cond)
Definition: CHArray.H:37
A class to facilitate interaction with physical boundary conditions.
Definition: ProblemDomain.H:141
CHArray< Box, 1, ArZeroCol > m_FnBoxFillInterp
Definition: FourthOrderMappedFineInterp.H:449
FourthOrderMappedFineInterp(const int a_degree, const int a_nComp)
Non-defining construction.
void loadAvgGradXip(Real *a_gradXip, const RealVect &a_dxi, const RealVect a_h) const
Load gradients of for all p.
bool m_isMultiblock
T - A multiblock coordinates system.
Definition: FourthOrderMappedFineInterp.H:463
FourthOrderMappedFineInterp & operator=(const FourthOrderMappedFineInterp &)
Definition: FourthOrderMappedFineInterp.H:160
bool m_willFillGhostsWithCrFnJU
Definition: FourthOrderMappedFineInterp.H:373
A strange but true thing to make copying from one boxlayoutdata to another fast.
Definition: Copier.H:152
void loadAvgXipA(Real *a_A, const RealVect &a_dxi, const RealVect a_h) const
Load for all p.
CHArray< Real, SpaceDim+1, ArRangeCol > m_avgXipFine
Definition: FourthOrderMappedFineInterp.H:405
virtual void interpToFine(LevelData< FArrayBox > &a_FnLevJU, const LevelData< FArrayBox > &a_FnLevJ, const LevelData< FArrayBox > &a_CrLevU, const LevelData< FArrayBox > &a_CrLevJU, LevelGridMetrics *const a_CrMetricsPtr, const Interval &a_vectorIntv)
Interpolate from a coarse to fine level on a mapped grid.
bool isCrFnJDefined() const
True if coarse-fine <J> defined.
Definition: FourthOrderMappedFineInterp.H:513
int nComp() const
Return the number of components.
Definition: FourthOrderMappedFineInterp.H:595
IntVect m_CrInterpRadVec
Definition: FourthOrderMappedFineInterp.H:439
iterates through the IntVects of a Box
Definition: BoxIterator.H:37
CHArray< Real, SpaceDim+1, ArRangeCol > m_avgGradXipFine
Definition: FourthOrderMappedFineInterp.H:412
virtual LevelData< FArrayBox > & presetCrFnLevU()
Preset the coarsened-fine <U> externally.
Definition: FourthOrderMappedFineInterp.H:525
const int SpaceDim
Definition: SPACE.H:38
virtual LevelData< FArrayBox > & presetCrFnLevJU()
Preset the coarsened-fine <JU> externally.
Definition: FourthOrderMappedFineInterp.H:539
virtual void defineGrids(const DisjointBoxLayout &a_FnGrid, const DisjointBoxLayout &a_CrGrid, const ProblemDomain &a_CrProblemDomain, const IntVect &a_FnInterpRadVec=IntVect::Zero, const bool a_willFillGhostsWithCrFnJU=true, const MultiBlockLevelGeom *const a_mbgeoPtr=0)
Define that allocates data for coarse representations of the fine grid.
const int m_degree
Degree of interpolating polynomial.
Definition: FourthOrderMappedFineInterp.H:359
CrFnStatus
Status of internal coarsened-fine data.
Definition: FourthOrderMappedFineInterp.H:158
IntVect m_refRatio
Refinement ratios between the levels.
Definition: FourthOrderMappedFineInterp.H:364
std::map< int, int > m_mapStencilIndex
Definition: FourthOrderMappedFineInterp.H:376
int m_numUniqueDx
Definition: FourthOrderMappedFineInterp.H:366
Structure for passing component ranges in code.
Definition: Interval.H:23
Copier m_copier
Definition: FourthOrderMappedFineInterp.H:429
virtual void defineStencils(const IntVect &a_refRatio, const RealVect &a_h)
Define that initializes the stencils.
virtual void invalidateCrFnLevData()
Invalidate the CrFn data, both <U> and <JU>
Definition: FourthOrderMappedFineInterp.H:574
virtual void interpCrFnToFine(LevelData< FArrayBox > &a_FnLevJU, const LevelData< FArrayBox > &a_FnLevJ, const DisjointBoxLayout &a_CrFnGrid, const LevelData< FArrayBox > &a_CrFnLevU, const LevelData< FArrayBox > &a_CrFnLevJU, LevelGridMetrics *const a_CrMetricsPtr) const
Interpolate from a coarsened-fine to fine level on a mapped grid.
A multi-dimensional array class for Chombo.
double Real
Definition: REAL.H:33
Grid metrics for a level.
Definition: LevelGridMetrics.H:223
void sortEachSetDx(int *const a_a, int *const a_b) const
Sort sets of dimensions with the same mesh spacing.
void selectStencil(const IntVect a_center, const ProblemDomain &a_CrProblemDomain, int &a_iStencil, CoordTransform &a_ctStoP, CoordTransform &a_ctPtoS, IntVect &a_offset, IntVect &a_fineSmlEnd) const
LevelData< FArrayBox > m_CrFnLevJU
Definition: FourthOrderMappedFineInterp.H:425
const int m_nComp
Definition: FourthOrderMappedFineInterp.H:362
IntVect m_FnInterpRadVec
Definition: FourthOrderMappedFineInterp.H:437
const IntVect & CrFnNumGhost() const
Get the number of ghosts used to build the coarsened-fine data.
Definition: FourthOrderMappedFineInterp.H:584
A BoxLayout that has a concept of disjointedness.
Definition: DisjointBoxLayout.H:30
void fillGhosts(LevelData< FArrayBox > &a_FnLevU, LevelData< FArrayBox > &a_FnLevJU, const LevelData< FArrayBox > &a_FnLevJ, const LevelData< FArrayBox > &a_CrLevData, const char *const a_CrDataType, const ProblemDomain &a_CrProblemDomain)
Fill the invalid ghost cells on a mapped grid.
virtual void defineCFInterface(LevelGridMetrics *const a_CrMetricsPtr)
Define that initializes the coarse-fine interface for filling ghosts.
int m_numStencil
Number of possible stencils.
Definition: FourthOrderMappedFineInterp.H:365
IntVect m_CrFnNumGhost
Definition: FourthOrderMappedFineInterp.H:441
bool isMultiblock() const
Is this a multiblock grid.
Definition: FourthOrderMappedFineInterp.H:606
int m_uniqueDx[SpaceDim]
Definition: FourthOrderMappedFineInterp.H:368
static const IntVect Zero
Definition: IntVect.H:658
LayoutData< IntVectSet > m_CrFnFillInterp
Definition: FourthOrderMappedFineInterp.H:443
A Rectangular Domain on an Integer Lattice.
Definition: Box.H:469
A Real vector in SpaceDim-dimensional space.
Definition: RealVect.H:41
bool isCFInterfaceDefined() const
True if coarse-fine interface defined.
Definition: FourthOrderMappedFineInterp.H:501
Definition: FourthOrderMappedFineInterp.H:161
MultiBlockLevelCopierAverage m_mbcp
Definition: FourthOrderMappedFineInterp.H:431
int m_CrFnStatus
Definition: FourthOrderMappedFineInterp.H:458
int offset2Key(const int *const a_offsets) const
Get the stencil key from a list of offsets.
virtual void defineCrFnJ(const LevelData< FArrayBox > &a_CrJ)
Define that saves the coarse <J> on the coarsened-fine layout.
CHArray< CHMatrix, 1, ArZeroCol, ArSp::ArrayOfMatrixAlloc > m_At
Definition: FourthOrderMappedFineInterp.H:384
An integer Vector in SpaceDim-dimensional space.
Definition: CHArray.H:42
CHArray< Real, SpaceDim+1, ArRangeCol > * m_fnGradXiLSx
Definition: FourthOrderMappedFineInterp.H:399
Definition: FArrayBox.H:45
bool m_defined[4]
Definition: FourthOrderMappedFineInterp.H:370
LevelData< FArrayBox > m_CrFnLevU
Definition: FourthOrderMappedFineInterp.H:423
Interpolate from coarse cells to valid fine cells on mapped grids.
Definition: FourthOrderMappedFineInterp.H:153
LayoutData< BaseFab< int > > m_ArIdxFillInterp
Definition: FourthOrderMappedFineInterp.H:446
CHArray< Real, SpaceDim+1, ArRangeCol > m_avgXiKpFine
Definition: FourthOrderMappedFineInterp.H:408
LevelData< FArrayBox > m_CrFnLevJ
Definition: FourthOrderMappedFineInterp.H:427
Iterator for an IntVectSet.
Definition: IntVectSet.H:640
void loadAvgXiKpA(Real *a_A, const RealVect &a_dxi, const RealVect a_h) const
Load for all p, evaluated with K.
bool isStencilDefined() const
True if stencil defined.
Definition: FourthOrderMappedFineInterp.H:479
CHArray< Real, SpaceDim+1, ArRangeCol > * m_fnXiLSx
Definition: FourthOrderMappedFineInterp.H:393
~FourthOrderMappedFineInterp()
Destructor.
const int m_stencilExtent
Definition: FourthOrderMappedFineInterp.H:360