20 #ifndef LIBMESH_EIGEN_PRECONDITIONER_H
21 #define LIBMESH_EIGEN_PRECONDITIONER_H
23 #include "libmesh/libmesh_config.h"
25 #ifdef LIBMESH_HAVE_EIGEN
28 #include "libmesh/preconditioner.h"
34 template <
typename T>
class SparseMatrix;
35 template <
typename T>
class NumericVector;
75 virtual void clear ()
override {}
80 virtual void init ()
override;
105 #endif // #ifdef LIBMESH_HAVE_EIGEN
106 #endif // LIBMESH_EIGEN_PRECONDITIONER_H
EigenPreconditioner(const libMesh::Parallel::Communicator &comm_in)
构造函数。初始化 EigenPreconditioner 的数据结构。
virtual void init() override
初始化预处理器。
virtual void apply(const NumericVector< T > &x, NumericVector< T > &y) override
应用预处理器操作。
virtual ~EigenPreconditioner()
析构函数。
该类提供了一个统一的接口,用于预处理器。此基类可继承,以包装来自不同软件包(如 PETSc 或 Trilinos)的预处理器。
EigenPreconditioner 类提供了对 Eigen 库中预处理器集合的接口。
通用的Shell矩阵,即一个仅定义其对向量的作用的矩阵。此类包含必须在派生类中重写的纯虚拟成员。
virtual void clear() override
清空预处理器状态。