Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members

GradDivOp Class Reference

Operator class for computing grad(div U). More...

#include <GradDivOp.H>

Collaboration diagram for GradDivOp:

Collaboration graph
[legend]
List of all members.

Public Member Functions

bool isDefined () const
void define (const DisjointBoxLayout &Ba, const DisjointBoxLayout *base_ba, Real DxLevel, int refratio, const Box &domf, bool a_homogeneousOnly=false, int ncomp=1)
void define (const DisjointBoxLayout &Ba, const DisjointBoxLayout *base_ba, Real DxLevel, int refratio, const ProblemDomain &domf, bool a_homogeneousOnly=false, int ncomp=1)
void define (const GradDivOp *opfine, int refratio)
 GradDivOp ()
 ~GradDivOp ()
void applyOpI (LevelData< FArrayBox > &a_LOfU, LevelData< FArrayBox > &a_U, const LevelData< FArrayBox > *a_UCoarse)
void applyOpIcfHphys (LevelData< FArrayBox > &a_LOfU, LevelData< FArrayBox > &a_U, const LevelData< FArrayBox > *a_UCoarse)
void applyOpH (LevelData< FArrayBox > &a_LOfU, LevelData< FArrayBox > &a_U)
void CFInterp (LevelData< FArrayBox > &a_U, const LevelData< FArrayBox > &a_UCoarse)
void applyOpHcfIphys (LevelData< FArrayBox > &a_LofU, LevelData< FArrayBox > &a_U)
void computeFaceDiv (LevelData< FluxBox > &a_divU, LevelData< FArrayBox > &a_U, const LevelData< FArrayBox > *a_UCoarse)
 compute face-centered divergence of U with inhomogeneous BC's
void computeFaceDivH (LevelData< FluxBox > &a_divU, LevelData< FArrayBox > &a_U)
 compute face-centered divergence of U with homogeneous BC's
void homogeneousCFInterp (LevelData< FArrayBox > &a_U)
void setDomainGhostBC (const DomainGhostBC &a_dombcin)
void setTanGradBC (const DomainGhostBC &a_dombcIn)
 set boundary conditions for tangential gradients (for divergence)
void homogeneousCFInterpU (LevelData< FArrayBox > &a_Uf, const DataIndex &a_datInd, int a_idir, Side::LoHiSide a_hiorlo)
void homogeneousCFInterpTanGrad (LevelData< FArrayBox > &a_tanGrad, const LevelData< FArrayBox > &a_U, const DataIndex &a_datInd, int a_idir, Side::LoHiSide a_hiorlo)
void getFlux (FArrayBox &flux, const FArrayBox &a_data, const DataIndex &a_datInd, int a_dir)
const LevelData< FArrayBox > & getTanGrad () const
 access function

Protected Attributes

DomainGhostBC m_domghostbc
DomainGhostBC m_tangradbc
ProblemDomain m_domain
DisjointBoxLayout m_grids
Copier m_exchangeCopier
DisjointBoxLayout m_baseBA
int m_ncomp
int m_refRatio
Real m_dxLevel
Real m_dxCrse
TensorCFInterp m_quadCFI
LevelData< FArrayBoxm_tanGrad
bool m_isDefined
bool m_isBCDefined
bool m_isGradBCDefined
bool m_ihcfiEnabled
LayoutData< CFIVSm_loCFIVS [SpaceDim]
LayoutData< CFIVSm_hiCFIVS [SpaceDim]
LayoutData< TensorFineStencilSetm_hiTanStencilSets [SpaceDim]
LayoutData< TensorFineStencilSetm_loTanStencilSets [SpaceDim]

Detailed Description

Operator class for computing grad(div U).

Note that this class is not derived from LevelOp. Contains functionality to compute face-centered divergence of a cell-centered vector field, then compute cell-centered gradient of the face-centered divergence.


Constructor & Destructor Documentation

GradDivOp::GradDivOp  ) 
 

GradDivOp::~GradDivOp  ) 
 


Member Function Documentation

void GradDivOp::applyOpH LevelData< FArrayBox > &  a_LOfU,
LevelData< FArrayBox > &  a_U
 

Evaluate Operator, homogeneous C/F boundary conditions. and homogeneous physical boundary conditions

void GradDivOp::applyOpHcfIphys LevelData< FArrayBox > &  a_LofU,
LevelData< FArrayBox > &  a_U
 

Evaluate Operator, homogeneous C/F boundary conditions. with inhomogeneous physical boundary conditions

void GradDivOp::applyOpI LevelData< FArrayBox > &  a_LOfU,
LevelData< FArrayBox > &  a_U,
const LevelData< FArrayBox > *  a_UCoarse
 

Evaluate grad(div(U)) Operator, inhomogeneous C/F boundary conditions. and inhomogeneous phys boundary conditions

void GradDivOp::applyOpIcfHphys LevelData< FArrayBox > &  a_LOfU,
LevelData< FArrayBox > &  a_U,
const LevelData< FArrayBox > *  a_UCoarse
 

