class QuadCFStencil

class to encapsulate CF info for quadratic interpolation

Inheritance:

QuadCFStencil


public members:

Derivative functions
Real computeSecondDerivative( const BaseFab<Real> & a_phic, int a_derivdir, int a_ivar, const IntVect& a_ivin, Real a_dx) const
Real computeFirstDerivative( const BaseFab<Real> & a_phic, int a_derivdir, int a_ivar, const IntVect& a_ivin, Real a_dx) const
Real computeMixedDerivative( const BaseFab<Real> & a_phic, int a_ivar, const IntVect& a_ivin, Real a_dx) const
QuadCFStencil()
~QuadCFStencil()
QuadCFStencil( const Box& a_fine_domain, const Box& a_grid, const DisjointBoxLayout & a_fineBoxes, const DisjointBoxLayout & a_coarBoxes, int a_refRatio, int a_direction, Side::LoHiSide a_hiorlo)
QuadCFStencil( const ProblemDomain & a_fine_domain, const Box& a_grid, const DisjointBoxLayout & a_fineBoxes, const DisjointBoxLayout & a_coarBoxes, int a_refRatio, int a_direction, Side::LoHiSide a_hiorlo)
void define( const Box& a_fine_domain, const Box& a_grid, const DisjointBoxLayout & a_fineBoxes, const DisjointBoxLayout & a_coarBoxes, int a_refRatio, int a_direction, Side::LoHiSide a_hiorlo)
void define( const ProblemDomain & a_fine_domain, const Box& a_grid, const DisjointBoxLayout & a_fineBoxes, const DisjointBoxLayout & a_coarBoxes, int a_refRatio, int a_direction, Side::LoHiSide a_hiorlo)

Access functions
bool isDefined() const
bool isEmpty() const
const IntVectSet & getFineIVS() const
const IntVectSet & getCoarIVS() const

protected members:

IntVectSet m_ivsStandard
IntVectSet m_ivsQuadd
BaseFab< DerivStencil > m_mixedSten
BaseFab< DerivStencil > m_second[SpaceDim]
BaseFab< DerivStencil > m_firstD[SpaceDim]
BaseFab<bool> m_dropOrd
CFStencil m_baseCFS

Documentation

QuadCFStencil is a wrapper around a bunch of things that allow LevelOp to do coarse-fine interpolation on a particular face of a grid.
Real computeSecondDerivative ( const BaseFab<Real> & a_phic, int a_derivdir, int a_ivar, const IntVect& a_ivin, Real a_dx) const
compute second derivative in devdir_a direction at coarse point a_ivin Uses centered finite diff approximation if ivs_standard_m.contains(a_ivin ). Otherwise, it uses the stencil from second_m Asserts that a_derivdir != direction of face

Real computeFirstDerivative ( const BaseFab<Real> & a_phic, int a_derivdir, int a_ivar, const IntVect& a_ivin, Real a_dx) const
compute first derivative in devdir_a direction at coarse point a_ivin Uses centered finite diff approximation if ivs_standard_m.contains(a_ivin ). Otherwise, it uses the stencil from firstd_m Asserts that a_derivdir != direction of face

Real computeMixedDerivative ( const BaseFab<Real> & a_phic, int a_ivar, const IntVect& a_ivin, Real a_dx) const
compute mixed derivative (direction is unambiguous. x and y are the two directions tangential to face) at coarse point a_ivin.
In two dimensions, always returns 0.
Uses centered finite diff approximation if ivs_standard_m.contains(a_ivin ). It uses the stencil from mixed_sten_m.
Returns 0 if SpaceDim != 3

bool isDefined () const
has full define function been called? return true if so

bool isEmpty () const
are there any interpolation points?
returns false if so.

const IntVectSet & getFineIVS () const
get fine intvects which need to be interpolated
This will be empty if isEmpty() returns true

const IntVectSet & getCoarIVS () const
get coarse intvects that underly fiinterpivs. This will be empty if isEmpty() returns true

IntVectSet m_ivsStandard
set of all points which have ALL their derivatives taken normally. This means that no stencil either leaves the domain or intersects the next finer level.

IntVectSet m_ivsQuadd
set of all points which have at least one derivative shifted

Derivative stencils. Only defined at intvects where there is at least one non-standard derivative to take (ie. at all points of ivs_Quadd)

BaseFab< DerivStencil > m_mixedSten
stencil information for mixed derivatives undefined if SpaceDim != 3

BaseFab< DerivStencil > m_second[SpaceDim]
stencil information for unmixed derivatives (second derivatives)

BaseFab< DerivStencil > m_firstD[SpaceDim]
stencil information for unmixed derivatives (first derivatives)

BaseFab<bool> m_dropOrd
whether to drop order at any one-sided point


this class has no child classes.

alphabetic index hierarchy of classes


Chombo

Copyright Notice

This software is copyright (C) by the Lawrence Berkeley National Laboratory. Permission is granted to reproduce this software for non-commercial purposes provided that this notice is left intact.

It is acknowledged that the U.S. Government has rights to this software under Contract DE-AC03-765F00098 between the U.S. Department of Energy and the University of California.

This software is provided as a professional and academic contribution for joint exchange. Thus it is experimental, is provided ``as is'', with no warranties of any kind whatsoever, no support, no promise of updates, or printed documentation. By using this software, you acknowledge that the Lawrence Berkeley National Laboratory and Regents of the University of California shall have no liability with respect to the infringement of other copyrights by any part of this software.