|
Chombo + EB
3.0
|
class to encapsulate CF info for quadratic interpolation More...
#include <QuadCFStencil.H>
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} More... | |
| 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 More... | |
| bool | isDefined () const |
| { Access functions} More... | |
| bool | isEmpty () const |
| const IntVectSet & | getFineIVS () const |
| const IntVectSet & | getCoarIVS () const |
| bool | finePacked () const |
| const Box & | packedBox () const |
Protected Attributes | |
| bool | m_isDefined |
| int | m_direction |
| 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 |
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) |
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.
| 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 | ||
| ) |
|
inlineprivate |
References buildStencils().
| 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
|
inline |
are there any interpolation points? \ returns false if so.
References CH_assert, CFStencil::isDefined(), CFStencil::isEmpty(), and m_baseCFS.
|
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.
|
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.
|
inline |
References CFStencil::isPacked(), and m_baseCFS.
|
inline |
References m_baseCFS, and CFStencil::packedBox().
|
private |
|
private |
|
inlineprivate |
|
private |
Referenced by QuadCFStencil().
|
protected |
|
protected |
|
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.
|
protected |
set of all points which have at least one derivative shifted
|
protected |
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
|
protected |
stencil information for unmixed derivatives (second derivatives)
|
protected |
stencil information for unmixed derivatives (first derivatives)
|
protected |
whether to drop order at any one-sided point
|
protected |
Referenced by finePacked(), getCoarIVS(), getFineIVS(), isEmpty(), and packedBox().
1.8.13