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

TensorOp Class Reference

LevelOp for Tensor solves. More...

#include <TensorOp.H>

Inheritance diagram for TensorOp:

Inheritance graph
[legend]
Collaboration diagram for TensorOp:

Collaboration graph
[legend]
List of all members.

Public Member Functions

virtual LevelOp * new_levelop () const
virtual bool isDefined () const
 Has this object been fully defined?
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 LevelOp *opfine, int refratio)
 TensorOp ()
 ~TensorOp ()
void smooth (LevelData< FArrayBox > &a_phi, const LevelData< FArrayBox > &a_rhs)
virtual void levelPreconditioner (LevelData< FArrayBox > &a_phihat, const LevelData< FArrayBox > &a_rhshat)
void applyOpI (LevelData< FArrayBox > &a_phi, const LevelData< FArrayBox > *a_phiCoarse, LevelData< FArrayBox > &a_LOfPhi)
void applyOpIcfHphys (LevelData< FArrayBox > &a_phi, const LevelData< FArrayBox > *a_phiCoarse, LevelData< FArrayBox > &a_LOfPhi)
void applyOpH (LevelData< FArrayBox > &a_phi, LevelData< FArrayBox > &a_LOfPhi)
void CFInterp (LevelData< FArrayBox > &a_phi, const LevelData< FArrayBox > &a_phiCoarse)
void applyOpHcfIphys (LevelData< FArrayBox > &a_phi, LevelData< FArrayBox > &a_lOfPhi)
void homogeneousCFInterp (LevelData< FArrayBox > &a_phi)
void setDomainGhostBC (const DomainGhostBC &a_dombcin)
void setTanGradBC (const DomainGhostBC &a_dombcIn)
 set boundary conditions for tangential gradients (for divergence)
void setBottomSmoother (const BaseBottomSmoother &a_bottomSmoother)
void homogeneousCFInterpPhi (LevelData< FArrayBox > &a_phif, const DataIndex &a_datInd, int a_idir, Side::LoHiSide a_hiorlo)
void homogeneousCFInterpTanGrad (LevelData< FArrayBox > &a_tanGrad, const LevelData< FArrayBox > &a_phi, const DataIndex &a_datInd, int a_idir, Side::LoHiSide a_hiorlo)
void bottomSmoother (LevelData< FArrayBox > &a_phi, const LevelData< FArrayBox > &a_rhs)
void getFlux (FArrayBox &flux, const FArrayBox &a_data, const DataIndex &a_datInd, int a_dir)
virtual void setConvergenceMetric (Real a_metric, int a_comp)
 pass-through to bottom smoother
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
BaseBottomSmoother * m_bottom_smoother_ptr
LevelData< FArrayBox > m_tanGrad
bool m_isDefined
bool m_isBCDefined
bool m_isGradBCDefined
bool m_ihcfiEnabled
LayoutData< CFIVS > m_loCFIVS [SpaceDim]
LayoutData< CFIVS > m_hiCFIVS [SpaceDim]
LayoutData< TensorFineStencilSet > m_hiTanStencilSets [SpaceDim]
LayoutData< TensorFineStencilSet > m_loTanStencilSets [SpaceDim]

Detailed Description

LevelOp for Tensor solves.

this class contains stuff to solve div (grad U) + grad(div U) = rhs


Constructor & Destructor Documentation

TensorOp::TensorOp (   ) 
 

TensorOp::~TensorOp (   ) 
 


Member Function Documentation

void TensorOp::applyOpH (  LevelData< FArrayBox > &  a_phi,
LevelData< FArrayBox > &  a_LOfPhi
)  [virtual]
 

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

Implements LevelOp.

void TensorOp::applyOpHcfIphys (  LevelData< FArrayBox > &  a_phi,
LevelData< FArrayBox > &  a_lOfPhi
)  [virtual]
 

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

Implements LevelOp.

void TensorOp::applyOpI (  LevelData< FArrayBox > &  a_phi,
const LevelData< FArrayBox > *  a_phiCoarse,
LevelData< FArrayBox > &  a_LOfPhi
)  [virtual]
 

Evaluate Operator, inhomogeneous C/F boundary conditions. and inhomogeneous phys boundary conditions

Implements LevelOp.

void TensorOp::applyOpIcfHphys (  LevelData< FArrayBox > &  a_phi,
const LevelData< FArrayBox > *  a_phiCoarse,
LevelData< FArrayBox > &  a_LOfPhi
)  [virtual]
 

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

Implements LevelOp.

void TensorOp::bottomSmoother (  LevelData< FArrayBox > &  a_phi,
const LevelData< FArrayBox > &  a_rhs
)  [virtual]
 

This does a GSRB Pre/Conditioned BiCGStab on a level for the bottom solver.

Implements LevelOp.

