QuadCFStencil Class Reference

#include <QuadCFStencil.H>

List of all members.


Detailed Description

class to encapsulate CF info for quadratic interpolation

QuadCFStencil is a wrapper around a bunch of things that allow LevelOp to do coarse-fine interpolation on a particular face of a grid.

Public Member Functions

Real computeSecondDerivative (const BaseFab< Real > &a_phic, int a_derivdir, int a_ivar, const IntVect &a_ivin, Real a_dx) const
 { Derivative functions}
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)
void define (const ProblemDomain &a_fine_domain, const Box &a_grid, const Vector< Box > &a_periodicBoxes, const Vector< Box > &a_coarsenedPeriodicBoxes, const DisjointBoxLayout &a_coarBoxes, int a_refRatio, int a_direction, Side::LoHiSide a_hiorlo)
 faster constructor that requires the use of CFStencil::buildPeriodicVector
bool isDefined () const
 { Access functions}
bool isEmpty () const
const IntVectSetgetFineIVS () const
const IntVectSetgetCoarIVS () const
bool finePacked () const
const BoxpackedBox () const

Protected Attributes

bool m_isDefined
int m_direction
IntVectSet m_ivsStandard
IntVectSet m_ivsQuadd
BaseFab< DerivStencilm_mixedSten
BaseFab< DerivStencilm_second [SpaceDim]
BaseFab< DerivStencilm_firstD [SpaceDim]
BaseFab< bool > m_dropOrd
CFStencil m_baseCFS

Private Member Functions

void setDefaultValues ()
void addFabToSten (const BaseFab< Real > &fabin_a, DerivStencil &sten_a)
void operator= (const QuadCFStencil &cfs_in)
 QuadCFStencil (const QuadCFStencil &cfs_in)
void buildStencils (const IntVectSet &ivsAllGood)


Constructor & Destructor Documentation

QuadCFStencil::QuadCFStencil (  ) 

QuadCFStencil::~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::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 
)

QuadCFStencil::QuadCFStencil ( const QuadCFStencil cfs_in  )  [inline, private]


Member Function Documentation

Real QuadCFStencil::computeSecondDerivative ( const BaseFab< Real > &  a_phic,
int  a_derivdir,
int  a_ivar,
const IntVect a_ivin,
Real  a_dx 
) const

{ Derivative functions}

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 QuadCFStencil::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 QuadCFStencil::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

void QuadCFStencil::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 QuadCFStencil::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 
)

void QuadCFStencil::define ( const ProblemDomain a_fine_domain,
const Box a_grid,
const Vector< Box > &  a_periodicBoxes,
const Vector< Box > &  a_coarsenedPeriodicBoxes,
const DisjointBoxLayout a_coarBoxes,
int  a_refRatio,
int  a_direction,
Side::LoHiSide  a_hiorlo 
)

faster constructor that requires the use of CFStencil::buildPeriodicVector

bool QuadCFStencil::isDefined (  )  const

{ Access functions}

has full define function been called? return true if so

bool QuadCFStencil::isEmpty (  )  const [inline]

are there any interpolation points? \ returns false if so.

References CH_assert, CFStencil::isDefined(), CFStencil::isEmpty(), and m_baseCFS.

const IntVectSet& QuadCFStencil::getFineIVS (  )  const [inline]

get fine intvects which need to be interpolated \ This will be empty if isEmpty() returns true

References CH_assert, CFStencil::getFineIVS(), CFStencil::isDefined(), and m_baseCFS.

const IntVectSet& QuadCFStencil::getCoarIVS (  )  const [inline]

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

References CH_assert, CFStencil::getCoarIVS(), CFStencil::isDefined(), and m_baseCFS.

bool QuadCFStencil::finePacked (  )  const [inline]

References CFStencil::isPacked(), and m_baseCFS.

const Box& QuadCFStencil::packedBox (  )  const [inline]

void QuadCFStencil::setDefaultValues (  )  [private]

void QuadCFStencil::addFabToSten ( const BaseFab< Real > &  fabin_a,
DerivStencil sten_a 
) [private]

void QuadCFStencil::operator= ( const QuadCFStencil cfs_in  )  [inline, private]

void QuadCFStencil::buildStencils ( const IntVectSet ivsAllGood  )  [private]


Member Data Documentation

bool QuadCFStencil::m_isDefined [protected]

int QuadCFStencil::m_direction [protected]

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.

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) stencil information for mixed derivatives undefined if SpaceDim != 3

stencil information for unmixed derivatives (second derivatives)

stencil information for unmixed derivatives (first derivatives)

BaseFab<bool> QuadCFStencil::m_dropOrd [protected]

whether to drop order at any one-sided point


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

Generated on Wed Nov 22 04:04:09 2017 for Chombo + EB by  doxygen 1.5.5