Chombo + EB  3.2
Public Member Functions | List of all members
AMRLevelOp< T > Class Template Referenceabstract

#include <AMRMultiGrid.H>

Inheritance diagram for AMRLevelOp< T >:
Inheritance graph
[legend]

Public Member Functions

virtual void dumpAMR (Vector< T *> &a_data, string name)
 
virtual void dumpLevel (T &a_data, string name)
 
 AMRLevelOp ()
 Constructor. More...
 
virtual void dumpStuff (Vector< T *> data, string filename)
 
virtual ~AMRLevelOp ()
 Destructor. More...
 
virtual Real AMRNorm (const T &a_coarResid, const T &a_fineResid, const int &a_refRat, const int &a_ord)
 
virtual void outputLevel (T &a_rhs, string &a_name)
 
virtual void outputAMR (Vector< T *> &a_rhs, string &a_name)
 
virtual int refToCoarser ()=0
 
virtual void AMRResidual (T &a_residual, const T &a_phiFine, const T &a_phi, const T &a_phiCoarse, const T &a_rhs, bool a_homogeneousDomBC, AMRLevelOp< T > *a_finerOp)=0
 
virtual void AMRResidualNF (T &a_residual, const T &a_phi, const T &a_phiCoarse, const T &a_rhs, bool a_homogeneousBC)=0
 
virtual void AMRResidualNC (T &a_residual, const T &a_phiFine, const T &a_phi, const T &a_rhs, bool a_homogeneousBC, AMRLevelOp< T > *a_finerOp)=0
 
virtual void AMROperator (T &a_LofPhi, const T &a_phiFine, const T &a_phi, const T &a_phiCoarse, bool a_homogeneousDomBC, AMRLevelOp< T > *a_finerOp)=0
 
virtual void AMROperatorNF (T &a_LofPhi, const T &a_phi, const T &a_phiCoarse, bool a_homogeneousBC)=0
 
virtual void AMROperatorNC (T &a_LofPhi, const T &a_phiFine, const T &a_phi, bool a_homogeneousBC, AMRLevelOp< T > *a_finerOp)=0
 
virtual void AMRRestrict (T &a_resCoarse, const T &a_residual, const T &a_correction, const T &a_coarseCorrection, bool a_skip_res)=0
 
virtual void AMRProlong (T &a_correction, const T &a_coarseCorrection)=0
 
virtual void AMRUpdateResidual (T &a_residual, const T &a_correction, const T &a_coarseCorrection)=0
 
virtual void createCoarsened (T &a_lhs, const T &a_rhs, const int &a_refRat)=0
 
virtual void buildCopier (Copier &a_copier, const T &a_lhs, const T &a_rhs)
 
virtual void assignCopier (T &a_lhs, const T &a_rhs, const Copier &a_copier)
 
virtual void zeroCovered (T &a_lhs, T &a_rhs, const Copier &a_copier)
 
virtual Real localMaxNorm (const T &a_phi)
 
virtual void AMRProlongS (T &a_correction, const T &a_coarseCorrection, T &a_temp, const Copier &a_copier)
 
virtual void AMRProlongS_2 (T &a_correction, const T &a_coarseCorrection, T &a_temp, const Copier &a_copier, const Copier &a_cornerCopier, const AMRLevelOp< LevelData< FArrayBox > > *a_crsOp)
 
virtual void AMRRestrictS (T &a_resCoarse, const T &a_residual, const T &a_correction, const T &a_coarseCorrection, T &scratch, bool a_skip_res=false)
 
virtual unsigned int orderOfAccuracy (void) const
 
virtual void enforceCFConsistency (T &a_coarseCorrection, const T &a_correction)
 This routine is for operators with orderOfAccuracy()>2. More...
 
- Public Member Functions inherited from MGLevelOp< T >
 MGLevelOp ()
 Constructor. More...
 
virtual ~MGLevelOp ()
 Destructor. More...
 
virtual void createCoarser (T &a_coarse, const T &a_fine, bool ghosted)=0
 
virtual void relax (T &a_correction, const T &a_residual, int a_iterations)=0
 
virtual void relaxNF (T &a_phi, const T *a_phiCoarse, const T &a_rhs, int a_iterations)
 specialized no-fine relax function, useful for full-multigrid schemes, defaults to regular relax More...
 
virtual void restrictResidual (T &a_resCoarse, T &a_phiFine, const T &a_rhsFine)=0
 
virtual void restrictResidual (T &a_resCoarse, T &a_phiFine, const T *a_phiCoarse, const T &a_rhsFine, bool homogeneous)
 full-multigrid version of restrictResidual, useful for FAS-type schemes. Defaults to standard restriction More...
 
virtual void restrictR (T &a_phiCoarse, const T &a_phiFine)
 simple restriction function More...
 
virtual void prolongIncrement (T &a_phiThisLevel, const T &a_correctCoarse)=0
 
void addObserver (MGLevelOpObserver< T > *a_observer)
 
virtual void applyOpMg (T &a_lhs, T &a_phi, T *a_phiCoarse, bool a_homogeneous)
 Apply an operator. More...
 
virtual void residualNF (T &a_lhs, T &a_phi, const T *a_phiCoarse, const T &a_rhs, bool a_homogeneous=false)
 
void removeObserver (MGLevelOpObserver< T > *a_observer)
 
void addCoarserObserver (MGLevelOp< T > *a_operator, int a_coarseningFactor)
 
void notifyObserversOfChange ()
 This should be called whenever the operator's data is updated. More...
 
virtual void finerOperatorChanged (const MGLevelOp< T > &a_operator, int a_coarseningFactor)
 
int numObservers () const
 Returns the number of objects observing this operator. More...
 
- Public Member Functions inherited from LinearOp< T >
virtual ~LinearOp ()
 
virtual void residual (T &a_lhs, const T &a_phi, const T &a_rhs, bool a_homogeneous=false)=0
 
virtual void preCond (T &a_cor, const T &a_residual)=0
 
virtual void applyOp (T &a_lhs, const T &a_phi, bool a_homogeneous=false)=0
 
virtual void create (T &a_lhs, const T &a_rhs)=0
 
virtual void clear (T &a_lhs)
 
virtual void assign (T &a_lhs, const T &a_rhs)=0
 
virtual void assignLocal (T &a_lhs, const T &a_rhs)
 
virtual Real dotProduct (const T &a_1, const T &a_2)=0
 
virtual void mDotProduct (const T &a_1, const int a_sz, const T a_2[], Real a_mdots[])
 
virtual void incr (T &a_lhs, const T &a_x, Real a_scale)=0
 
virtual void axby (T &a_lhs, const T &a_x, const T &a_y, Real a_a, Real a_b)=0
 
virtual void scale (T &a_lhs, const Real &a_scale)=0
 
virtual Real norm (const T &a_rhs, int a_ord)=0
 
virtual Real dx () const
 
virtual void setToZero (T &a_lhs)=0
 
virtual void write (const T *a, const char *filename)
 
- Public Member Functions inherited from MGLevelOpObserver< T >
 MGLevelOpObserver ()
 Base level Constructor. Called by all subclasses. More...
 
virtual ~MGLevelOpObserver ()
 Destructor. More...
 
virtual void operatorChanged (const MGLevelOp< T > &a_operator)
 
void setObservee (MGLevelOp< T > *a_observee)
 
void clearObservee ()
 

Detailed Description

template<typename T>
class AMRLevelOp< T >

Operator class for AMR Multigrid

Constructor & Destructor Documentation

◆ AMRLevelOp()

template<typename T>
AMRLevelOp< T >::AMRLevelOp ( )
inline

Constructor.

◆ ~AMRLevelOp()

template<typename T>
virtual AMRLevelOp< T >::~AMRLevelOp ( )
inlinevirtual

Destructor.

Member Function Documentation

◆ dumpAMR()

template<typename T>
virtual void AMRLevelOp< T >::dumpAMR ( Vector< T *> &  a_data,
string  name 
)
inlinevirtual

Reimplemented in EBAMRPoissonOp, and EBConductivityOp.

◆ dumpLevel()

template<typename T>
virtual void AMRLevelOp< T >::dumpLevel ( T &  a_data,
string  name 
)
inlinevirtual

Reimplemented in EBAMRPoissonOp, and EBConductivityOp.

◆ dumpStuff()

template<typename T>
virtual void AMRLevelOp< T >::dumpStuff ( Vector< T *>  data,
string  filename 
)
inlinevirtual

◆ AMRNorm()

template<typename T>
virtual Real AMRLevelOp< T >::AMRNorm ( const T &  a_coarResid,
const T &  a_fineResid,
const int &  a_refRat,
const int &  a_ord 
)
inlinevirtual

◆ outputLevel()

template<typename T>
virtual void AMRLevelOp< T >::outputLevel ( T &  a_rhs,
string &  a_name 
)
inlinevirtual

◆ outputAMR()

template<typename T>
virtual void AMRLevelOp< T >::outputAMR ( Vector< T *> &  a_rhs,
string &  a_name 
)
inlinevirtual

◆ refToCoarser()

template<typename T>
virtual int AMRLevelOp< T >::refToCoarser ( )
pure virtual

◆ AMRResidual()

template<typename T>
virtual void AMRLevelOp< T >::AMRResidual ( T &  a_residual,
const T &  a_phiFine,
const T &  a_phi,
const T &  a_phiCoarse,
const T &  a_rhs,
bool  a_homogeneousDomBC,
AMRLevelOp< T > *  a_finerOp 
)
pure virtual

◆ AMRResidualNF()

