[cig-commits] r14353 - in mc/3D/CitcomS/trunk: lib tests tests/stokes
tan2 at geodynamics.org
tan2 at geodynamics.org
Mon Mar 16 15:52:08 PDT 2009
Author: tan2
Date: 2009-03-16 15:52:08 -0700 (Mon, 16 Mar 2009)
New Revision: 14353
Added:
mc/3D/CitcomS/trunk/tests/stokes/
mc/3D/CitcomS/trunk/tests/stokes/bousinessq.cfg
mc/3D/CitcomS/trunk/tests/stokes/tala.cfg
Modified:
mc/3D/CitcomS/trunk/lib/Initial_temperature.c
Log:
add test cases for the stokes solver under bousinessq approximation and truncated anelastic liquid approximation
Modified: mc/3D/CitcomS/trunk/lib/Initial_temperature.c
===================================================================
--- mc/3D/CitcomS/trunk/lib/Initial_temperature.c 2009-03-16 22:50:06 UTC (rev 14352)
+++ mc/3D/CitcomS/trunk/lib/Initial_temperature.c 2009-03-16 22:52:08 UTC (rev 14353)
@@ -654,6 +654,42 @@
add_perturbations_at_all_layers(E);
break;
+ case 90:
+ /* for benchmarking purpose */
+ /* a constant temperature (0) + single perturbation at mid-layer
+ as a delta function in r */
+
+ if((E->parallel.nprocz % 2) == 0) {
+ if(E->parallel.me==0)
+ fprintf(stderr, "ERROR: tic_method=%d -- nprocz is even, cannot put perturbation on processor boundary!\n",
+ E->convection.tic_method);
+
+ parallel_process_termination();
+ }
+
+ constant_temperature_profile(E, 0);
+
+ {
+ /* adjust the amplitude of perturbation, so that
+ * its integral in r is 1 */
+ int mid, k;
+
+ E->convection.number_of_perturbations = 1;
+
+ mid = (E->mesh.noz+1) / 2;
+ E->convection.load_depth[0] = mid;
+
+ k = mid - E->lmesh.nzs + 1; /* convert to local nz */
+ E->convection.perturb_mag[0] = 0;
+ if ( (k > 1) && (k < E->lmesh.noz) ) {
+ /* layer k is inside this proc. */
+ E->convection.perturb_mag[0] = 2 / (E->sx[1][3][k+1] - E->sx[1][3][k-1]);
+ }
+
+ }
+ add_perturbations_at_layers(E);
+ break;
+
case 100:
/* user-defined initial temperature goes here */
fprintf(stderr,"Need user definition for initial temperture: 'tic_method=%d'\n",
Added: mc/3D/CitcomS/trunk/tests/stokes/bousinessq.cfg
===================================================================
--- mc/3D/CitcomS/trunk/tests/stokes/bousinessq.cfg (rev 0)
+++ mc/3D/CitcomS/trunk/tests/stokes/bousinessq.cfg 2009-03-16 22:52:08 UTC (rev 14353)
@@ -0,0 +1,36 @@
+# Benchmark for Stokes solver in Bousinessq approximation
+
+[CitcomS]
+solver = full
+
+
+[CitcomS.solver]
+stokes_flow_only = on
+rayleigh = 1
+
+
+[CitcomS.solver.mesher]
+levels = 5
+
+
+[CitcomS.solver.vsolver]
+Solver = multigrid
+
+
+## This combination of ic and bc makes T=0 everywhere
+## except one spherical harmonic load.
+[CitcomS.solver.ic]
+tic_method = 90
+perturbl = 3
+perturbm = 2
+
+
+[CitcomS.solver.bc]
+bottbcval = 0
+
+
+[CitcomS.solver.output]
+output_optional = surf, botm, geoid
+self_gravitation = on
+use_cbf_topo = off
+
Added: mc/3D/CitcomS/trunk/tests/stokes/tala.cfg
===================================================================
--- mc/3D/CitcomS/trunk/tests/stokes/tala.cfg (rev 0)
+++ mc/3D/CitcomS/trunk/tests/stokes/tala.cfg 2009-03-16 22:52:08 UTC (rev 14353)
@@ -0,0 +1,40 @@
+# Benchmark for Stokes solver in Truncated Anelastic Liquid approximation
+
+[CitcomS]
+solver = full
+
+
+[CitcomS.solver]
+stokes_flow_only = on
+rayleigh = 1
+dissipation_number = 0.5
+gruneisen = 1
+
+
+[CitcomS.solver.mesher]
+levels = 5
+
+
+[CitcomS.solver.vsolver]
+Solver = multigrid
+uzawa = bicg
+#uzawa = cg
+
+
+## This combination of ic and bc makes T=0 everywhere
+## except one spherical harmonic load.
+[CitcomS.solver.ic]
+tic_method = 90
+perturbl = 3
+perturbm = 2
+
+
+[CitcomS.solver.bc]
+bottbcval = 0
+
+
+[CitcomS.solver.output]
+output_optional = surf, botm, geoid
+self_gravitation = on
+use_cbf_topo = off
+
More information about the CIG-COMMITS
mailing list