[cig-commits] r4161 - in long/3D/Gale/trunk/src/StgFEM: . SLE/ProvidedSystems/StokesFlow/src

walter at geodynamics.org walter at geodynamics.org
Tue Aug 1 01:54:45 PDT 2006


Author: walter
Date: 2006-08-01 01:54:44 -0700 (Tue, 01 Aug 2006)
New Revision: 4161

Modified:
   long/3D/Gale/trunk/src/StgFEM/
   long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/StokesFlow/src/Stokes_SLE_UzawaSolver.c
Log:
 r725 at earth:  boo | 2006-08-01 01:52:55 -0700
  r715 at earth (orig r619):  PatrickSunter | 2006-07-24 20:03:27 -0700
  While trying to get checkpoint-restarting able to get the restart value within a small
  tolerance of the original, chose to change the Stokes_SLE_UzawaSolver:
     * Found that the previous timestep's pressure is used as an initial guess to 
     try & speed up convergence, even if only linear rheologies used. While the solver could
     still get a reasonable solution on restart without it, by re-loading the 
     checkpointed pressure into the pressure SolutionVector, was able to improve
     the checkpoint-restart convergence with non-restarted result 2 timesteps after
     restart from approx 4 significant figures to 8 or 9, and also reduce the number
     of iterations required.
  
 



Property changes on: long/3D/Gale/trunk/src/StgFEM
___________________________________________________________________
Name: svk:merge
   - 38867592-cf10-0410-9e16-a142ea72ac34:/cig:724
db209038-57f2-0310-97fa-b160e0ae9d04:/trunk:618
   + 38867592-cf10-0410-9e16-a142ea72ac34:/cig:725
db209038-57f2-0310-97fa-b160e0ae9d04:/trunk:619

Modified: long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/StokesFlow/src/Stokes_SLE_UzawaSolver.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/StokesFlow/src/Stokes_SLE_UzawaSolver.c	2006-08-01 08:54:41 UTC (rev 4160)
+++ long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/StokesFlow/src/Stokes_SLE_UzawaSolver.c	2006-08-01 08:54:44 UTC (rev 4161)
@@ -289,6 +289,15 @@
 	if( sle->mgEnabled ) {
 		MultiGrid_InitMatrixSolver( sle->mgHandles[0], self->velSolver );
 	}
+
+	if ( sle->context && (True == sle->context->loadFromCheckPoint) ) {
+		/* The previous timestep's velocity solution will be helpful in iterating to a better
+		solution faster - and thus make restarting from checkpoint more repeatable compared
+		to original non-restart solution */
+		SolutionVector_LoadCurrentFeVariableValuesOntoVector( sle->uSolnVec );
+		SolutionVector_LoadCurrentFeVariableValuesOntoVector( sle->pSolnVec );
+	}
+
 }
 
 /* SolverSetup */



More information about the cig-commits mailing list