Chombo + EB + MF  3.2
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
TensorCFInterp Class Reference

Quadratic coarse-fine interpolation utility for tensors. More...

#include <TensorCFInterp.H>

Inheritance diagram for TensorCFInterp:
Inheritance graph
[legend]

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 More...
 
 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 ()
 
virtual ~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 More...
 

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

DisjointBoxLayout m_coarsenedFineBoxes
 
int m_level
 
int m_nComp
 
int m_refRatio
 
Real m_dxFine
 
ProblemDomain m_probDomain
 
LayoutData< QuadCFStencilm_loQCFS [SpaceDim]
 
LayoutData< QuadCFStencilm_hiQCFS [SpaceDim]
 
LayoutData< TensorFineStencilSetm_loFineStencilSets [SpaceDim]
 this contains info for the fine-level differencing More...
 
LayoutData< TensorFineStencilSetm_hiFineStencilSets [SpaceDim]
 
LevelData< FArrayBoxm_coarsenedFineBuffer
 
DisjointBoxLayout m_inputFineLayout
 
DisjointBoxLayout m_inputCoarLayout
 
bool m_isDefined
 has full define function been called? More...
 
bool m_fineCoversCoarse
 

Detailed Description

Quadratic coarse-fine interpolation utility for tensors.

Class to fill ghost cells on coarse-fine interface using quadratic interpolation. Also computes tangential derivatives

Constructor & Destructor Documentation

◆ TensorCFInterp() [1/3]

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() [2/3]

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() [3/3]

TensorCFInterp::TensorCFInterp ( )

Default constructor leaves TCFI undefined.

◆ ~TensorCFInterp()

virtual TensorCFInterp::~TensorCFInterp ( )
virtual

Member Function Documentation

◆ define() [1/2]

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

◆ define() [2/2]

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

◆ clear()

void TensorCFInterp::clear ( )

return TCFI to undefined state

◆ coarseFineInterp() [1/2]

void TensorCFInterp::coarseFineInterp ( LevelData< FArrayBox > &  a_phif,
LevelData< FArrayBox > &  a_gradf,
const LevelData< FArrayBox > &  a_phic 
)

Coarse / Fine interpolation operator.

◆ coarseFineInterpH()

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.

◆ isDefined()

bool TensorCFInterp::isDefined ( ) const

has full define function been called? return true if so

◆ gradIndex()

static int TensorCFInterp::gradIndex ( int  ivar,
int  gradDir 
)
inlinestatic

returns component in gradient for variable ivar in direction gradDir

returns ivar*SpaceDim + gradDir

References SpaceDim.

Referenced by ViscousBaseDomainBC::getFluxFromGrad(), LinearAnalytic::gradVal(), ConstAnalytic::gradVal(), QuadAnalytic::gradVal(), and CubeAnalytic::gradVal().

◆ coarseFineInterp() [2/2]

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

◆ getPhiStar()

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

◆ interpOnIVS()

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

◆ computeTanGrad()

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

Member Data Documentation

◆ m_coarsenedFineBoxes

DisjointBoxLayout TensorCFInterp::m_coarsenedFineBoxes
protected

◆ m_level

int TensorCFInterp::m_level
protected

◆ m_nComp

int TensorCFInterp::m_nComp
protected

◆ m_refRatio

int TensorCFInterp::m_refRatio
protected

◆ m_dxFine

Real TensorCFInterp::m_dxFine
protected

◆ m_probDomain

ProblemDomain TensorCFInterp::m_probDomain
protected

◆ m_loQCFS

LayoutData<QuadCFStencil> TensorCFInterp::m_loQCFS[SpaceDim]
protected

◆ m_hiQCFS

LayoutData<QuadCFStencil> TensorCFInterp::m_hiQCFS[SpaceDim]
protected

◆ m_loFineStencilSets

LayoutData<TensorFineStencilSet> TensorCFInterp::m_loFineStencilSets[SpaceDim]
protected

this contains info for the fine-level differencing

◆ m_hiFineStencilSets

LayoutData<TensorFineStencilSet> TensorCFInterp::m_hiFineStencilSets[SpaceDim]
protected

◆ m_coarsenedFineBuffer

LevelData<FArrayBox> TensorCFInterp::m_coarsenedFineBuffer
protected

◆ m_inputFineLayout

DisjointBoxLayout TensorCFInterp::m_inputFineLayout
protected

◆ m_inputCoarLayout

DisjointBoxLayout TensorCFInterp::m_inputCoarLayout
protected

◆ m_isDefined

bool TensorCFInterp::m_isDefined
protected

has full define function been called?

◆ m_fineCoversCoarse

bool TensorCFInterp::m_fineCoversCoarse
protected

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