Chombo + EB  3.0
Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
AMRTGA< T > Class Template Reference

#include <AMRTGA.H>

Public Member Functions

TGAHelmOp< T > * newOp (const ProblemDomain &a_indexSpace, const AMRLevelOpFactory< T > &a_opFact)
 
 ~AMRTGA ()
 
 AMRTGA (const RefCountedPtr< AMRMultiGrid< T > > &a_solver, const AMRLevelOpFactory< T > &a_factory, const ProblemDomain &a_level0Domain, const Vector< int > &a_refRat, int a_numLevels=-1, int a_verbosity=0)
 
void oneStep (Vector< T *> &a_phiNew, Vector< T *> &a_phiOld, Vector< T *> &a_source, const Real &a_dt, int a_lbase, int a_lmax, Real a_timeOld=0)
 
void resetAlphaAndBeta (const Real &a_alpha, const Real &a_beta)
 
void setTime (Real time)
 

Protected Member Functions

void solveHelm (Vector< T *> &a_ans, Vector< T *> &a_rhs, int a_lbase, int a_lmax, Real a_mu, Real a_dt)
 
void applyHelm (Vector< T *> &a_ans, Vector< T *> &a_source, int a_lbase, int a_lmax, Real a_mu, Real a_dt, bool a_homogeneousBC)
 
void setMu ()
 
void createData (Vector< T * > &a_source, int a_lbase, int a_lmax)
 

Private Member Functions

 AMRTGA (const AMRTGA< T > &a_opin)
 
void operator= (const AMRTGA< T > &a_opin)
 
 AMRTGA ()
 weak construction is bad. Ref Counted pointers are your friends. More...
 

Private Attributes

Vector< TGAHelmOp< T > *> m_ops
 
ProblemDomain m_level0Domain
 
Vector< int > m_refRat
 
RefCountedPtr< AMRMultiGrid< T > > m_solver
 
Real m_mu1
 
Real m_mu2
 
Real m_mu3
 
Real m_mu4
 
int m_verbosity
 
int m_numLevels
 
bool m_dataCreated
 
Vector< T * > m_rhst
 
Vector< T * > m_srct
 

Detailed Description

template<class T>
class AMRTGA< T >

Template implementation of the TGA algorithm to solve the heat equation.

Constructor & Destructor Documentation

◆ ~AMRTGA()

template<class T >
AMRTGA< T >::~AMRTGA ( )

◆ AMRTGA() [1/3]

template<class T >
AMRTGA< T >::AMRTGA ( const RefCountedPtr< AMRMultiGrid< T > > &  a_solver,
const AMRLevelOpFactory< T > &  a_factory,
const ProblemDomain a_level0Domain,
const Vector< int > &  a_refRat,
int  a_numLevels = -1,
int  a_verbosity = 0 
)

◆ AMRTGA() [2/3]

template<class T>
AMRTGA< T >::AMRTGA ( const AMRTGA< T > &  a_opin)
inlineprivate

References MayDay::Error().

◆ AMRTGA() [3/3]

template<class T>
AMRTGA< T >::AMRTGA ( )
inlineprivate

weak construction is bad. Ref Counted pointers are your friends.

References MayDay::Error(), and AMRTGA< T >::resetAlphaAndBeta().

Referenced by AMRTGA< T >::setTime().

Member Function Documentation

◆ newOp()

template<class T>
TGAHelmOp<T>* AMRTGA< T >::newOp ( const ProblemDomain a_indexSpace,
const AMRLevelOpFactory< T > &  a_opFact 
)
inline

◆ oneStep()

template<class T >
void AMRTGA< T >::oneStep ( Vector< T *> &  a_phiNew,
Vector< T *> &  a_phiOld,
Vector< T *> &  a_source,
const Real a_dt,
int  a_lbase,
int  a_lmax,
Real  a_timeOld = 0 
)

This advances a parabolic pde from a_phiOld to a_phiNew using TGA on a non-moving domain with source term a_source If your operator is time-dependent, be sure to send the time.

References AMRTGA< T >::applyHelm(), createData(), pout(), and TGAHelmOp< T >::setTime().

Referenced by AMRTGA< T >::~AMRTGA().

◆ resetAlphaAndBeta()

template<class T >
void AMRTGA< T >::resetAlphaAndBeta ( const Real a_alpha,
const Real a_beta 
)

◆ setTime()

template<class T >
void AMRTGA< T >::setTime ( Real  time)

◆ solveHelm()

template<class T >
void AMRTGA< T >::solveHelm ( Vector< T *> &  a_ans,
Vector< T *> &  a_rhs,
int  a_lbase,
int  a_lmax,
Real  a_mu,
Real  a_dt 
)
protected

References pout().

Referenced by AMRTGA< T >::applyHelm().

◆ applyHelm()

template<class T >
void AMRTGA< T >::applyHelm ( Vector< T *> &  a_ans,
Vector< T *> &  a_source,
int  a_lbase,
int  a_lmax,
Real  a_mu,
Real  a_dt,
bool  a_homogeneousBC 
)
protected

◆ setMu()

template<class T >
void AMRTGA< T >::setMu ( )
protected

References AMRTGA< T >::createData(), and pout().

Referenced by AMRTGA< T >::AMRTGA().

◆ createData()

template<class T >
void AMRTGA< T >::createData ( Vector< T * > &  a_source,
int  a_lbase,
int  a_lmax 
)
protected

References Vector< T >::size().

Referenced by AMRTGA< T >::setMu().

◆ operator=()

template<class T>
void AMRTGA< T >::operator= ( const AMRTGA< T > &  a_opin)
inlineprivate

References MayDay::Error().

Member Data Documentation

◆ m_ops

template<class T>
Vector<TGAHelmOp<T> * > AMRTGA< T >::m_ops
private

◆ m_level0Domain

template<class T>
ProblemDomain AMRTGA< T >::m_level0Domain
private

◆ m_refRat

template<class T>
Vector<int> AMRTGA< T >::m_refRat
private

◆ m_solver

template<class T>
RefCountedPtr<AMRMultiGrid<T> > AMRTGA< T >::m_solver
private

◆ m_mu1

template<class T>
Real AMRTGA< T >::m_mu1
private

◆ m_mu2

template<class T>
Real AMRTGA< T >::m_mu2
private

◆ m_mu3

template<class T>
Real AMRTGA< T >::m_mu3
private

◆ m_mu4

template<class T>
Real AMRTGA< T >::m_mu4
private

◆ m_verbosity

template<class T>
int AMRTGA< T >::m_verbosity
private

◆ m_numLevels

template<class T>
int AMRTGA< T >::m_numLevels
private

◆ m_dataCreated

template<class T>
bool AMRTGA< T >::m_dataCreated
private

◆ m_rhst

template<class T>
Vector<T*> AMRTGA< T >::m_rhst
private

◆ m_srct

template<class T>
Vector<T*> AMRTGA< T >::m_srct
private

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