[cig-commits] r17935 - mc/3D/CitcomS/trunk/lib
becker at geodynamics.org
becker at geodynamics.org
Mon Feb 21 20:13:21 PST 2011
Author: becker
Date: 2011-02-21 20:13:21 -0800 (Mon, 21 Feb 2011)
New Revision: 17935
Modified:
mc/3D/CitcomS/trunk/lib/Drive_solvers.c
mc/3D/CitcomS/trunk/lib/Instructions.c
mc/3D/CitcomS/trunk/lib/global_defs.h
Log:
Added a flag force_iteration which if on (off by default), will
enforce an iterative solution to the velocity fields even if linear
rheologies were chosen. This is useful for debugging/robustness tests.
Modified: mc/3D/CitcomS/trunk/lib/Drive_solvers.c
===================================================================
--- mc/3D/CitcomS/trunk/lib/Drive_solvers.c 2011-02-22 01:47:12 UTC (rev 17934)
+++ mc/3D/CitcomS/trunk/lib/Drive_solvers.c 2011-02-22 04:13:21 UTC (rev 17935)
@@ -172,22 +172,26 @@
}
}
int need_to_iterate(struct All_variables *E){
+ if(E->control.force_iteration){
+ return 1;
+ }else{
#ifdef CITCOM_ALLOW_ANISOTROPIC_VISC
/* anisotropic viscosity */
if(E->viscosity.allow_anisotropic_viscosity){
if(E->viscosity.anivisc_start_from_iso) /* first step will be
solved isotropically at
first */
- return TRUE;
+ return 1;
else
- return (E->viscosity.SDEPV || E->viscosity.PDEPV)?(TRUE):(FALSE);
+ return (E->viscosity.SDEPV || E->viscosity.PDEPV)?(1):(0);
}else{
#endif
/* regular operation */
- return ((E->viscosity.SDEPV || E->viscosity.PDEPV)?(TRUE):(FALSE));
+ return ((E->viscosity.SDEPV || E->viscosity.PDEPV)?(1):(0));
#ifdef CITCOM_ALLOW_ANISOTROPIC_VISC
}
#endif
+ }
}
void general_stokes_solver_pseudo_surf(struct All_variables *E)
{
Modified: mc/3D/CitcomS/trunk/lib/Instructions.c
===================================================================
--- mc/3D/CitcomS/trunk/lib/Instructions.c 2011-02-22 01:47:12 UTC (rev 17934)
+++ mc/3D/CitcomS/trunk/lib/Instructions.c 2011-02-22 04:13:21 UTC (rev 17935)
@@ -635,6 +635,8 @@
input_double("accuracy",&(E->control.accuracy),"1.0e-4,0.0,1.0",m);
input_double("inner_accuracy_scale",&(E->control.inner_accuracy_scale),"1.0,0.000001,1.0",m);
+ input_boolean("force_iteration",&(E->control.force_iteration),"off",m);
+
input_boolean("check_continuity_convergence",&(E->control.check_continuity_convergence),"on",m);
input_boolean("check_pressure_convergence",&(E->control.check_pressure_convergence),"on",m);
Modified: mc/3D/CitcomS/trunk/lib/global_defs.h
===================================================================
--- mc/3D/CitcomS/trunk/lib/global_defs.h 2011-02-22 01:47:12 UTC (rev 17934)
+++ mc/3D/CitcomS/trunk/lib/global_defs.h 2011-02-22 04:13:21 UTC (rev 17935)
@@ -540,6 +540,7 @@
double accuracy,inner_accuracy_scale;
int check_continuity_convergence;
int check_pressure_convergence;
+ int force_iteration;
char velocity_boundary_file[1000];
char temperature_boundary_file[1000];
char mat_file[1000];
More information about the CIG-COMMITS
mailing list