Evaluate Operator, inhomogeneous C/F boundary conditions. with homogeneous physical boundary conditions

void GradDivOp::CFInterp LevelData< FArrayBox > &  a_U,
const LevelData< FArrayBox > &  a_UCoarse
 

Coarse / Fine interpolation operator.

void GradDivOp::computeFaceDiv LevelData< FluxBox > &  a_divU,
LevelData< FArrayBox > &  a_U,
const LevelData< FArrayBox > *  a_UCoarse
 

compute face-centered divergence of U with inhomogeneous BC's

void GradDivOp::computeFaceDivH LevelData< FluxBox > &  a_divU,
LevelData< FArrayBox > &  a_U
 

compute face-centered divergence of U with homogeneous BC's

void GradDivOp::define const GradDivOp opfine,
int  refratio
 

Full define function. define from finer levelop.

void GradDivOp::define const DisjointBoxLayout Ba,
const DisjointBoxLayout base_ba,
Real  DxLevel,
int  refratio,
const ProblemDomain domf,
bool  a_homogeneousOnly = false,
int  ncomp = 1
 

Full define function. makes all coarse-fine information and sets internal variables

void GradDivOp::define const DisjointBoxLayout Ba,
const DisjointBoxLayout base_ba,
Real  DxLevel,
int  refratio,
const Box domf,
bool  a_homogeneousOnly = false,
int  ncomp = 1
 

Full define function. makes all coarse-fine information and sets internal variables

void GradDivOp::getFlux FArrayBox flux,
const FArrayBox a_data,
const DataIndex a_datInd,
int  a_dir
 

get flux( == flux at THIS level) The fluxes live on the cell faces with direction dir. Fluxes are computed for all interior edges of data. The flux fab is resized inside the routine.

const LevelData<FArrayBox>& GradDivOp::getTanGrad  )  const
 

access function

void GradDivOp::homogeneousCFInterp LevelData< FArrayBox > &  a_U  ) 
 

homogeneous coarse/fine interpolation operator

void GradDivOp::homogeneousCFInterpTanGrad LevelData< FArrayBox > &  a_tanGrad,
const LevelData< FArrayBox > &  a_U,
const DataIndex a_datInd,
int  a_idir,
Side::LoHiSide  a_hiorlo
 

does homogeneous coarse/fine interpolation for tangential gradient (needs U ghost cells to be filled in first, so should call homogeneousCFInterpU first)

void GradDivOp::homogeneousCFInterpU LevelData< FArrayBox > &  a_Uf,
const DataIndex a_datInd,
int  a_idir,
Side::LoHiSide  a_hiorlo
 

does homogeneous coarse/fine interpolation for U

bool GradDivOp::isDefined  )  const
 

void GradDivOp::setDomainGhostBC const DomainGhostBC a_dombcin  ) 
 

void GradDivOp::setTanGradBC const DomainGhostBC a_dombcIn  ) 
 

set boundary conditions for tangential gradients (for divergence)

note that bc's need to be defined to handle SpaceDim^2 components (intervals (0, SpaceDim*SpaceDim-1) ). grad components are stored as follows: component_0 x-derivative, component_0 y-dirivative, component_0 z-derivative (if 3d), component_1 x-derivative, component_1 y-derivative, etc.


Member Data Documentation

DisjointBoxLayout GradDivOp::m_baseBA [protected]
 

ProblemDomain GradDivOp::m_domain [protected]
 

DomainGhostBC GradDivOp::m_domghostbc [protected]
 

Real GradDivOp::m_dxCrse [protected]
 

Real GradDivOp::m_dxLevel [protected]
 

Copier GradDivOp::m_exchangeCopier [protected]
 

DisjointBoxLayout GradDivOp::m_grids [protected]
 

LayoutData<CFIVS> GradDivOp::m_hiCFIVS[SpaceDim] [protected]
 

LayoutData<TensorFineStencilSet> GradDivOp::m_hiTanStencilSets[SpaceDim] [protected]
 

bool GradDivOp::m_ihcfiEnabled [protected]
 

bool GradDivOp::m_isBCDefined [protected]
 

bool GradDivOp::m_isDefined [protected]
 

bool GradDivOp::m_isGradBCDefined [protected]
 

LayoutData<CFIVS> GradDivOp::m_loCFIVS[SpaceDim] [protected]
 

LayoutData<TensorFineStencilSet> GradDivOp::m_loTanStencilSets[SpaceDim] [protected]
 

int GradDivOp::m_ncomp [protected]
 

TensorCFInterp GradDivOp::m_quadCFI [protected]
 

int GradDivOp::m_refRatio [protected]
 

LevelData<FArrayBox> GradDivOp::m_tanGrad [protected]
 

DomainGhostBC GradDivOp::m_tangradbc [protected]
 


The documentation for this class was generated from the following file:
Generated on Wed Oct 5 12:47:46 2005 for Chombo&AMRIdealMHD by  doxygen 1.4.1