X-Git-Url: https://bilbo.iut-bm.univ-fcomte.fr/and/gitweb/GMRES2stage.git/blobdiff_plain/1ecb79e1234256ff879d1a787113c41fca16a7cc..ccfba25388fe899463c9ec52777cfc6e9ad6ef36:/code/ex49.c diff --git a/code/ex49.c b/code/ex49.c index b875dd3..260effb 100644 --- a/code/ex49.c +++ b/code/ex49.c @@ -88,7 +88,7 @@ int KrylovMinimize(Mat A, Vec b, Vec x) { //Variables PetscScalar gamma, alpha, oldgamma, beta; - PetscReal norm=20, Eprecision=1e-8, cgprec=1e-40; + PetscReal norm=20, Eprecision=1e-6, cgprec=1e-40; PetscInt giter=0, ColS=8, col=0, Emaxiter=50000000, iter=0, iterations=15, Iiter=0; PetscErrorCode ierr; PetscScalar T1, T2; @@ -265,7 +265,7 @@ int KrylovMinimizeLSQR(Mat A, Vec b, Vec x) { //Variables PetscScalar alpha, beta; - PetscReal norm=20, Eprecision=1e-8, tol=1e-40; + PetscReal norm=20, Eprecision=1e-6, tol=1e-40; PetscInt giter=0, ColS=8, col=0, Emaxiter=50000000, iter=0, iterations=15, Iiter=0; PetscErrorCode ierr; PetscScalar T1, T2; @@ -1420,11 +1420,11 @@ static PetscErrorCode solve_elasticity_2d(PetscInt mx,PetscInt my) ierr = DMLocalToGlobalBegin(da_prop,l_properties,ADD_VALUES,properties);CHKERRQ(ierr); ierr = DMLocalToGlobalEnd(da_prop,l_properties,ADD_VALUES,properties);CHKERRQ(ierr); - ierr = PetscOptionsGetBool(NULL,"-no_view",&no_view,NULL);CHKERRQ(ierr); + /* ierr = PetscOptionsGetBool(NULL,"-no_view",&no_view,NULL);CHKERRQ(ierr); if (!no_view) { ierr = DMDAViewCoefficientsGnuplot2d(da_prop,properties,"Coeffcients for elasticity eqn.","properties");CHKERRQ(ierr); ierr = DMDACoordViewGnuplot2d(elas_da,"mesh");CHKERRQ(ierr); - } + }*/ /* Generate a matrix with the correct non-zero pattern of type AIJ. This will work in parallel and serial */ ierr = DMSetMatType(elas_da,MATAIJ);CHKERRQ(ierr); @@ -1464,7 +1464,7 @@ static PetscErrorCode solve_elasticity_2d(PetscInt mx,PetscInt my) ierr = KSPSetFromOptions(ksp_E);CHKERRQ(ierr); PetscScalar T1,T2; - ierr = KSPSetTolerances(ksp_E, 1e-9, 1e-9, PETSC_DEFAULT, 50000000); CHKERRQ(ierr); + ierr = KSPSetTolerances(ksp_E, 1e-7, 1e-7, PETSC_DEFAULT, 50000000); CHKERRQ(ierr); T1 = MPI_Wtime(); ierr = KSPSolve(ksp_E,ff,XX);CHKERRQ(ierr); @@ -1538,7 +1538,7 @@ static PetscErrorCode solve_elasticity_2d(PetscInt mx,PetscInt my) ierr = KSPSolve(ksp_E,f,X);CHKERRQ(ierr); } - if (!no_view) {ierr = DMDAViewGnuplot2d(elas_da,X,"Displacement solution for elasticity eqn.","X");CHKERRQ(ierr);} + // if (!no_view) {ierr = DMDAViewGnuplot2d(elas_da,X,"Displacement solution for elasticity eqn.","X");CHKERRQ(ierr);} ierr = KSPDestroy(&ksp_E);CHKERRQ(ierr); ierr = VecDestroy(&X);CHKERRQ(ierr); @@ -1566,6 +1566,12 @@ int main(int argc,char **args) ierr = PetscOptionsGetInt(NULL,"-mx",&mx,NULL);CHKERRQ(ierr); ierr = PetscOptionsGetInt(NULL,"-my",&my,NULL);CHKERRQ(ierr); + + PetscMPIInt size; + MPI_Comm_size(PETSC_COMM_WORLD,&size); + PetscPrintf(PETSC_COMM_WORLD,"Number of processors = %d\n",size); + + ierr = solve_elasticity_2d(mx,my);CHKERRQ(ierr); ierr = PetscFinalize();CHKERRQ(ierr);