[cig-commits] [commit] rajesh-petsc-schur: added global_p_norm2 to print_convergence_report in PETSc_Schur (8ea885b)

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


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

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

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

commit 8ea885bd544d6b7669f90b84c528df25c4be212f
Author: Rajesh Kommu <rajesh.kommu at gmail.com>
Date:   Thu Sep 11 14:39:41 2014 -0700

    added global_p_norm2 to print_convergence_report in PETSc_Schur


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

8ea885bd544d6b7669f90b84c528df25c4be212f
 lib/Stokes_flow_Incomp.c | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/lib/Stokes_flow_Incomp.c b/lib/Stokes_flow_Incomp.c
index fbdf936..f78c449 100644
--- a/lib/Stokes_flow_Incomp.c
+++ b/lib/Stokes_flow_Incomp.c
@@ -308,6 +308,7 @@ static PetscErrorCode solve_Ahat_p_fhat_PETSc_Schur(struct All_variables *E,
   ierr = MatSchurComplementGetKSP(S, &inner_ksp); 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 */
@@ -316,24 +317,27 @@ static PetscErrorCode solve_Ahat_p_fhat_PETSc_Schur(struct All_variables *E,
   for( i = 0; i < neq; i++ )
     V[1][i] = V_data[i];
   ierr = VecRestoreArray( VVec, &V_data ); CHKERRQ( ierr );
+  //velocities_conform_bcs( E, VVec, lev );
   
   ierr = VecGetArray( PVec, &P_data ); CHKERRQ( ierr );
   for( i = 0; i < nel; i++ )
     P[1][i] = P_data[i]; 
   ierr = VecRestoreArray( PVec, &P_data ); CHKERRQ( ierr );
 
-  /*---------------------------------------------------------------------*/
-  /* output v_norm values; all other values are currently not meaningful */
-  /*---------------------------------------------------------------------*/
+
+
+  /*---------------------------------------------------------------------------------------*/
+  /* output v_norm and p_norm values; dvelocity and dpressure are currently not meaningful */
+  /*---------------------------------------------------------------------------------------*/
   E->monitor.vdotv = global_v_norm2(E, V);
+  E->monitor.pdotp = global_p_norm2(E, P);
   double v_norm = sqrt(E->monitor.vdotv);
   double p_norm = sqrt(E->monitor.pdotp);
   double dvelocity = 1.0;
   double dpressure = 1.0;
   int converging = 0;
   if (E->control.print_convergence && E->parallel.me==0)  {
-    print_convergence_progress(E, count, time0, v_norm, p_norm,
-                                 dvelocity, dpressure, 1.0);
+    print_convergence_progress(E, count, time0, v_norm, p_norm, dvelocity, dpressure, 1.0);
   }
 
   PetscFunctionReturn(0);



More information about the CIG-COMMITS mailing list