15 #ifndef _MULTILEVELLINEAROP_H_ 16 #define _MULTILEVELLINEAROP_H_ 28 #include "NamespaceHeader.H" 70 bool a_homogeneous =
false);
88 bool a_homogeneous =
false);
144 const Real& a_scale);
162 const char* a_filename);
208 #include "NamespaceFooter.H" LinearSolver< LevelData< T > > * m_precondBottomSolverPtr
bottom solver for m_preCondSolver
Definition: MultilevelLinearOp.H:202
virtual void incr(Vector< LevelData< T > * > &a_lhs, const Vector< LevelData< T > * > &a_x, Real a_scale)
Definition: MultilevelLinearOpI.H:533
Vector< int > m_refRatios
Definition: MultilevelLinearOp.H:180
Definition: LinearSolver.H:28
virtual Real norm(const Vector< LevelData< T > * > &a_rhs, int a_ord)
Definition: MultilevelLinearOpI.H:596
A reference-counting handle class.
Definition: RefCountedPtr.H:66
AMRMultiGrid< LevelData< T > > m_preCondSolver
Solver which is used by the preCond function.
Definition: MultilevelLinearOp.H:199
virtual void write(const Vector< LevelData< T > * > *a_data, const char *a_filename)
Definition: MultilevelLinearOpI.H:679
bool m_isPrecondSolverInitialized
has the preconditioner solver been initialized?
Definition: MultilevelLinearOp.H:205
Vector< ProblemDomain > m_domains
Definition: MultilevelLinearOp.H:183
Definition: AMRMultiGrid.H:306
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:552
virtual ~MultilevelLinearOp()
Definition: MultilevelLinearOpI.H:121
virtual void setToZero(Vector< LevelData< T > * > &a_lhs)
Definition: MultilevelLinearOpI.H:664
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:576
int m_num_mg_smooth
number of smoothings in the multigrid preconditioner
Definition: MultilevelLinearOp.H:171
Definition: BoxLayoutData.H:136
int m_lBase
Definition: MultilevelLinearOp.H:192
int m_preCondSolverDepth
max depth for multigrid preconditioner (if using mg preconditioner)
Definition: MultilevelLinearOp.H:174
double Real
Definition: REAL.H:33
Vector< RefCountedPtr< AMRLevelOp< LevelData< T > > > > m_vectOperators
vector of level operators
Definition: MultilevelLinearOp.H:189
int m_num_mg_iterations
number of mg v-cycles for each preCond call (if using mg preconditioner)
Definition: MultilevelLinearOp.H:168
virtual void clear(Vector< LevelData< T > * > &a_lhs)
Definition: MultilevelLinearOpI.H:409
virtual void assign(Vector< LevelData< T > * > &a_lhs, const Vector< LevelData< T > * > &a_rhs)
Definition: MultilevelLinearOpI.H:430
virtual void applyOp(Vector< LevelData< T > * > &a_lhs, const Vector< LevelData< T > * > &a_phi, bool a_homogeneous=false)
Definition: MultilevelLinearOpI.H:325
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:140
Definition: LinearSolver.H:158
virtual void preCond(Vector< LevelData< T > * > &a_cor, const Vector< LevelData< T > * > &a_residual)
Apply preconditioner.
Definition: MultilevelLinearOpI.H:222
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:453
Definition: AMRMultiGrid.H:231
virtual void create(Vector< LevelData< T > * > &a_lhs, const Vector< LevelData< T > * > &a_rhs)
Definition: MultilevelLinearOpI.H:385
bool m_use_multigrid_preconditioner
if true, preCond(...) function uses multigrid v-cycle(s)
Definition: MultilevelLinearOp.H:165
Vector< DisjointBoxLayout > m_vectGrids
Definition: MultilevelLinearOp.H:177
Vector< RealVect > m_vectDx
Definition: MultilevelLinearOp.H:186