[cig-commits] r15590 - mc/3D/CitcomS/trunk/lib

becker at geodynamics.org becker at geodynamics.org
Tue Aug 25 10:31:36 PDT 2009


Author: becker
Date: 2009-08-25 10:31:36 -0700 (Tue, 25 Aug 2009)
New Revision: 15590

Modified:
   mc/3D/CitcomS/trunk/lib/Stokes_flow_Incomp.c
Log:
Ensure that Uzawa solver does not converge if low level, MG solver does not
yield a valid solution.



Modified: mc/3D/CitcomS/trunk/lib/Stokes_flow_Incomp.c
===================================================================
--- mc/3D/CitcomS/trunk/lib/Stokes_flow_Incomp.c	2009-08-25 17:22:10 UTC (rev 15589)
+++ mc/3D/CitcomS/trunk/lib/Stokes_flow_Incomp.c	2009-08-25 17:31:36 UTC (rev 15590)
@@ -675,26 +675,29 @@
                                        dvelocity, dpressure,
                                        E->monitor.incompressibility);
         }
-
-	if(E->control.only_check_vel_convergence){
-	  /* 
-
-	  override pressure and compressibility check
-
-	  */
-	  if(dvelocity < imp)
-	    converging++;
-	  else
-	    converging =0;
-	  E->monitor.incompressibility = dvelocity;
+	if(!valid){
+	  converging = 0;
 	}else{
-	  /* how many consecutive converging iterations? */
-	  if(dvelocity < imp && dpressure < imp)
-            converging++;
-	  else
-            converging = 0;
+	  if(E->control.only_check_vel_convergence){
+	    /* 
+	       
+	    override pressure and compressibility check
+	    
+	    */
+	    if(dvelocity < imp)
+	      converging++;
+	    else
+	      converging =0;
+	    E->monitor.incompressibility = dvelocity;
+	  }else{
+	    /* how many consecutive converging iterations? */
+	    if(dvelocity < imp && dpressure < imp)
+	      converging++;
+	    else
+	      converging = 0;
+	  }
 	}
-        /* shift array pointers */
+	/* shift array pointers */
         for(m=1; m<=E->sphere.caps_per_proc; m++) {
             shuffle[m] = p1[m];
             p1[m] = p2[m];



More information about the CIG-COMMITS mailing list