AFEPack
公有成员 | 私有属性
AMGPreconditioner类参考

An algebraic multigrid preconditioner. 更多...

#include <AMGSolver.h>

类AMGPreconditioner继承关系图:
AMGSolver

所有成员的列表。

公有成员

 AMGPreconditioner ()
 iteration steps in every precondition multiplication
 AMGPreconditioner (const Matrix &M, u_int is=5, u_int s=3)
 ~AMGPreconditioner ()
void reinit (const Matrix &M, u_int is=5)
u_int & iterateStep ()
const u_int & iterateStep () const
void vmult (Vector< double > &x, const Vector< double > &b) const

私有属性

u_int iterate_step

详细描述

An algebraic multigrid preconditioner.

With this class, we can use AMG solver as the proconditioner of deal.II As a class to be a preconditioner, the only requirement is to have a method as

 void vmult(Vector<double>&, const Vector<double>&);
 

We here modified the solve procedure of the AMGSolver to iterate a given steps and give it the name "vmult".

This is an example to use this preconditioner

 SparseMatrix<double> M;
 Vector<double> x;
 Vector<double> rhs;
 ... ...
 AMGPreconditioner amg(M);
 SolverControl solver_control (50, 1.0e-8);
 PrimitiveVectorMemory<> vector_memory;
 SolverBicgstab<> solver(solver_control, vector_memory);
 solver.solve(M, x, rhs,
              PreconditionUseMatrix<AMGPreconditioner, Vector<double> >
              (amg, &AMGPreconditioner::vmult));
 

构造及析构函数文档

iteration steps in every precondition multiplication

AMGPreconditioner::AMGPreconditioner ( const Matrix M,
u_int  is = 5,
u_int  s = 3 
) [inline]

成员函数文档

u_int& AMGPreconditioner::iterateStep ( ) [inline]
const u_int& AMGPreconditioner::iterateStep ( ) const [inline]
void AMGPreconditioner::reinit ( const Matrix M,
u_int  is = 5 
) [inline]
void AMGPreconditioner::vmult ( Vector< double > &  x,
const Vector< double > &  b 
) const [inline]

成员数据文档


该类的文档由以下文件生成: