AMRFASMultiGrid< T > Class Template Reference

#include <AMRMultiGrid.H>

Inheritance diagram for AMRFASMultiGrid< T >:

Inheritance graph
[legend]

List of all members.


Detailed Description

template<class T>
class AMRFASMultiGrid< T >

Class to solve elliptic equations using the FAS multigrid

Public Member Functions

 AMRFASMultiGrid ()
virtual ~AMRFASMultiGrid ()
virtual void define (const ProblemDomain &a_coarseDomain, AMRLevelOpFactory< T > &a_factory, LinearSolver< T > *a_bottomSolver, int a_numLevels)
virtual void solveNoInit (Vector< T * > &a_phi, const Vector< T * > &a_rhs, int l_max, int l_base, bool a_zeroPhi=true, bool forceHomogeneous=false)
void setCycleType (OLD_FASMG_type a_type)
void setAvoidNorms (bool b=true)
void setNumVcycles (int n)

Private Member Functions

virtual void FMG (Vector< T * > &a_phi, const Vector< T * > &a_rhs, int l, int l_max, int l_base)
virtual void VCycle (Vector< T * > &a_phi, const Vector< T * > &a_rhs, int l, int l_max, int l_base)
virtual void init (const Vector< T * > &a_phi, const Vector< T * > &a_rhs, int l_max, int l_base)
void clear_private ()

Private Attributes

OLD_FASMG_type m_type
bool m_avoid_norms
int m_numVcycles
Vector< Copierm_HOCopier
Vector< Copierm_HOCornerCopier
ProblemDomain m_coarseDomain

Constructor & Destructor Documentation

template<class T>
AMRFASMultiGrid< T >::AMRFASMultiGrid (  )  [inline]

template<class T>
AMRFASMultiGrid< T >::~AMRFASMultiGrid (  )  [inline, virtual]


Member Function Documentation

template<class T>
void AMRFASMultiGrid< T >::define ( const ProblemDomain a_coarseDomain,
AMRLevelOpFactory< T > &  a_factory,
LinearSolver< T > *  a_bottomSolver,
int  a_numLevels 
) [inline, virtual]

Define the solver. a_coarseDomain is the index space on the coarsest AMR level. a_factory is the operator factory through which all special information is conveyed. a_bottomSolver is the solver to be used at the termination of multigrid coarsening. It is the client's responsibility to free up the dynamically-allocated memory. a_numLevels is the number of AMR levels.

Reimplemented from AMRMultiGrid< T >.

References CH_TIME, AMRMultiGrid< T >::define(), AMRFASMultiGrid< T >::m_coarseDomain, AMRFASMultiGrid< T >::m_HOCopier, AMRFASMultiGrid< T >::m_HOCornerCopier, and Vector< T >::resize().

template<class T>
void AMRFASMultiGrid< T >::solveNoInit ( Vector< T * > &  a_phi,
const Vector< T * > &  a_rhs,
int  l_max,
int  l_base,
bool  a_zeroPhi = true,
bool  forceHomogeneous = false 
) [inline, virtual]

template<class T>
void AMRFASMultiGrid< T >::setCycleType ( OLD_FASMG_type  a_type  )  [inline]

template<class T>
void AMRFASMultiGrid< T >::setAvoidNorms ( bool  b = true  )  [inline]

template<class T>
void AMRFASMultiGrid< T >::setNumVcycles ( int  n  )  [inline]

template<class T>
void AMRFASMultiGrid< T >::FMG ( Vector< T * > &  a_phi,
const Vector< T * > &  a_rhs,
int  l,
int  l_max,
int  l_base 
) [inline, private, virtual]

template<class T>
void AMRFASMultiGrid< T >::VCycle ( Vector< T * > &  a_phi,
const Vector< T * > &  a_rhs,
int  l,
int  l_max,
int  l_base 
) [inline, private, virtual]

template<class T>
void AMRFASMultiGrid< T >::init ( const Vector< T * > &  a_phi,
const Vector< T * > &  a_rhs,
int  l_max,
int  l_base 
) [inline, private, virtual]

template<class T>
void AMRFASMultiGrid< T >::clear_private (  )  [inline, private]


Member Data Documentation

template<class T>
OLD_FASMG_type AMRFASMultiGrid< T >::m_type [private]

template<class T>
bool AMRFASMultiGrid< T >::m_avoid_norms [private]

template<class T>
int AMRFASMultiGrid< T >::m_numVcycles [private]

template<class T>
Vector<Copier> AMRFASMultiGrid< T >::m_HOCopier [private]

template<class T>
Vector<Copier> AMRFASMultiGrid< T >::m_HOCornerCopier [private]

template<class T>
ProblemDomain AMRFASMultiGrid< T >::m_coarseDomain [private]


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

Generated on Fri Jun 23 04:03:33 2017 for Chombo + EB by  doxygen 1.5.5