Chombo + EB  3.0
Protected Attributes | Private Member Functions | List of all members
NodeQCFI Class Reference

Class to interpolate quadratically at coarse/fine interface. More...

#include <NodeQCFI.H>

Public Member Functions

Constructors, destructor and defines
 NodeQCFI ()
 
 NodeQCFI (const DisjointBoxLayout &a_grids, Real a_dx, const ProblemDomain &a_domain, const LayoutData< NodeCFIVS > *const a_loCFIVS, const LayoutData< NodeCFIVS > *const a_hiCFIVS, int a_refToCoarse, NodeBCFunc a_bc, int a_interpolationDegree=2, int a_ncomp=1, bool a_verbose=false)
 
 NodeQCFI (const DisjointBoxLayout &a_grids, Real a_dx, const Box &a_domain, const LayoutData< NodeCFIVS > *const a_loCFIVS, const LayoutData< NodeCFIVS > *const a_hiCFIVS, int a_refToCoarse, NodeBCFunc a_bc, int a_interpolationDegree=2, int a_ncomp=1, bool a_verbose=false)
 
 ~NodeQCFI ()
 
void define (const DisjointBoxLayout &a_grids, Real a_dx, const ProblemDomain &a_domain, const LayoutData< NodeCFIVS > *const a_loCFIVS, const LayoutData< NodeCFIVS > *const a_hiCFIVS, int a_refToCoarse, NodeBCFunc a_bc, int a_interpolationDegree=2, int a_ncomp=1, bool a_verbose=false)
 
void define (const DisjointBoxLayout &a_grids, Real a_dx, const Box &a_domain, const LayoutData< NodeCFIVS > *const a_loCFIVS, const LayoutData< NodeCFIVS > *const a_hiCFIVS, int a_refToCoarse, NodeBCFunc a_bc, int a_interpolationDegree=2, int a_ncomp=1, bool a_verbose=false)
 
Access functions
bool isDefined () const
 
Parameter-setting functions
void setVerbose (bool a_verbose)
 
Data modification functions
void coarseFineInterp (LevelData< NodeFArrayBox > &a_phiFine, const LevelData< NodeFArrayBox > &a_phiCoarse, bool a_inhomogeneous)
 

Protected Attributes

NodeBCFunc m_bc
 
DisjointBoxLayout m_grids
 
int m_ncomp
 
int m_refToCoarse
 
int m_coarsenings
 
bool m_isDefined
 
Real m_dx
 
Real m_dxPenultimate
 
ProblemDomain m_domainPenultimate
 
Vector< LevelData< NodeFArrayBox > *> m_inter
 
Vector< NodeQuadCFInterp2 *> m_qcfi2
 
Vector< LayoutData< NodeCFIVS > *> m_loCFIVScoarser
 
Vector< LayoutData< NodeCFIVS > *> m_hiCFIVScoarser
 
bool m_verbose
 

Private Member Functions

void clearMemory ()
 
void setDefaultValues ()
 

Detailed Description

Class to interpolate quadratically at coarse/fine interface.

Constructor & Destructor Documentation

◆ NodeQCFI() [1/3]

NodeQCFI::NodeQCFI ( )

Default constructor. User must subsequently call define().

◆ NodeQCFI() [2/3]

NodeQCFI::NodeQCFI ( const DisjointBoxLayout a_grids,
Real  a_dx,
const ProblemDomain a_domain,
const LayoutData< NodeCFIVS > *const  a_loCFIVS,
const LayoutData< NodeCFIVS > *const  a_hiCFIVS,
int  a_refToCoarse,
NodeBCFunc  a_bc,
int  a_interpolationDegree = 2,
int  a_ncomp = 1,
bool  a_verbose = false 
)

Constructor calls setDefaultValues() and then calls define() with the same arguments.

◆ NodeQCFI() [3/3]

NodeQCFI::NodeQCFI ( const DisjointBoxLayout a_grids,
Real  a_dx,
const Box a_domain,
const LayoutData< NodeCFIVS > *const  a_loCFIVS,
const LayoutData< NodeCFIVS > *const  a_hiCFIVS,
int  a_refToCoarse,
NodeBCFunc  a_bc,
int  a_interpolationDegree = 2,
int  a_ncomp = 1,
bool  a_verbose = false 
)

Constructor calls setDefaultValues() and then calls define() with the same arguments.

◆ ~NodeQCFI()

NodeQCFI::~NodeQCFI ( )

Destructor.

Member Function Documentation

◆ define() [1/2]

void NodeQCFI::define ( const DisjointBoxLayout a_grids,
Real  a_dx,
const ProblemDomain a_domain,
const LayoutData< NodeCFIVS > *const  a_loCFIVS,
const LayoutData< NodeCFIVS > *const  a_hiCFIVS,
int  a_refToCoarse,
NodeBCFunc  a_bc,
int  a_interpolationDegree = 2,
int  a_ncomp = 1,
bool  a_verbose = false 
)

Full define function. Makes all coarse-fine information and sets internal variables. The current level is taken to be the fine level.

Parameters
a_gridsCELL-centered grids at this level
a_dxmesh spacing at this level
a_domainCELL-centered physical domain at this level
a_loCFIVSpointer to object storing coarse/fine interface nodes
a_hiCFIVSpointer to object storing coarse/fine interface nodes
a_refToCoarserefinement ratio between this and next coarser level
a_interpolationDegreedegree of interpolation; 1 for (bi)linear, 2 for (bi)quadratic
a_ncompnumber of components of data
a_verboseverbose output flag

◆ define() [2/2]

void NodeQCFI::define ( const DisjointBoxLayout a_grids,
Real  a_dx,
const Box a_domain,
const LayoutData< NodeCFIVS > *const  a_loCFIVS,
const LayoutData< NodeCFIVS > *const  a_hiCFIVS,
int  a_refToCoarse,
NodeBCFunc  a_bc,
int  a_interpolationDegree = 2,
int  a_ncomp = 1,
bool  a_verbose = false 
)

Full define function. Makes all coarse-fine information and sets internal variables. The current level is taken to be the fine level.

Parameters
a_gridsCELL-centered grids at this level
a_dxmesh spacing at this level
a_domainCELL-centered physical domain at this level
a_loCFIVSpointer to object storing coarse/fine interface nodes
a_hiCFIVSpointer to object storing coarse/fine interface nodes
a_refToCoarserefinement ratio between this and next coarser level
a_interpolationDegreedegree of interpolation, 1 for (bi)linear, 2 for (bi)quadratic
a_ncompnumber of components of data
a_verboseverbose output flag

◆ isDefined()

bool NodeQCFI::isDefined ( ) const

Returns true if this object was created with the defining constructor or if define() has been called.

◆ setVerbose()

void NodeQCFI::setVerbose ( bool  a_verbose)

Set whether to give output. Default is false.

◆ coarseFineInterp()

void NodeQCFI::coarseFineInterp ( LevelData< NodeFArrayBox > &  a_phiFine,
const LevelData< NodeFArrayBox > &  a_phiCoarse,
bool  a_inhomogeneous 
)

Coarse / Fine (inhomogeneous) interpolation operator. Fill the nodes of a_phi on the coarse/fine interface with interpolated data from a_phiCoarse.

Parameters
a_phiFinedata at this level
a_phiCoarsedata at the next coarser level
a_inhomogeneouswhether to apply inhomogeneous physical boundary conditions?

◆ clearMemory()

void NodeQCFI::clearMemory ( )
private

◆ setDefaultValues()

void NodeQCFI::setDefaultValues ( )
private

Member Data Documentation

◆ m_bc

NodeBCFunc NodeQCFI::m_bc
protected

◆ m_grids

DisjointBoxLayout NodeQCFI::m_grids
protected

CELL-centered grids at the current level (the finer level)

◆ m_ncomp

int NodeQCFI::m_ncomp
protected

number of components of data, needed for setting size of work array

◆ m_refToCoarse

int NodeQCFI::m_refToCoarse
protected

refinement ratio between this and the next coarser level

◆ m_coarsenings

int NodeQCFI::m_coarsenings
protected

the number of coarsenings to be done: this is log2(m_refToCoarse)

◆ m_isDefined

bool NodeQCFI::m_isDefined
protected

has full define function been called?

◆ m_dx

Real NodeQCFI::m_dx
protected

mesh spacing at this (fine) level

◆ m_dxPenultimate

Real NodeQCFI::m_dxPenultimate
protected

mesh spacing at coarsest level refined by 2

◆ m_domainPenultimate

ProblemDomain NodeQCFI::m_domainPenultimate
protected

CELL-centered physical domain of coarsest level refined by 2

◆ m_inter

Vector< LevelData<NodeFArrayBox>* > NodeQCFI::m_inter
protected

data at intermediate coarsening levels; Vector length m_coarsenings-1.

◆ m_qcfi2

Vector< NodeQuadCFInterp2* > NodeQCFI::m_qcfi2
protected

Vector of interpolating objects, of length m_coarsenings. m_qcfi2[i] averages refined versions of the SAME grids if i > 1, and in general DIFFERENT grids if i == 0.

◆ m_loCFIVScoarser

Vector< LayoutData<NodeCFIVS>* > NodeQCFI::m_loCFIVScoarser
protected

pointers to objects storing coarse/fine interface nodes between levels of refinement, including intermediate ones

◆ m_hiCFIVScoarser

Vector< LayoutData<NodeCFIVS>* > NodeQCFI::m_hiCFIVScoarser
protected

pointers to objects storing coarse/fine interface nodes between levels of refinement, including intermediate ones

◆ m_verbose

bool NodeQCFI::m_verbose
protected

if true, print out extra information


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