Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

FineInterp Class Reference

replaces fine level data with interpolation of coarse level data. More...

#include <FineInterp.H>

Collaboration diagram for FineInterp:

Collaboration graph
[legend]
List of all members.

Public Methods

 FineInterp ()
 ~FineInterp ()
 FineInterp (const DisjointBoxLayout &a_fine_domain, const int &a_numcomps, const int &a_ref_ratio, const Box &a_fine_problem_domain)
 FineInterp (const DisjointBoxLayout &a_fine_domain, const int &a_numcomps, const int &a_ref_ratio, const ProblemDomain &a_fine_problem_domain)
void define (const DisjointBoxLayout &a_fine_domain, const int &a_numcomps, const int &a_ref_ratio, const Box &a_fine_problem_domain)
void define (const DisjointBoxLayout &a_fine_domain, const int &a_numcomps, const int &a_ref_ratio, const ProblemDomain &a_fine_problem_domain)
bool isDefined () const
void interpToFine (LevelData< FArrayBox > &a_fine_data, const LevelData< FArrayBox > &a_coarse_data)

Protected Methods

void interpGridData (BaseFab< Real > &a_fine, const BaseFab< Real > &a_coarse, const Box &a_coarsened_fine_box, int a_ref_ratio) const

Protected Attributes

bool is_defined
int m_ref_ratio
LevelData< FArrayBoxm_coarsened_fine_data
ProblemDomain m_coarse_problem_domain

Detailed Description

replaces fine level data with interpolation of coarse level data.

This class replaces data at a fine level of refinement with data interpolated from a coarser level of refinement. Interpolation is piecewise bi(tri)linear, with van Leer slopes if there is room for the stencil, with lower-order slopes if there isn't. See the design document.


Constructor & Destructor Documentation

FineInterp::FineInterp  
 

Default constructor. User must subsequently call define().

FineInterp::~FineInterp  
 

Destructor.

FineInterp::FineInterp const DisjointBoxLayout   a_fine_domain,
const int &    a_numcomps,
const int &    a_ref_ratio,
const Box   a_fine_problem_domain
 

Defining constructor. Constructs a valid object. Equivalent to default construction followed by define().

{\bf Arguments:}\ a_fine_domain (not modified): the fine level domain.\ a_numcomps (not modified): the number of components.\ a_ref_ratio (not modified): the refinement ratio.\ a_fine_problem_domain (not modified): problem domain at the fine level.\

FineInterp::FineInterp const DisjointBoxLayout   a_fine_domain,
const int &    a_numcomps,
const int &    a_ref_ratio,
const ProblemDomain   a_fine_problem_domain
 

Defining constructor. Constructs a valid object. Equivalent to default construction followed by define().

{\bf Arguments:}\ a_fine_domain (not modified): the fine level domain.\ a_numcomps (not modified): the number of components.\ a_ref_ratio (not modified): the refinement ratio.\ a_fine_problem_domain (not modified): problem domain at the fine level.\


Member Function Documentation

void FineInterp::define const DisjointBoxLayout   a_fine_domain,
const int &    a_numcomps,
const int &    a_ref_ratio,
const ProblemDomain   a_fine_problem_domain
 

Defines this object. Existing information is overriden.

{\bf Arguments:}\ a_fine_domain (not modified): the fine level domain.\ a_numcomps (not modified): the number of components.\ a_ref_ratio (not modified): the refinement ratio.\ a_fine_problem_domain (not modified): problem domain at the fine level.\

{\bf This:}\ ---This object is modified.---

void FineInterp::define const DisjointBoxLayout   a_fine_domain,
const int &    a_numcomps,
const int &    a_ref_ratio,
const Box   a_fine_problem_domain
 

Defines this object. Existing information is overriden.

{\bf Arguments:}\ a_fine_domain (not modified): the fine level domain.\ a_numcomps (not modified): the number of components.\ a_ref_ratio (not modified): the refinement ratio.\ a_fine_problem_domain (not modified): problem domain at the fine level.\

{\bf This:}\ ---This object is modified.---

void FineInterp::interpGridData BaseFab< Real > &    a_fine,
const BaseFab< Real > &    a_coarse,
const Box   a_coarsened_fine_box,
int    a_ref_ratio
const [protected]
 

void FineInterp::interpToFine LevelData< FArrayBox > &    a_fine_data,
const LevelData< FArrayBox > &    a_coarse_data
 

Replaces a_fine_data with data interpolated from a_coarse_data. It is an error to call if not this->isDefined(). The domain of a_fine_data should be the same as the fine domain specified in the most recent call to define(). It is expected that the coarse and fine level's domains are properly nested. Both a_coarse_data and a_fine_data should have the same number of components specified in the most recent call to define().

{\bf Arguments:}\ a_fine_data (modified): fine data. \ a_coarse_data (not modified): coarse data. \

{\bf This:}\ Well, it's complicated. As far as the user is concerned, this object is not modified. See the design document if you care for details.

bool FineInterp::isDefined   const
 

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

{\bf This:}\ This object is not modified.


Member Data Documentation

bool FineInterp::is_defined [protected]
 

ProblemDomain FineInterp::m_coarse_problem_domain [protected]
 

LevelData<FArrayBox> FineInterp::m_coarsened_fine_data [protected]
 

int FineInterp::m_ref_ratio [protected]
 


The documentation for this class was generated from the following file:
Generated on Tue Jul 2 10:44:08 2002 for Chombo by doxygen1.2.16