[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