#ifndef PETSCSOLVER_H #define PETSCSOLVER_H #include #include #include #include #include extern PetscErrorCode ComputeMatrix(KSP,Mat,Mat,void*); class PETScSolver { int g_Ni,g_Nj,g_Nk,g_Nall; int Nall; double ih; double iepsilon0; int *bound; int rank; KSP ksp; DM da; PC pc; Vec x, b; public: PETScSolver(int,char**,int,int,int,int*,int*,int*,int*,int,double); ~PETScSolver(); void init(int*); void initsolve(double*,double*,double reltol=1E-5); void solve(int,double*,double*,double reltol=1E-5); }; #endif