class HelmholtzOp : public LevelOp

Helmholtz operator class

Inheritance:

HelmholtzOp < LevelOp


public members:

void setHelmCoeff(Real helmcoeff_a)
void scaleHelmCoeff(Real a_scale)
LevelOp * new_levelop() const
void define( const DisjointBoxLayout & Ba, const DisjointBoxLayout * base_ba, Real DxLevel, int refratio, const Box& domf, bool a_homogeneousOnly= false, int a_ncomp = 1)
void define( const DisjointBoxLayout & Ba, const DisjointBoxLayout * base_ba, Real DxLevel, int refratio, const ProblemDomain & domf, bool a_homogeneousOnly= false, int a_ncomp = 1)
void define( const LevelOp * opfine, int refratio)
HelmholtzOp()
~HelmholtzOp()
void smooth( LevelData< FArrayBox >& phi, const LevelData< FArrayBox >& rhs )
virtual void levelPreconditioner( LevelData< FArrayBox >& a_phihat, const LevelData< FArrayBox >& a_rhshat )
void applyOpI( LevelData< FArrayBox >& phi, const LevelData< FArrayBox >* phiCoarse, LevelData< FArrayBox >& LOfPhi )
void applyOpIcfHphys( LevelData< FArrayBox >& phi, const LevelData< FArrayBox >* phiCoarse, LevelData< FArrayBox >& LOfPhi )
void applyOpH( LevelData< FArrayBox >& phi, LevelData< FArrayBox >& LOfPhi )
void applyOpHcfIphys( LevelData< FArrayBox >& phi, LevelData< FArrayBox >& LOfPhi )
void CFInterp( LevelData< FArrayBox >& phi, const LevelData< FArrayBox >& phiCoarse )
void homogeneousCFInterp(LevelData< FArrayBox >& phi)
void setDomainGhostBC(const DomainGhostBC& a_dombcin)
void setBottomSmoother(const BaseBottomSmoother & a_bottomSmoother)
void homogeneousCFInterp(LevelData< FArrayBox >& phif, const DataIndex& a_datIndex, int idir, Side::LoHiSide hiorlo)
void bottomSmoother(LevelData< FArrayBox >& phi, const LevelData< FArrayBox >& rhs)
bool isDefined() const
void getFlux( FArrayBox & flux, const FArrayBox & data, const DataIndex& a_datInd, int dir)

protected members:

BaseBottomSmoother * m_bottom_smoother_ptr

Inherited from LevelOp:


Documentation

operator to solve equation (ie (I+alpha*laplacian)phi = rho)
void setHelmCoeff (Real helmcoeff_a)
Set helmholtz coefficient alpha in I+alpha*laplacian)phi = rho.

void scaleHelmCoeff (Real a_scale)
Scale the helmholtz coeficcient alpha in I + alpha*laplacian)phi (alpha := a_scale*alpha)

LevelOp * new_levelop () const
virtual constructor workaround coefficient and bcs must be defined before called.

void define ( const DisjointBoxLayout & Ba, const DisjointBoxLayout * base_ba, Real DxLevel, int refratio, const Box& domf, bool a_homogeneousOnly= false, int a_ncomp = 1)
Full define function. makes all coarse-fine information and sets internal variables

void define ( const DisjointBoxLayout & Ba, const DisjointBoxLayout * base_ba, Real DxLevel, int refratio, const ProblemDomain & domf, bool a_homogeneousOnly= false, int a_ncomp = 1)
Full define function. makes all coarse-fine information and sets internal variables

void define ( const LevelOp * opfine, int refratio)
Full define function. define from finer levelop.

void smooth ( LevelData< FArrayBox >& phi, const LevelData< FArrayBox >& rhs )
Smoother. Assumes that problem has already been put in residual correction form, so that C/F boundary conditions are homogeneous.

virtual void levelPreconditioner ( LevelData< FArrayBox >& a_phihat, const LevelData< FArrayBox >& a_rhshat )
apply preconditioning to the solution on this level. Given rhshat, returns phihat from M(phihat) = rhshat

void applyOpI ( LevelData< FArrayBox >& phi, const LevelData< FArrayBox >* phiCoarse, LevelData< FArrayBox >& LOfPhi )
Evaluate Operator, inhomogeneous C/F boundary conditions and phys boundary conditions.

void applyOpIcfHphys ( LevelData< FArrayBox >& phi, const LevelData< FArrayBox >* phiCoarse, LevelData< FArrayBox >& LOfPhi )
Evaluate Operator, inhomogeneous C/F boundary conditions. homogeneous domain boundary conditions.

void applyOpH ( LevelData< FArrayBox >& phi, LevelData< FArrayBox >& LOfPhi )
Evaluate Operator, homogeneous C/F boundary conditions and phys boundary conditions.

void applyOpHcfIphys ( LevelData< FArrayBox >& phi, LevelData< FArrayBox >& LOfPhi )
Evaluate Operator, homogeneous C/F boundary conditions. inhomogeneous domain boundary conditions

void CFInterp ( LevelData< FArrayBox >& phi, const LevelData< FArrayBox >& phiCoarse )
Coarse / Fine interpolation operator. fills ghost cells of phi.

void homogeneousCFInterp (LevelData< FArrayBox >& phi)
homogeneous coarse/fine interpolation operator

void homogeneousCFInterp (LevelData< FArrayBox >& phif, const DataIndex& a_datIndex, int idir, Side::LoHiSide hiorlo)
does homogeneous coarse/fine interpolation

void bottomSmoother (LevelData< FArrayBox >& phi, const LevelData< FArrayBox >& rhs)
// This does a GSRB Pre/Conditioned BiCGStab on a level // for the bottom solver.

void getFlux ( FArrayBox & flux, const FArrayBox & data, const DataIndex& a_datInd, int 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.


this class has no child classes.

alphabetic index hierarchy of classes


Chombo

Copyright Notice

This software is copyright (C) by the Lawrence Berkeley National Laboratory. Permission is granted to reproduce this software for non-commercial purposes provided that this notice is left intact.

It is acknowledged that the U.S. Government has rights to this software under Contract DE-AC03-765F00098 between the U.S. Department of Energy and the University of California.

This software is provided as a professional and academic contribution for joint exchange. Thus it is experimental, is provided ``as is'', with no warranties of any kind whatsoever, no support, no promise of updates, or printed documentation. By using this software, you acknowledge that the Lawrence Berkeley National Laboratory and Regents of the University of California shall have no liability with respect to the infringement of other copyrights by any part of this software.