#include "petscksp.h" #include #include #include #include #include #include #include #include #include #include #include static char help[] = "Solves a tridiagonal linear system with KSP.\n\n"; using namespace std; int Rank,np; int PetscPrintError(const char error[],...){ if (Rank==0) cerr << "PETSc Error ... exiting" << endl; exit(1); return 0; } int main(int argc, char *argv[]) { // Initialize mpi MPI_Init(&argc,&argv); MPI_Comm_rank(MPI_COMM_WORLD, &Rank); MPI_Comm_size(MPI_COMM_WORLD, &np); KSP ksp; Mat A; Vec x, b; int n, its; PetscErrorCode ierr; PetscScalar value; PetscMPIInt np; int i,j; PetscInitialize(&argc,&argv,(char *)0,help); PetscErrorPrintf = PetscPrintError; ierr = MPI_Comm_size(PETSC_COMM_WORLD,&np);CHKERRQ(ierr); if (np != 1) SETERRQ(PETSC_COMM_SELF,1,"This is a uniprocessor example only!"); ierr = PetscOptionsGetInt(PETSC_NULL,"-n",&n,PETSC_NULL);CHKERRQ(ierr); /* linear solver context */ /* matrix */ /* solution, RHS vectors */ /* problem dimension, number of iterations */ n=2; cout<<"n="<