template<typename T>
virtual void AMRLevelOp< T >::AMRResidualNF ( T &  a_residual,
const T &  a_phi,
const T &  a_phiCoarse,
const T &  a_rhs,
bool  a_homogeneousBC 
)
pure virtual

◆ AMRResidualNC()

template<typename T>
virtual void AMRLevelOp< T >::AMRResidualNC ( T &  a_residual,
const T &  a_phiFine,
const T &  a_phi,
const T &  a_rhs,
bool  a_homogeneousBC,
AMRLevelOp< T > *  a_finerOp 
)
pure virtual

◆ AMROperator()

template<typename T>
virtual void AMRLevelOp< T >::AMROperator ( T &  a_LofPhi,
const T &  a_phiFine,
const T &  a_phi,
const T &  a_phiCoarse,
bool  a_homogeneousDomBC,
AMRLevelOp< T > *  a_finerOp 
)
pure virtual

◆ AMROperatorNF()

template<typename T>
virtual void AMRLevelOp< T >::AMROperatorNF ( T &  a_LofPhi,
const T &  a_phi,
const T &  a_phiCoarse,
bool  a_homogeneousBC 
)
pure virtual

◆ AMROperatorNC()

template<typename T>
virtual void AMRLevelOp< T >::AMROperatorNC ( T &  a_LofPhi,
const T &  a_phiFine,
const T &  a_phi,
bool  a_homogeneousBC,
AMRLevelOp< T > *  a_finerOp 
)
pure virtual

◆ AMRRestrict()

template<typename T>
virtual void AMRLevelOp< T >::AMRRestrict ( T &  a_resCoarse,
const T &  a_residual,
const T &  a_correction,
const T &  a_coarseCorrection,
bool  a_skip_res 
)
pure virtual

◆ AMRProlong()

template<typename T>
virtual void AMRLevelOp< T >::AMRProlong ( T &  a_correction,
const T &  a_coarseCorrection 
)
pure virtual

◆ AMRUpdateResidual()

template<typename T>
virtual void AMRLevelOp< T >::AMRUpdateResidual ( T &  a_residual,
const T &  a_correction,
const T &  a_coarseCorrection 
)
pure virtual

◆ createCoarsened()

template<typename T>
virtual void AMRLevelOp< T >::createCoarsened ( T &  a_lhs,
const T &  a_rhs,
const int &  a_refRat 
)
pure virtual

◆ buildCopier()

template<typename T>
virtual void AMRLevelOp< T >::buildCopier ( Copier a_copier,
const T &  a_lhs,
const T &  a_rhs 
)
inlinevirtual

◆ assignCopier()

template<typename T>
virtual void AMRLevelOp< T >::assignCopier ( T &  a_lhs,
const T &  a_rhs,
const Copier a_copier 
)
inlinevirtual

◆ zeroCovered()

template<typename T>
virtual void AMRLevelOp< T >::zeroCovered ( T &  a_lhs,
T &  a_rhs,
const Copier a_copier 
)
inlinevirtual

Reimplemented in AMRPoissonOp.

◆ localMaxNorm()

template<typename T>
virtual Real AMRLevelOp< T >::localMaxNorm ( const T &  a_phi)
inlinevirtual

◆ AMRProlongS()

template<typename T>
virtual void AMRLevelOp< T >::AMRProlongS ( T &  a_correction,
const T &  a_coarseCorrection,
T &  a_temp,
const Copier a_copier 
)
inlinevirtual

optimization of AMRProlong that sends in the existing temporary and copier

Reimplemented in AMRPoissonOp.

◆ AMRProlongS_2()

template<typename T>
virtual void AMRLevelOp< T >::AMRProlongS_2 ( T &  a_correction,
const T &  a_coarseCorrection,
T &  a_temp,
const Copier a_copier,
const Copier a_cornerCopier,
const AMRLevelOp< LevelData< FArrayBox > > *  a_crsOp 
)
inlinevirtual

optimization of AMRProlong that sends in the existing temporary and copier – high order

Reimplemented in AMRPoissonOp.

◆ AMRRestrictS()

template<typename T>
virtual void AMRLevelOp< T >::AMRRestrictS ( T &  a_resCoarse,
const T &  a_residual,
const T &  a_correction,
const T &  a_coarseCorrection,
T &  scratch,
bool  a_skip_res = false 
)
inlinevirtual

Reimplemented in AMRPoissonOp.

◆ orderOfAccuracy()

template<typename T>
virtual unsigned int AMRLevelOp< T >::orderOfAccuracy ( void  ) const
inlinevirtual

◆ enforceCFConsistency()

template<typename T>
virtual void AMRLevelOp< T >::enforceCFConsistency ( T &  a_coarseCorrection,
const T &  a_correction 
)
inlinevirtual

This routine is for operators with orderOfAccuracy()>2.


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