[cig-commits] [commit] rajesh-petsc-schur: working version of solve_Ahat_p_fhat_PETSc_Schur (3865370)

cig_noreply at geodynamics.org cig_noreply at geodynamics.org
Wed Nov 5 19:04:41 PST 2014


Repository : https://github.com/geodynamics/citcoms

On branch  : rajesh-petsc-schur
Link       : https://github.com/geodynamics/citcoms/compare/464e1b32299b15819f93efd98d969cddb84dfe51...f97ae655a50bdbd6dac1923a3471ee4dae178fbd

>---------------------------------------------------------------

commit 3865370f8d4d993496b38296ce7988a4d75403d8
Author: Rajesh Kommu <rajesh.kommu at gmail.com>
Date:   Fri Sep 12 14:00:16 2014 -0700

    working version of solve_Ahat_p_fhat_PETSc_Schur


>---------------------------------------------------------------

3865370f8d4d993496b38296ce7988a4d75403d8
 lib/Stokes_flow_Incomp.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/lib/Stokes_flow_Incomp.c b/lib/Stokes_flow_Incomp.c
index cb6cfe2..f291106 100644
--- a/lib/Stokes_flow_Incomp.c
+++ b/lib/Stokes_flow_Incomp.c
@@ -292,7 +292,7 @@ static PetscErrorCode solve_Ahat_p_fhat_PETSc_Schur(struct All_variables *E,
   //ierr = KSPGetPC(S_ksp, &S_pc); CHKERRQ(ierr);
   ierr = KSPSetType(S_ksp, "cg"); CHKERRQ(ierr);
   //ierr = PCSetType(S_pc, "none"); CHKERRQ(ierr);
-  //ierr = KSPSetInitialGuessNonzero(S_ksp, PETSC_FALSE); CHKERRQ(ierr);
+  ierr = KSPSetInitialGuessNonzero(S_ksp, PETSC_TRUE); CHKERRQ(ierr);
 
   /*--------------------*/
   /* Solve for pressure */
@@ -304,11 +304,10 @@ static PetscErrorCode solve_Ahat_p_fhat_PETSc_Schur(struct All_variables *E,
   /*--------------------*/
   ierr = MatGetVecs(E->K, PETSC_NULL, &fstar); CHKERRQ(ierr);
   ierr = MatMult(E->G, PVec, fstar); CHKERRQ(ierr);
-  ierr = VecAYPX(fstar, -1.0, FF); CHKERRQ(ierr);
+  ierr = VecAYPX(fstar, 1.0, FF); CHKERRQ(ierr);
   ierr = MatSchurComplementGetKSP(S, &inner_ksp); CHKERRQ(ierr);
-  //ierr = KSPSetInitialGuessNonzero(inner_ksp, PETSC_FALSE); CHKERRQ(ierr);
+  ierr = KSPSetInitialGuessNonzero(inner_ksp, PETSC_TRUE); CHKERRQ(ierr);
   ierr = KSPSolve(inner_ksp, fstar, VVec); CHKERRQ(ierr);
-  //strip_bcs_from_residual_PETSc( E, VVec, lev );
 
   /*-----------------------------------------------*/
   /* copy the values of VVec and PVec into V and P */



More information about the CIG-COMMITS mailing list