void TensorOp::CFInterp (  LevelData< FArrayBox > &  a_phi,
const LevelData< FArrayBox > &  a_phiCoarse
)  [virtual]
 

Coarse / Fine interpolation operator.

Implements LevelOp.

void TensorOp::define (  const LevelOp *  opfine,
int  refratio
)  [virtual]
 

Full define function. define from finer levelop.

Implements LevelOp.

void TensorOp::define (  const DisjointBoxLayout &  Ba,
const DisjointBoxLayout *  base_ba,
Real  DxLevel,
int  refratio,
const ProblemDomain &  domf,
bool  a_homogeneousOnly = false,
int  ncomp = 1
)  [virtual]
 

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

Implements LevelOp.

void TensorOp::define (  const DisjointBoxLayout &  Ba,
const DisjointBoxLayout *  base_ba,
Real  DxLevel,
int  refratio,
const Box &  domf,
bool  a_homogeneousOnly = false,
int  ncomp = 1
)  [virtual]
 

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

Implements LevelOp.

void TensorOp::getFlux (  FArrayBox &  flux,
const FArrayBox &  a_data,
const DataIndex &  a_datInd,
int  a_dir
)  [virtual]
 

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.

Implements LevelOp.

const LevelData<FArrayBox>& TensorOp::getTanGrad (   )  const
 

access function

void TensorOp::homogeneousCFInterp (  LevelData< FArrayBox > &  a_phi  )  [virtual]
 

homogeneous coarse/fine interpolation operator

Implements LevelOp.

void TensorOp::homogeneousCFInterpPhi (  LevelData< FArrayBox > &  a_phif,
const DataIndex &  a_datInd,
int  a_idir,
Side::LoHiSide  a_hiorlo
) 
 

does homogeneous coarse/fine interpolation for phi

void TensorOp::homogeneousCFInterpTanGrad (  LevelData< FArrayBox > &  a_tanGrad,
const LevelData< FArrayBox > &  a_phi,
const DataIndex &  a_datInd,
int  a_idir,
Side::LoHiSide  a_hiorlo
) 
 

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

virtual bool TensorOp::isDefined (   )  const [virtual]
 

Has this object been fully defined?

Implements LevelOp.

virtual void TensorOp::levelPreconditioner (  LevelData< FArrayBox > &  a_phihat,
const LevelData< FArrayBox > &  a_rhshat
)  [virtual]
 

apply preconditioning to the solution on this level. Given rhshat, returns phihat from M(phihat) = rhshat

Implements LevelOp.

virtual LevelOp* TensorOp::new_levelop (   )  const [virtual]
 

virtual constructor workaround

Implements LevelOp.

void TensorOp::setBottomSmoother (  const BaseBottomSmoother &  a_bottomSmoother  ) 
 

virtual void TensorOp::setConvergenceMetric (  Real  a_metric,
int  a_comp
)  [virtual]
 

pass-through to bottom smoother

Implements LevelOp.

void TensorOp::setDomainGhostBC (  const DomainGhostBC &  a_dombcin  ) 
 

void TensorOp::setTanGradBC (  const DomainGhostBC &  a_dombcIn  ) 
 

set boundary conditions for tangential gradients (for divergence)

void TensorOp::smooth (  LevelData< FArrayBox > &  a_phi,
const LevelData< FArrayBox > &  a_rhs
)  [virtual]
 

Smoother. Assumes that problem has already been put in residual correction form, so that C/F boundary conditions are homogeneous.

Implements LevelOp.


Member Data Documentation

DisjointBoxLayout TensorOp::m_baseBA [protected]
 

BaseBottomSmoother* TensorOp::m_bottom_smoother_ptr [protected]
 

ProblemDomain TensorOp::m_domain [protected]
 

DomainGhostBC TensorOp::m_domghostbc [protected]
 

Real TensorOp::m_dxCrse [protected]
 

Real TensorOp::m_dxLevel [protected]
 

Copier TensorOp::m_exchangeCopier [protected]
 

DisjointBoxLayout TensorOp::m_grids [protected]
 

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

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

bool TensorOp::m_ihcfiEnabled [protected]
 

bool TensorOp::m_isBCDefined [protected]
 

bool TensorOp::m_isDefined [protected]
 

bool TensorOp::m_isGradBCDefined [protected]
 

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

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

int TensorOp::m_ncomp [protected]
 

TensorCFInterp TensorOp::m_quadCFI [protected]
 

int TensorOp::m_refRatio [protected]
 

LevelData<FArrayBox> TensorOp::m_tanGrad [protected]
 

DomainGhostBC TensorOp::m_tangradbc [protected]
 


The documentation for this class was generated from the following file:
Generated on Wed Oct 5 14:02:28 2005 for Chombo&AMRSelfGravity by  doxygen 1.4.1