15 #ifndef _MULTILEVELLINEAROP_H_    16 #define _MULTILEVELLINEAROP_H_    28 #include "NamespaceHeader.H"    69                           bool a_homogeneous = 
false);
    87                        bool a_homogeneous = 
false);
   142                      const Real& a_scale);
   159                      const char*                   a_filename);
   205 #include "NamespaceFooter.H" LinearSolver< LevelData< T > > * m_precondBottomSolverPtr
bottom solver for m_preCondSolver 
Definition: MultilevelLinearOp.H:199
 
virtual void incr(Vector< LevelData< T > * > &a_lhs, const Vector< LevelData< T > * > &a_x, Real a_scale)
Definition: MultilevelLinearOpI.H:525
 
Vector< int > m_refRatios
Definition: MultilevelLinearOp.H:177
 
Definition: LinearSolver.H:28
 
virtual Real norm(const Vector< LevelData< T > * > &a_rhs, int a_ord)
Definition: MultilevelLinearOpI.H:588
 
A reference-counting handle class. 
Definition: RefCountedPtr.H:173
 
AMRMultiGrid< LevelData< T > > m_preCondSolver
Solver which is used by the preCond function. 
Definition: MultilevelLinearOp.H:196
 
virtual void write(const Vector< LevelData< T > * > *a_data, const char *a_filename)
Definition: MultilevelLinearOpI.H:670
 
bool m_isPrecondSolverInitialized
has the preconditioner solver been initialized? 
Definition: MultilevelLinearOp.H:202
 
Vector< ProblemDomain > m_domains
Definition: MultilevelLinearOp.H:180
 
Definition: AMRMultiGrid.H:308
 
virtual void axby(Vector< LevelData< T > * > &a_lhs, const Vector< LevelData< T > * > &a_x, const Vector< LevelData< T > * > &a_y, Real a_a, Real a_b)
Definition: MultilevelLinearOpI.H:544
 
virtual ~MultilevelLinearOp()
Definition: MultilevelLinearOpI.H:118
 
virtual void setToZero(Vector< LevelData< T > * > &a_lhs)
Definition: MultilevelLinearOpI.H:655
 
MultilevelLinearOp()
default constructor (sets defaults for preconditioner) 
Definition: MultilevelLinearOpI.H:21
 
virtual void scale(Vector< LevelData< T > * > &a_lhs, const Real &a_scale)
Definition: MultilevelLinearOpI.H:568
 
int m_num_mg_smooth
number of smoothings in the multigrid preconditioner 
Definition: MultilevelLinearOp.H:168
 
new code 
Definition: BoxLayoutData.H:170
 
int m_lBase
Definition: MultilevelLinearOp.H:189
 
int m_preCondSolverDepth
max depth for multigrid preconditioner (if using mg preconditioner) 
Definition: MultilevelLinearOp.H:171
 
double Real
Definition: REAL.H:33
 
Vector< RefCountedPtr< AMRLevelOp< LevelData< T > > > > m_vectOperators
vector of level operators 
Definition: MultilevelLinearOp.H:186
 
int m_num_mg_iterations
number of mg v-cycles for each preCond call (if using mg preconditioner) 
Definition: MultilevelLinearOp.H:165
 
virtual void clear(Vector< LevelData< T > * > &a_lhs)
Definition: MultilevelLinearOpI.H:402
 
virtual void assign(Vector< LevelData< T > * > &a_lhs, const Vector< LevelData< T > * > &a_rhs)
Definition: MultilevelLinearOpI.H:422
 
virtual void applyOp(Vector< LevelData< T > * > &a_lhs, const Vector< LevelData< T > * > &a_phi, bool a_homogeneous=false)
Definition: MultilevelLinearOpI.H:319
 
virtual void residual(Vector< LevelData< T > * > &a_lhs, const Vector< LevelData< T > * > &a_phi, const Vector< LevelData< T > * > &a_rhs, bool a_homogeneous=false)
compute residual using AMRLevelOps AMRResidual functionality 
Definition: MultilevelLinearOpI.H:137
 
Definition: LinearSolver.H:156
 
virtual void preCond(Vector< LevelData< T > * > &a_cor, const Vector< LevelData< T > * > &a_residual)
Apply preconditioner. 
Definition: MultilevelLinearOpI.H:217
 
virtual void define(const Vector< DisjointBoxLayout > &a_vectGrids, const Vector< int > &a_refRatios, const Vector< ProblemDomain > &a_domains, const Vector< RealVect > &a_vectDx, RefCountedPtr< AMRLevelOpFactory< LevelData< T > > > &a_opFactory, int a_lBase)
define function – opFactory should be able to define all required levels 
Definition: MultilevelLinearOpI.H:35
 
Definition: MultilevelLinearOp.H:40
 
virtual Real dotProduct(const Vector< LevelData< T > * > &a_1, const Vector< LevelData< T > * > &a_2)
Definition: MultilevelLinearOpI.H:445
 
Definition: AMRMultiGrid.H:233
 
virtual void create(Vector< LevelData< T > * > &a_lhs, const Vector< LevelData< T > * > &a_rhs)
Definition: MultilevelLinearOpI.H:379
 
bool m_use_multigrid_preconditioner
if true, preCond(...) function uses multigrid v-cycle(s) 
Definition: MultilevelLinearOp.H:162
 
Vector< DisjointBoxLayout > m_vectGrids
Definition: MultilevelLinearOp.H:174
 
Vector< RealVect > m_vectDx
Definition: MultilevelLinearOp.H:183