diff --git a/src/ex1.c b/src/ex1.c index afb5e93..5670b61 100644 --- a/src/ex1.c +++ b/src/ex1.c @@ -13,7 +13,7 @@ int main(int argc,char **argv) EPS eps; /* eigenproblem solver context */ EPSType type; PetscReal error,tol,re,im; - PetscReal norm; + PetscReal norm=0.0; PetscScalar kr,ki,value[700]; Vec xr,xi; PetscInt i,Istart,Iend,col[700],maxit,its,nconv,countcol; @@ -24,8 +24,9 @@ int main(int argc,char **argv) //PetscScalar eigr; //PetscScalar eigi; int mpiid; - int natomax=700; + int natomax=700, iaa2, iaa; int ideter[natomax]; + int ideter2[natomax]; char const* const fileName = argv[1]; FILE* file = fopen(fileName, "r"); @@ -48,6 +49,9 @@ int main(int argc,char **argv) long int ii; long int tcountcol2,tcol[700],tcountcol[getdata.nnz]; double val[700]; + PetscReal xmat=0.0; + PetscReal xymat=0.0; + PetscInt kko,kok,kkio; SlepcInitialize(&argc,&argv,(char*)0,NULL); ierr = PetscPrintf(PETSC_COMM_WORLD,"\n1-D t-J Eigenproblem, n=%D\n\n",getdata.n);CHKERRQ(ierr); @@ -151,7 +155,7 @@ int main(int argc,char **argv) ierr = EPSGetType(eps,&type);CHKERRQ(ierr); ierr = PetscPrintf(PETSC_COMM_WORLD," Solution method: %s\n\n",type);CHKERRQ(ierr); ierr = EPSGetDimensions(eps,&nev,NULL,NULL);CHKERRQ(ierr); - ierr = PetscPrintf(PETSC_COMM_WORLD," Number of requested eigenvalues: %D\n",nev);CHKERRQ(ierr); + ierr = PetscPrintf(PETSC_COMM_WORLD," Number of == ested eigenvalues: %D\n",nev);CHKERRQ(ierr); ierr = EPSGetTolerances(eps,&tol,&maxit);CHKERRQ(ierr); ierr = PetscPrintf(PETSC_COMM_WORLD," Stopping condition: tol=%.4g, maxit=%D\n",(double)tol,maxit);CHKERRQ(ierr); @@ -160,7 +164,7 @@ int main(int argc,char **argv) if (nconv>0) { /* - Display eigenvalues and relative errors + Display eigenvalues && relative errors */ ierr = PetscPrintf(PETSC_COMM_WORLD, " k ||Ax-kx||/||kx||\n" @@ -194,7 +198,7 @@ int main(int argc,char **argv) } /* - Save eigenvectors, if requested + Save eigenvectors, if == ested */ //PetscOptionsGetString(NULL,NULL,"-evecs",filename,PETSC_MAX_PATH_LEN,&evecs); EPSGetConverged(eps,&nconv); @@ -231,18 +235,65 @@ int main(int argc,char **argv) indxr[i-Istart] = i; } ierr = VecGetValues(xr, nlocal, indxr, valxr);CHKERRQ(ierr); + printf("istart = %d, iend = %d\n",Istart, Iend); for (ii=Istart; ii