#include <TensorCFInterp.H>
Class to fill ghost cells on coarse-fine interface using quadratic interpolation. Also computes tangential derivatives
Public Member Functions | |
TensorCFInterp (const DisjointBoxLayout &a_fineBoxes, const DisjointBoxLayout *a_coarBoxes, Real a_dxFine, int a_refRatio, int a_nComp, const Box &a_domf) | |
constructors, destructors, defines | |
TensorCFInterp (const DisjointBoxLayout &a_fineBoxes, const DisjointBoxLayout *a_coarBoxes, Real a_dxFine, int a_refRatio, int a_nComp, const ProblemDomain &a_domf) | |
void | define (const DisjointBoxLayout &a_fineBoxes, const DisjointBoxLayout *a_coarBoxes, Real a_dxFine, int a_refRatio, int a_nComp, const Box &a_domf) |
void | define (const DisjointBoxLayout &a_fineBoxes, const DisjointBoxLayout *a_coarBoxes, Real a_dxFine, int a_refRatio, int a_nComp, const ProblemDomain &a_domf) |
TensorCFInterp () | |
~TensorCFInterp () | |
void | clear () |
void | coarseFineInterp (LevelData< FArrayBox > &a_phif, LevelData< FArrayBox > &a_gradf, const LevelData< FArrayBox > &a_phic) |
void | coarseFineInterpH (LevelData< FArrayBox > &a_phif, LevelData< FArrayBox > &a_gradf) |
bool | isDefined () const |
Static Public Member Functions | |
static int | gradIndex (int ivar, int gradDir) |
returns component in gradient for variable ivar in direction gradDir | |
Protected Member Functions | |
void | coarseFineInterp (BaseFab< Real > &a_phif, BaseFab< Real > &a_gradf, BaseFab< Real > &a_tanGradStar, const BaseFab< Real > &a_phic, const QuadCFStencil &a_qcfs, const Side::LoHiSide a_hiorlo, const int a_idir, const Interval &a_variables) const |
void | getPhiStar (BaseFab< Real > &a_phistar, BaseFab< Real > &a_tanGradStar, const BaseFab< Real > &a_phic, const QuadCFStencil &a_qcfs, const Side::LoHiSide a_hiorlo, const int a_idir, const Interval &a_variables) const |
void | interpOnIVS (BaseFab< Real > &a_phif, BaseFab< Real > &a_gradf, const BaseFab< Real > &a_phiStar, const QuadCFStencil &a_qcfs, const Side::LoHiSide a_hiorlo, const int a_idir, const Interval &a_variables) const |
void | computeTanGrad (BaseFab< Real > &a_gradf, const BaseFab< Real > &a_phiFine, const BaseFab< Real > &a_tanGradStar, const TensorFineStencilSet &a_fineStencils, const QuadCFStencil &a_qcfs, const Side::LoHiSide &a_hiorlo, const int a_idir, const Interval &a_variables) const |
Protected Attributes | |
BoxLayout | m_loCoarBoxes [SpaceDim] |
BoxLayout | m_hiCoarBoxes [SpaceDim] |
int | m_level |
int | m_nComp |
int | m_refRatio |
Real | m_dxFine |
ProblemDomain | m_probDomain |
LayoutData< QuadCFStencil > | m_loQCFS [SpaceDim] |
LayoutData< QuadCFStencil > | m_hiQCFS [SpaceDim] |
LayoutData< TensorFineStencilSet > | m_loFineStencilSets [SpaceDim] |
this contains info for the fine-level differencing | |
LayoutData< TensorFineStencilSet > | m_hiFineStencilSets [SpaceDim] |
BoxLayoutData< FArrayBox > | m_hiCoarBuffer [SpaceDim] |
Copier | m_hiCoarCopiers [SpaceDim] |
BoxLayoutData< FArrayBox > | m_loCoarBuffer [SpaceDim] |
Copier | m_loCoarCopiers [SpaceDim] |
DisjointBoxLayout | m_inputFineLayout |
DisjointBoxLayout | m_inputCoarLayout |
bool | m_isDefined |
has full define function been called? |
TensorCFInterp::TensorCFInterp | ( | const DisjointBoxLayout & | a_fineBoxes, | |
const DisjointBoxLayout * | a_coarBoxes, | |||
Real | a_dxFine, | |||
int | a_refRatio, | |||
int | a_nComp, | |||
const Box & | a_domf | |||
) |
constructors, destructors, defines
Full Constructor. makes all coarse-fine information and sets internal variables calls full define
TensorCFInterp::TensorCFInterp | ( | const DisjointBoxLayout & | a_fineBoxes, | |
const DisjointBoxLayout * | a_coarBoxes, | |||
Real | a_dxFine, | |||
int | a_refRatio, | |||
int | a_nComp, | |||
const ProblemDomain & | a_domf | |||
) |
Full Constructor. makes all coarse-fine information and sets internal variables calls full define
TensorCFInterp::TensorCFInterp | ( | ) |
Default constructor leaves TCFI undefined.
TensorCFInterp::~TensorCFInterp | ( | ) |
void TensorCFInterp::define | ( | const DisjointBoxLayout & | a_fineBoxes, | |
const DisjointBoxLayout * | a_coarBoxes, | |||
Real | a_dxFine, | |||
int | a_refRatio, | |||
int | a_nComp, | |||
const Box & | a_domf | |||
) |
Full define function. Makes all coarse-fine information and sets internal variables
void TensorCFInterp::define | ( | const DisjointBoxLayout & | a_fineBoxes, | |
const DisjointBoxLayout * | a_coarBoxes, | |||
Real | a_dxFine, | |||
int | a_refRatio, | |||
int | a_nComp, | |||
const ProblemDomain & | a_domf | |||
) |
Full define function. makes all coarse-fine information and sets internal variables
void TensorCFInterp::clear | ( | ) |
return TCFI to undefined state
void TensorCFInterp::coarseFineInterp | ( | LevelData< FArrayBox > & | a_phif, | |
LevelData< FArrayBox > & | a_gradf, | |||
const LevelData< FArrayBox > & | a_phic | |||
) |
Coarse / Fine interpolation operator.
void TensorCFInterp::coarseFineInterpH | ( | LevelData< FArrayBox > & | a_phif, | |
LevelData< FArrayBox > & | a_gradf | |||
) |
Coarse-fine interpolation operator with homogeneous BCs. Does same interpolation as coarseFineInterp function, but with all coarse-level data set to 0.
bool TensorCFInterp::isDefined | ( | ) | const |
has full define function been called? return true if so
static int TensorCFInterp::gradIndex | ( | int | ivar, | |
int | gradDir | |||
) | [inline, static] |
returns component in gradient for variable ivar in direction gradDir
returns ivar*SpaceDim + gradDir
References SpaceDim.
void TensorCFInterp::coarseFineInterp | ( | BaseFab< Real > & | a_phif, | |
BaseFab< Real > & | a_gradf, | |||
BaseFab< Real > & | a_tanGradStar, | |||
const BaseFab< Real > & | a_phic, | |||
const QuadCFStencil & | a_qcfs, | |||
const Side::LoHiSide | a_hiorlo, | |||
const int | a_idir, | |||
const Interval & | a_variables | |||
) | const [protected] |
void TensorCFInterp::getPhiStar | ( | BaseFab< Real > & | a_phistar, | |
BaseFab< Real > & | a_tanGradStar, | |||
const BaseFab< Real > & | a_phic, | |||
const QuadCFStencil & | a_qcfs, | |||
const Side::LoHiSide | a_hiorlo, | |||
const int | a_idir, | |||
const Interval & | a_variables | |||
) | const [protected] |
void TensorCFInterp::interpOnIVS | ( | BaseFab< Real > & | a_phif, | |
BaseFab< Real > & | a_gradf, | |||
const BaseFab< Real > & | a_phiStar, | |||
const QuadCFStencil & | a_qcfs, | |||
const Side::LoHiSide | a_hiorlo, | |||
const int | a_idir, | |||
const Interval & | a_variables | |||
) | const [protected] |
void TensorCFInterp::computeTanGrad | ( | BaseFab< Real > & | a_gradf, | |
const BaseFab< Real > & | a_phiFine, | |||
const BaseFab< Real > & | a_tanGradStar, | |||
const TensorFineStencilSet & | a_fineStencils, | |||
const QuadCFStencil & | a_qcfs, | |||
const Side::LoHiSide & | a_hiorlo, | |||
const int | a_idir, | |||
const Interval & | a_variables | |||
) | const [protected] |
BoxLayout TensorCFInterp::m_loCoarBoxes[SpaceDim] [protected] |
BoxLayout TensorCFInterp::m_hiCoarBoxes[SpaceDim] [protected] |
int TensorCFInterp::m_level [protected] |
int TensorCFInterp::m_nComp [protected] |
int TensorCFInterp::m_refRatio [protected] |
Real TensorCFInterp::m_dxFine [protected] |
ProblemDomain TensorCFInterp::m_probDomain [protected] |
LayoutData<QuadCFStencil> TensorCFInterp::m_loQCFS[SpaceDim] [protected] |
LayoutData<QuadCFStencil> TensorCFInterp::m_hiQCFS[SpaceDim] [protected] |
this contains info for the fine-level differencing
BoxLayoutData<FArrayBox> TensorCFInterp::m_hiCoarBuffer[SpaceDim] [protected] |
Copier TensorCFInterp::m_hiCoarCopiers[SpaceDim] [protected] |
BoxLayoutData<FArrayBox> TensorCFInterp::m_loCoarBuffer[SpaceDim] [protected] |
Copier TensorCFInterp::m_loCoarCopiers[SpaceDim] [protected] |
DisjointBoxLayout TensorCFInterp::m_inputFineLayout [protected] |
DisjointBoxLayout TensorCFInterp::m_inputCoarLayout [protected] |
bool TensorCFInterp::m_isDefined [protected] |
has full define function been called?