[cig-commits] r6802 - in mc/3D/CitcomS/branches/compressible: lib visual

tan2 at geodynamics.org tan2 at geodynamics.org
Tue May 8 14:28:46 PDT 2007


Author: tan2
Date: 2007-05-08 14:28:45 -0700 (Tue, 08 May 2007)
New Revision: 6802

Modified:
   mc/3D/CitcomS/branches/compressible/lib/Output.c
   mc/3D/CitcomS/branches/compressible/visual/autocombine.py
   mc/3D/CitcomS/branches/compressible/visual/batchcombine.py
   mc/3D/CitcomS/branches/compressible/visual/dxgeneral.py
   mc/3D/CitcomS/branches/compressible/visual/pasteCitcomData.py
Log:
Changing the header format of comp_nd/comp_el ASCII outputs. The combining scripts are updated as well.

The header has two lines, in the format of:
ijunk  n_rows  time  n_columns
initial_bulk_composition[i] current_bulk_composition[i] (i = 0 to n_columns)


Modified: mc/3D/CitcomS/branches/compressible/lib/Output.c
===================================================================
--- mc/3D/CitcomS/branches/compressible/lib/Output.c	2007-05-08 21:17:29 UTC (rev 6801)
+++ mc/3D/CitcomS/branches/compressible/lib/Output.c	2007-05-08 21:28:45 UTC (rev 6802)
@@ -443,11 +443,11 @@
     fp1 = output_open(output_file);
 
     for(j=1;j<=E->sphere.caps_per_proc;j++) {
-        fprintf(fp1,"%3d %7d %.5e",
+        fprintf(fp1,"%3d %7d %.5e %d\n",
                 j, E->lmesh.nel,
-                E->monitor.elapsed_time);
+                E->monitor.elapsed_time, E->composition.ncomp);
         for(i=0;i<E->composition.ncomp;i++) {
-            fprintf(fp1," %.5e %.5e",
+            fprintf(fp1,"%.5e %.5e ",
                     E->composition.initial_bulk_composition[i],
                     E->composition.bulk_composition[i]);
         }
@@ -478,11 +478,11 @@
     fp1 = output_open(output_file);
 
     for(j=1;j<=E->sphere.caps_per_proc;j++) {
-        fprintf(fp1,"%3d %7d %.5e",
+        fprintf(fp1,"%3d %7d %.5e %d\n",
                 j, E->lmesh.nel,
-                E->monitor.elapsed_time);
+                E->monitor.elapsed_time, E->composition.ncomp);
         for(i=0;i<E->composition.ncomp;i++) {
-            fprintf(fp1," %.5e %.5e",
+            fprintf(fp1,"%.5e %.5e ",
                     E->composition.initial_bulk_composition[i],
                     E->composition.bulk_composition[i]);
         }

Modified: mc/3D/CitcomS/branches/compressible/visual/autocombine.py
===================================================================
--- mc/3D/CitcomS/branches/compressible/visual/autocombine.py	2007-05-08 21:17:29 UTC (rev 6801)
+++ mc/3D/CitcomS/branches/compressible/visual/autocombine.py	2007-05-08 21:28:45 UTC (rev 6802)
@@ -34,6 +34,8 @@
 # default values for CitcomS input
 defaults = {'output_format': 'ascii',
             'output_optional': 'surf,botm',
+            'buoy_type': 1,
+            'tracer_flavors': 2,
             'nprocx': 1,
             'nprocy': 1,
             'nprocz': 1,
@@ -89,6 +91,19 @@
     output_optional = parser.getstr('output_optional')
     optional_fields = normalize_optional(output_optional)
 
+    buoy_type = parser.getint('buoy_type')
+    nflavors = parser.getint('tracer_flavors')
+    if buoy_type == 0:
+        ncompositions = nflavors
+    elif buoy_type == 1:
+        ncompositions = nflavors - 1
+    else:
+        print "Error: don't know how to combine the output", \
+              "(buoy_type=%d)" % buoy_type
+        sys.exit(1)
+
+
+
     nodex = parser.getint('nodex')
     nodey = parser.getint('nodey')
     nodez = parser.getint('nodez')
@@ -104,7 +119,7 @@
         bc.batchcombine(nodelist, datadir, datafile, timestep,
                         nodex, nodey, nodez,
                         ncap, nprocx, nprocy, nprocz,
-                        optional_fields)
+                        optional_fields, ncompositions)
 
 
 

Modified: mc/3D/CitcomS/branches/compressible/visual/batchcombine.py
===================================================================
--- mc/3D/CitcomS/branches/compressible/visual/batchcombine.py	2007-05-08 21:17:29 UTC (rev 6801)
+++ mc/3D/CitcomS/branches/compressible/visual/batchcombine.py	2007-05-08 21:28:45 UTC (rev 6802)
@@ -29,7 +29,7 @@
 '''
 Paste and combine Citcom data
 
-Usage: batchcombine.py <machinefile | node-list> datadir datafile timestep nodex nodey nodez ncap nprocx nprocy nprocz
+Usage: batchcombine.py <machinefile | node-list> datadir datafile timestep nodex nodey nodez ncap nprocx nprocy nprocz [ncompositions]
 '''
 
 
@@ -100,7 +100,8 @@
 
 
 def batchcombine(nodes, datadir, datafile, timestep, nodex, nodey, nodez,
-                 ncap, nprocx, nprocy, nprocz, optional_fields):
+                 ncap, nprocx, nprocy, nprocz, optional_fields,
+                 ncompositions=0):
     # paste
     opts0 = 'coord,velo,visc'
     opts1 = optional_fields
@@ -132,8 +133,8 @@
         combined_files0.append('%(datafile)s.cap%(cap)02d.%(timestep)d' % vars())
         combined_files1.append('%(datafile)s.opt%(cap)02d.%(timestep)d' % vars())
 
-    dxgeneral.write(opts0, combined_files0)
-    dxgeneral.write(opts1, combined_files1)
+    dxgeneral.write(opts0, 0, combined_files0)
+    dxgeneral.write(opts1, ncompositions, combined_files1)
 
     return
 
@@ -143,7 +144,7 @@
 
     import sys
 
-    if not len(sys.argv) == 12:
+    if len(sys.argv) < 12:
         print __doc__
         sys.exit(1)
 
@@ -159,11 +160,16 @@
     nprocy = int(sys.argv[10])
     nprocz = int(sys.argv[11])
 
+    if len(sys.argv) < 13:
+        ncompositions = 0
+    else:
+        ncompositions = int(sys.argv[12])
+
     totalnodes = nprocx * nprocy * nprocz * ncap
     nodelist = machinefile2nodelist(machinefile, totalnodes)
 
     batchcombine(nodelist, datadir, datafile, timestep, nodex, nodey, nodez,
-                 ncap, nprocx, nprocy, nprocz)
+                 ncap, nprocx, nprocy, nprocz, ncompositions)
 
 
 

Modified: mc/3D/CitcomS/branches/compressible/visual/dxgeneral.py
===================================================================
--- mc/3D/CitcomS/branches/compressible/visual/dxgeneral.py	2007-05-08 21:17:29 UTC (rev 6801)
+++ mc/3D/CitcomS/branches/compressible/visual/dxgeneral.py	2007-05-08 21:28:45 UTC (rev 6802)
@@ -28,13 +28,13 @@
 
 '''Create OpenDX .general file for combined Citcom Data
 
-  Usage: dxgeneral.py combined_fields file1 [file2 [...]]
+  Usage: dxgeneral.py combined_fields ncompositions file1 [file2 [...]]
 '''
 
 import os, sys
 
 
-def write(opts, filenames):
+def write(opts, ncomp, filenames):
 
     for filename in filenames:
         if not os.path.exists(filename):
@@ -47,7 +47,7 @@
         f = open(outfile, 'w')
 
         try:
-            write_general_file(f, filename, opts, shape)
+            write_general_file(f, filename, opts, shape, ncomp)
         finally:
             f.close()
 
@@ -65,7 +65,7 @@
 
 
 
-def write_general_file(f, filename, opts, shape):
+def write_general_file(f, filename, opts, shape, ncomp):
 
     template = '''file = %(filename)s
 grid = %(shape_str)s
@@ -96,6 +96,10 @@
               'velo': '3-vector, scalar',
               'visc': 'scalar'}
 
+    # 'comp_nd' needs special treatment
+    if ncomp > 1:
+        struct['comp_nd'] = '%d-vector' % ncomp
+
     # mapping from opt name to data type
     type = {'comp_nd': 'float',
             'coord': 'float',
@@ -108,6 +112,7 @@
     opt_struct = []
     opt_type = []
     for opt in opts.split(','):
+        opt = opt.strip()
         opt_field.append(field[opt])
         opt_struct.append(struct[opt])
         opt_type.append(type[opt])
@@ -129,9 +134,10 @@
         sys.exit(1)
 
     opts = sys.argv[1]
-    filenames = sys.argv[2:]
+    ncomp = int(sys.argv[2])
+    filenames = sys.argv[3:]
 
-    write(opts, filenames)
+    write(opts, ncomp, filenames)
 
 
 # End of file

Modified: mc/3D/CitcomS/branches/compressible/visual/pasteCitcomData.py
===================================================================
--- mc/3D/CitcomS/branches/compressible/visual/pasteCitcomData.py	2007-05-08 21:17:29 UTC (rev 6801)
+++ mc/3D/CitcomS/branches/compressible/visual/pasteCitcomData.py	2007-05-08 21:28:45 UTC (rev 6802)
@@ -120,7 +120,7 @@
     # how many header lines for each infix
     headers = {'coord': 1,
                'botm': 1,
-               'comp_nd': 1,
+               'comp_nd': 2,
                'pressure': 2,
                'stress': 2,
                'surf': 1,



More information about the cig-commits mailing list