[cig-commits] r14779 - in short/3D/PyLith/trunk/examples/3d/hex8: . gftest gftest/gfspatialdb

willic3 at geodynamics.org willic3 at geodynamics.org
Mon Apr 20 17:06:52 PDT 2009


Author: willic3
Date: 2009-04-20 17:06:51 -0700 (Mon, 20 Apr 2009)
New Revision: 14779

Added:
   short/3D/PyLith/trunk/examples/3d/hex8/gftest/
   short/3D/PyLith/trunk/examples/3d/hex8/gftest/README
   short/3D/PyLith/trunk/examples/3d/hex8/gftest/box_hex8_1000m.exo
   short/3D/PyLith/trunk/examples/3d/hex8/gftest/geometry.jou
   short/3D/PyLith/trunk/examples/3d/hex8/gftest/gfimpulses/
   short/3D/PyLith/trunk/examples/3d/hex8/gftest/gfresponses/
   short/3D/PyLith/trunk/examples/3d/hex8/gftest/gfspatialdb/
   short/3D/PyLith/trunk/examples/3d/hex8/gftest/gfspatialdb/gfimpulse00.spatialdb
   short/3D/PyLith/trunk/examples/3d/hex8/gftest/gfspatialdb/gfimpulse01.spatialdb
   short/3D/PyLith/trunk/examples/3d/hex8/gftest/gfspatialdb/gfimpulse02.spatialdb
   short/3D/PyLith/trunk/examples/3d/hex8/gftest/gfspatialdb/gfimpulse03.spatialdb
   short/3D/PyLith/trunk/examples/3d/hex8/gftest/gfspatialdb/gfimpulse04.spatialdb
   short/3D/PyLith/trunk/examples/3d/hex8/gftest/gfspatialdb/gfimpulse05.spatialdb
   short/3D/PyLith/trunk/examples/3d/hex8/gftest/gfspatialdb/gfimpulse06.spatialdb
   short/3D/PyLith/trunk/examples/3d/hex8/gftest/gfspatialdb/gfimpulse07.spatialdb
   short/3D/PyLith/trunk/examples/3d/hex8/gftest/gfspatialdb/gfimpulse08.spatialdb
   short/3D/PyLith/trunk/examples/3d/hex8/gftest/gfspatialdb/gfimpulse09.spatialdb
   short/3D/PyLith/trunk/examples/3d/hex8/gftest/gfspatialdb/gfimpulse10.spatialdb
   short/3D/PyLith/trunk/examples/3d/hex8/gftest/gfspatialdb/gfimpulse11.spatialdb
   short/3D/PyLith/trunk/examples/3d/hex8/gftest/gfspatialdb/gfimpulse12.spatialdb
   short/3D/PyLith/trunk/examples/3d/hex8/gftest/gfspatialdb/gfimpulse13.spatialdb
   short/3D/PyLith/trunk/examples/3d/hex8/gftest/gftest.cfg
   short/3D/PyLith/trunk/examples/3d/hex8/gftest/mat_elastic.spatialdb
   short/3D/PyLith/trunk/examples/3d/hex8/gftest/mesh_hex8_1000m.jou
   short/3D/PyLith/trunk/examples/3d/hex8/gftest/pylithapp.cfg
   short/3D/PyLith/trunk/examples/3d/hex8/gftest/sliptime.spatialdb
Modified:
   short/3D/PyLith/trunk/examples/3d/hex8/pylithapp.cfg
Log:
Added a very crude method for generating Green's functions.
This method doesn't do interpolations and doesn't compute seismic moments.



Added: short/3D/PyLith/trunk/examples/3d/hex8/gftest/README
===================================================================
--- short/3D/PyLith/trunk/examples/3d/hex8/gftest/README	                        (rev 0)
+++ short/3D/PyLith/trunk/examples/3d/hex8/gftest/README	2009-04-21 00:06:51 UTC (rev 14779)
@@ -0,0 +1,35 @@
+In this directory are files that allow a somewhat kludgy method of
+generating Green's functions using PyLith. The impulses are unit amounts of
+strike-slip applied on the vertices of a fault, and the responses are
+displacements at the vertices on the ground surface. The method used is as
+follows:
+
+The entire problem is treated as a time-dependent elastic problem with
+time-varying slip. At each time step, a unit slip is applied for the
+desired impulse. For time step zero, this is all that needs to be done.
+For subsequent time steps, it is necessary to remove the applied impulse
+from the previous step. This is done by applying a unit negative impulse.
+It is necessary to generate a sequence of spatial databases to specify the
+slip at each time step. These are contained in the directory gfspatialdb.
+
+To run the problem, simpyly type:
+
+pylith gftest.cfg
+
+When it has finished running, you will have a number of VTK files in the
+gfimpulses directory that show what the applied fault slip was for each
+time step. In the gfresponses directory you will have all of the resulting
+displacements on the ground surface. The time step number for each of these
+files indicates the impulse number to which they correspond.
+
+This method is not very sophisticated, and the results have not been
+tested, but it may provide a simple method for generating Green's functions
+without too much work. The main shortcoming at present is that the
+responses are only generated at the specified set of vertices. If users
+need responses at locations that do not correspond to one of the vertices in
+the mesh, they will need to do their own interpolation. In the future, we
+plan to provide a method that will allow PyLith to do the interpolation.
+Also, this method does not provide a method for determining the seismic
+moment for each impulse. To do this it would be necessary to integrate over
+the fault elements attached to each impulse vertex. At present, it is
+probably easiest to do this by postprocessing using the fault mesh.

Added: short/3D/PyLith/trunk/examples/3d/hex8/gftest/box_hex8_1000m.exo
===================================================================
(Binary files differ)


Property changes on: short/3D/PyLith/trunk/examples/3d/hex8/gftest/box_hex8_1000m.exo
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: short/3D/PyLith/trunk/examples/3d/hex8/gftest/geometry.jou
===================================================================
--- short/3D/PyLith/trunk/examples/3d/hex8/gftest/geometry.jou	                        (rev 0)
+++ short/3D/PyLith/trunk/examples/3d/hex8/gftest/geometry.jou	2009-04-21 00:06:51 UTC (rev 14779)
@@ -0,0 +1,47 @@
+## /tools/common/cubit-10.2/bin/clarox
+## Cubit Version 10.2
+## Cubit Build 24
+## Revised 12/15/2006 16:09:40 MST
+## Running 06/18/2007 10:26:50 AM
+## Command Options:
+## -warning = On
+## -information = On
+
+# ----------------------------------------------------------------------
+# Create block
+# ----------------------------------------------------------------------
+
+# Block is 6 km x 6 km x 4 km
+# -3 km <= x <= 3 km
+# -3 km <= y <= 3 km
+# -4 km <= z <= 0 km
+reset
+brick x 6000 y 6000 z 4000
+
+# Translate block so the top is at z=0
+volume 1 move x 0 y 0 z -2000
+
+# ----------------------------------------------------------------------
+# Create interface surfaces
+# ----------------------------------------------------------------------
+create planar surface with plane xplane offset 0
+surface 7 name "fault_surface"
+create planar surface with plane zplane offset -2000
+surface 8 name "material_interface"
+
+# ----------------------------------------------------------------------
+# Divide volumes using interface surfaces
+# ----------------------------------------------------------------------
+webcut volume 1 with plane surface fault_surface
+webcut volume 1 with plane surface material_interface
+webcut volume 4 with plane surface material_interface
+volume 1 name "elastic_xpos"
+volume 4 name "elastic_xneg"
+volume 5 name "visco_xpos"
+volume 6 name "visco_xneg"
+
+# ----------------------------------------------------------------------
+# Imprint all volumes, merging surfaces
+# ----------------------------------------------------------------------
+imprint all with volume all
+merge all

Added: short/3D/PyLith/trunk/examples/3d/hex8/gftest/gfspatialdb/gfimpulse00.spatialdb
===================================================================
--- short/3D/PyLith/trunk/examples/3d/hex8/gftest/gfspatialdb/gfimpulse00.spatialdb	                        (rev 0)
+++ short/3D/PyLith/trunk/examples/3d/hex8/gftest/gfspatialdb/gfimpulse00.spatialdb	2009-04-21 00:06:51 UTC (rev 14779)
@@ -0,0 +1,48 @@
+// -*- C++ -*- (tell Emacs to use C++ mode for syntax highlighting)
+//
+// This spatial database specifies the distribution of slip on the
+// fault surface. In this case we impose 4.0 m of right-lateral slip
+// for z >= -2.0 km with zero slip for z < -2.0 km. There is no reverse
+// slip or fault opening.
+//
+#SPATIAL.ascii 1
+SimpleDB {
+  num-values = 3
+  value-names =  left-lateral-slip  reverse-slip  fault-opening
+  value-units =  m  m  m
+  num-locs = 21
+  data-dim = 2 // Data is specified on a plane.
+  space-dim = 3
+  cs-data = cartesian {
+    to-meters = 1.0e+3 // Specify coordinates in km for convenience.
+    space-dim = 3
+  } // cs-data
+} // SimpleDB
+// Columns are
+// (1) x coordinate (km)
+// (2) y coordinate (km)
+// (3) z coordinate (km)
+// (4) left-lateral-slip (m) (right-lateral is negative)
+// (5) reverse-slip (m)
+// (6) fault-opening (m)
+0.0 -3.0   0.00     1.0  0.0  0.0
+0.0 -2.0   0.00     0.0  0.0  0.0
+0.0 -1.0   0.00     0.0  0.0  0.0
+0.0  0.0   0.00     0.0  0.0  0.0
+0.0  1.0   0.00     0.0  0.0  0.0
+0.0  2.0   0.00     0.0  0.0  0.0
+0.0  3.0   0.00     0.0  0.0  0.0
+0.0 -3.0  -1.00     0.0  0.0  0.0
+0.0 -2.0  -1.00     0.0  0.0  0.0
+0.0 -1.0  -1.00     0.0  0.0  0.0
+0.0  0.0  -1.00     0.0  0.0  0.0
+0.0  1.0  -1.00     0.0  0.0  0.0
+0.0  2.0  -1.00     0.0  0.0  0.0
+0.0  3.0  -1.00     0.0  0.0  0.0
+0.0 -3.0  -2.00     0.0  0.0  0.0
+0.0 -2.0  -2.00     0.0  0.0  0.0
+0.0 -1.0  -2.00     0.0  0.0  0.0
+0.0  0.0  -2.00     0.0  0.0  0.0
+0.0  1.0  -2.00     0.0  0.0  0.0
+0.0  2.0  -2.00     0.0  0.0  0.0
+0.0  3.0  -2.00     0.0  0.0  0.0

Added: short/3D/PyLith/trunk/examples/3d/hex8/gftest/gfspatialdb/gfimpulse01.spatialdb
===================================================================
--- short/3D/PyLith/trunk/examples/3d/hex8/gftest/gfspatialdb/gfimpulse01.spatialdb	                        (rev 0)
+++ short/3D/PyLith/trunk/examples/3d/hex8/gftest/gfspatialdb/gfimpulse01.spatialdb	2009-04-21 00:06:51 UTC (rev 14779)
@@ -0,0 +1,48 @@
+// -*- C++ -*- (tell Emacs to use C++ mode for syntax highlighting)
+//
+// This spatial database specifies the distribution of slip on the
+// fault surface. In this case we impose 4.0 m of right-lateral slip
+// for z >= -2.0 km with zero slip for z < -2.0 km. There is no reverse
+// slip or fault opening.
+//
+#SPATIAL.ascii 1
+SimpleDB {
+  num-values = 3
+  value-names =  left-lateral-slip  reverse-slip  fault-opening
+  value-units =  m  m  m
+  num-locs = 21
+  data-dim = 2 // Data is specified on a plane.
+  space-dim = 3
+  cs-data = cartesian {
+    to-meters = 1.0e+3 // Specify coordinates in km for convenience.
+    space-dim = 3
+  } // cs-data
+} // SimpleDB
+// Columns are
+// (1) x coordinate (km)
+// (2) y coordinate (km)
+// (3) z coordinate (km)
+// (4) left-lateral-slip (m) (right-lateral is negative)
+// (5) reverse-slip (m)
+// (6) fault-opening (m)
+0.0 -3.0   0.00    -1.0  0.0  0.0
+0.0 -2.0   0.00     1.0  0.0  0.0
+0.0 -1.0   0.00     0.0  0.0  0.0
+0.0  0.0   0.00     0.0  0.0  0.0
+0.0  1.0   0.00     0.0  0.0  0.0
+0.0  2.0   0.00     0.0  0.0  0.0
+0.0  3.0   0.00     0.0  0.0  0.0
+0.0 -3.0  -1.00     0.0  0.0  0.0
+0.0 -2.0  -1.00     0.0  0.0  0.0
+0.0 -1.0  -1.00     0.0  0.0  0.0
+0.0  0.0  -1.00     0.0  0.0  0.0
+0.0  1.0  -1.00     0.0  0.0  0.0
+0.0  2.0  -1.00     0.0  0.0  0.0
+0.0  3.0  -1.00     0.0  0.0  0.0
+0.0 -3.0  -2.00     0.0  0.0  0.0
+0.0 -2.0  -2.00     0.0  0.0  0.0
+0.0 -1.0  -2.00     0.0  0.0  0.0
+0.0  0.0  -2.00     0.0  0.0  0.0
+0.0  1.0  -2.00     0.0  0.0  0.0
+0.0  2.0  -2.00     0.0  0.0  0.0
+0.0  3.0  -2.00     0.0  0.0  0.0

Added: short/3D/PyLith/trunk/examples/3d/hex8/gftest/gfspatialdb/gfimpulse02.spatialdb
===================================================================
--- short/3D/PyLith/trunk/examples/3d/hex8/gftest/gfspatialdb/gfimpulse02.spatialdb	                        (rev 0)
+++ short/3D/PyLith/trunk/examples/3d/hex8/gftest/gfspatialdb/gfimpulse02.spatialdb	2009-04-21 00:06:51 UTC (rev 14779)
@@ -0,0 +1,48 @@
+// -*- C++ -*- (tell Emacs to use C++ mode for syntax highlighting)
+//
+// This spatial database specifies the distribution of slip on the
+// fault surface. In this case we impose 4.0 m of right-lateral slip
+// for z >= -2.0 km with zero slip for z < -2.0 km. There is no reverse
+// slip or fault opening.
+//
+#SPATIAL.ascii 1
+SimpleDB {
+  num-values = 3
+  value-names =  left-lateral-slip  reverse-slip  fault-opening
+  value-units =  m  m  m
+  num-locs = 21
+  data-dim = 2 // Data is specified on a plane.
+  space-dim = 3
+  cs-data = cartesian {
+    to-meters = 1.0e+3 // Specify coordinates in km for convenience.
+    space-dim = 3
+  } // cs-data
+} // SimpleDB
+// Columns are
+// (1) x coordinate (km)
+// (2) y coordinate (km)
+// (3) z coordinate (km)
+// (4) left-lateral-slip (m) (right-lateral is negative)
+// (5) reverse-slip (m)
+// (6) fault-opening (m)
+0.0 -3.0   0.00     0.0  0.0  0.0
+0.0 -2.0   0.00    -1.0  0.0  0.0
+0.0 -1.0   0.00     1.0  0.0  0.0
+0.0  0.0   0.00     0.0  0.0  0.0
+0.0  1.0   0.00     0.0  0.0  0.0
+0.0  2.0   0.00     0.0  0.0  0.0
+0.0  3.0   0.00     0.0  0.0  0.0
+0.0 -3.0  -1.00     0.0  0.0  0.0
+0.0 -2.0  -1.00     0.0  0.0  0.0
+0.0 -1.0  -1.00     0.0  0.0  0.0
+0.0  0.0  -1.00     0.0  0.0  0.0
+0.0  1.0  -1.00     0.0  0.0  0.0
+0.0  2.0  -1.00     0.0  0.0  0.0
+0.0  3.0  -1.00     0.0  0.0  0.0
+0.0 -3.0  -2.00     0.0  0.0  0.0
+0.0 -2.0  -2.00     0.0  0.0  0.0
+0.0 -1.0  -2.00     0.0  0.0  0.0
+0.0  0.0  -2.00     0.0  0.0  0.0
+0.0  1.0  -2.00     0.0  0.0  0.0
+0.0  2.0  -2.00     0.0  0.0  0.0
+0.0  3.0  -2.00     0.0  0.0  0.0

Added: short/3D/PyLith/trunk/examples/3d/hex8/gftest/gfspatialdb/gfimpulse03.spatialdb
===================================================================
--- short/3D/PyLith/trunk/examples/3d/hex8/gftest/gfspatialdb/gfimpulse03.spatialdb	                        (rev 0)
+++ short/3D/PyLith/trunk/examples/3d/hex8/gftest/gfspatialdb/gfimpulse03.spatialdb	2009-04-21 00:06:51 UTC (rev 14779)
@@ -0,0 +1,48 @@
+// -*- C++ -*- (tell Emacs to use C++ mode for syntax highlighting)
+//
+// This spatial database specifies the distribution of slip on the
+// fault surface. In this case we impose 4.0 m of right-lateral slip
+// for z >= -2.0 km with zero slip for z < -2.0 km. There is no reverse
+// slip or fault opening.
+//
+#SPATIAL.ascii 1
+SimpleDB {
+  num-values = 3
+  value-names =  left-lateral-slip  reverse-slip  fault-opening
+  value-units =  m  m  m
+  num-locs = 21
+  data-dim = 2 // Data is specified on a plane.
+  space-dim = 3
+  cs-data = cartesian {
+    to-meters = 1.0e+3 // Specify coordinates in km for convenience.
+    space-dim = 3
+  } // cs-data
+} // SimpleDB
+// Columns are
+// (1) x coordinate (km)
+// (2) y coordinate (km)
+// (3) z coordinate (km)
+// (4) left-lateral-slip (m) (right-lateral is negative)
+// (5) reverse-slip (m)
+// (6) fault-opening (m)
+0.0 -3.0   0.00     0.0  0.0  0.0
+0.0 -2.0   0.00     0.0  0.0  0.0
+0.0 -1.0   0.00    -1.0  0.0  0.0
+0.0  0.0   0.00     1.0  0.0  0.0
+0.0  1.0   0.00     0.0  0.0  0.0
+0.0  2.0   0.00     0.0  0.0  0.0
+0.0  3.0   0.00     0.0  0.0  0.0
+0.0 -3.0  -1.00     0.0  0.0  0.0
+0.0 -2.0  -1.00     0.0  0.0  0.0
+0.0 -1.0  -1.00     0.0  0.0  0.0
+0.0  0.0  -1.00     0.0  0.0  0.0
+0.0  1.0  -1.00     0.0  0.0  0.0
+0.0  2.0  -1.00     0.0  0.0  0.0
+0.0  3.0  -1.00     0.0  0.0  0.0
+0.0 -3.0  -2.00     0.0  0.0  0.0
+0.0 -2.0  -2.00     0.0  0.0  0.0
+0.0 -1.0  -2.00     0.0  0.0  0.0
+0.0  0.0  -2.00     0.0  0.0  0.0
+0.0  1.0  -2.00     0.0  0.0  0.0
+0.0  2.0  -2.00     0.0  0.0  0.0
+0.0  3.0  -2.00     0.0  0.0  0.0

Added: short/3D/PyLith/trunk/examples/3d/hex8/gftest/gfspatialdb/gfimpulse04.spatialdb
===================================================================
--- short/3D/PyLith/trunk/examples/3d/hex8/gftest/gfspatialdb/gfimpulse04.spatialdb	                        (rev 0)
+++ short/3D/PyLith/trunk/examples/3d/hex8/gftest/gfspatialdb/gfimpulse04.spatialdb	2009-04-21 00:06:51 UTC (rev 14779)
@@ -0,0 +1,48 @@
+// -*- C++ -*- (tell Emacs to use C++ mode for syntax highlighting)
+//
+// This spatial database specifies the distribution of slip on the
+// fault surface. In this case we impose 4.0 m of right-lateral slip
+// for z >= -2.0 km with zero slip for z < -2.0 km. There is no reverse
+// slip or fault opening.
+//
+#SPATIAL.ascii 1
+SimpleDB {
+  num-values = 3
+  value-names =  left-lateral-slip  reverse-slip  fault-opening
+  value-units =  m  m  m
+  num-locs = 21
+  data-dim = 2 // Data is specified on a plane.
+  space-dim = 3
+  cs-data = cartesian {
+    to-meters = 1.0e+3 // Specify coordinates in km for convenience.
+    space-dim = 3
+  } // cs-data
+} // SimpleDB
+// Columns are
+// (1) x coordinate (km)
+// (2) y coordinate (km)
+// (3) z coordinate (km)
+// (4) left-lateral-slip (m) (right-lateral is negative)
+// (5) reverse-slip (m)
+// (6) fault-opening (m)
+0.0 -3.0   0.00     0.0  0.0  0.0
+0.0 -2.0   0.00     0.0  0.0  0.0
+0.0 -1.0   0.00     0.0  0.0  0.0
+0.0  0.0   0.00    -1.0  0.0  0.0
+0.0  1.0   0.00     1.0  0.0  0.0
+0.0  2.0   0.00     0.0  0.0  0.0
+0.0  3.0   0.00     0.0  0.0  0.0
+0.0 -3.0  -1.00     0.0  0.0  0.0
+0.0 -2.0  -1.00     0.0  0.0  0.0
+0.0 -1.0  -1.00     0.0  0.0  0.0
+0.0  0.0  -1.00     0.0  0.0  0.0
+0.0  1.0  -1.00     0.0  0.0  0.0
+0.0  2.0  -1.00     0.0  0.0  0.0
+0.0  3.0  -1.00     0.0  0.0  0.0
+0.0 -3.0  -2.00     0.0  0.0  0.0
+0.0 -2.0  -2.00     0.0  0.0  0.0
+0.0 -1.0  -2.00     0.0  0.0  0.0
+0.0  0.0  -2.00     0.0  0.0  0.0
+0.0  1.0  -2.00     0.0  0.0  0.0
+0.0  2.0  -2.00     0.0  0.0  0.0
+0.0  3.0  -2.00     0.0  0.0  0.0

Added: short/3D/PyLith/trunk/examples/3d/hex8/gftest/gfspatialdb/gfimpulse05.spatialdb
===================================================================
--- short/3D/PyLith/trunk/examples/3d/hex8/gftest/gfspatialdb/gfimpulse05.spatialdb	                        (rev 0)
+++ short/3D/PyLith/trunk/examples/3d/hex8/gftest/gfspatialdb/gfimpulse05.spatialdb	2009-04-21 00:06:51 UTC (rev 14779)
@@ -0,0 +1,48 @@
+// -*- C++ -*- (tell Emacs to use C++ mode for syntax highlighting)
+//
+// This spatial database specifies the distribution of slip on the
+// fault surface. In this case we impose 4.0 m of right-lateral slip
+// for z >= -2.0 km with zero slip for z < -2.0 km. There is no reverse
+// slip or fault opening.
+//
+#SPATIAL.ascii 1
+SimpleDB {
+  num-values = 3
+  value-names =  left-lateral-slip  reverse-slip  fault-opening
+  value-units =  m  m  m
+  num-locs = 21
+  data-dim = 2 // Data is specified on a plane.
+  space-dim = 3
+  cs-data = cartesian {
+    to-meters = 1.0e+3 // Specify coordinates in km for convenience.
+    space-dim = 3
+  } // cs-data
+} // SimpleDB
+// Columns are
+// (1) x coordinate (km)
+// (2) y coordinate (km)
+// (3) z coordinate (km)
+// (4) left-lateral-slip (m) (right-lateral is negative)
+// (5) reverse-slip (m)
+// (6) fault-opening (m)
+0.0 -3.0   0.00     0.0  0.0  0.0
+0.0 -2.0   0.00     0.0  0.0  0.0
+0.0 -1.0   0.00     0.0  0.0  0.0
+0.0  0.0   0.00     0.0  0.0  0.0
+0.0  1.0   0.00    -1.0  0.0  0.0
+0.0  2.0   0.00     1.0  0.0  0.0
+0.0  3.0   0.00     0.0  0.0  0.0
+0.0 -3.0  -1.00     0.0  0.0  0.0
+0.0 -2.0  -1.00     0.0  0.0  0.0
+0.0 -1.0  -1.00     0.0  0.0  0.0
+0.0  0.0  -1.00     0.0  0.0  0.0
+0.0  1.0  -1.00     0.0  0.0  0.0
+0.0  2.0  -1.00     0.0  0.0  0.0
+0.0  3.0  -1.00     0.0  0.0  0.0
+0.0 -3.0  -2.00     0.0  0.0  0.0
+0.0 -2.0  -2.00     0.0  0.0  0.0
+0.0 -1.0  -2.00     0.0  0.0  0.0
+0.0  0.0  -2.00     0.0  0.0  0.0
+0.0  1.0  -2.00     0.0  0.0  0.0
+0.0  2.0  -2.00     0.0  0.0  0.0
+0.0  3.0  -2.00     0.0  0.0  0.0

Added: short/3D/PyLith/trunk/examples/3d/hex8/gftest/gfspatialdb/gfimpulse06.spatialdb
===================================================================
--- short/3D/PyLith/trunk/examples/3d/hex8/gftest/gfspatialdb/gfimpulse06.spatialdb	                        (rev 0)
+++ short/3D/PyLith/trunk/examples/3d/hex8/gftest/gfspatialdb/gfimpulse06.spatialdb	2009-04-21 00:06:51 UTC (rev 14779)
@@ -0,0 +1,48 @@
+// -*- C++ -*- (tell Emacs to use C++ mode for syntax highlighting)
+//
+// This spatial database specifies the distribution of slip on the
+// fault surface. In this case we impose 4.0 m of right-lateral slip
+// for z >= -2.0 km with zero slip for z < -2.0 km. There is no reverse
+// slip or fault opening.
+//
+#SPATIAL.ascii 1
+SimpleDB {
+  num-values = 3
+  value-names =  left-lateral-slip  reverse-slip  fault-opening
+  value-units =  m  m  m
+  num-locs = 21
+  data-dim = 2 // Data is specified on a plane.
+  space-dim = 3
+  cs-data = cartesian {
+    to-meters = 1.0e+3 // Specify coordinates in km for convenience.
+    space-dim = 3
+  } // cs-data
+} // SimpleDB
+// Columns are
+// (1) x coordinate (km)
+// (2) y coordinate (km)
+// (3) z coordinate (km)
+// (4) left-lateral-slip (m) (right-lateral is negative)
+// (5) reverse-slip (m)
+// (6) fault-opening (m)
+0.0 -3.0   0.00     0.0  0.0  0.0
+0.0 -2.0   0.00     0.0  0.0  0.0
+0.0 -1.0   0.00     0.0  0.0  0.0
+0.0  0.0   0.00     0.0  0.0  0.0
+0.0  1.0   0.00     0.0  0.0  0.0
+0.0  2.0   0.00    -1.0  0.0  0.0
+0.0  3.0   0.00     1.0  0.0  0.0
+0.0 -3.0  -1.00     0.0  0.0  0.0
+0.0 -2.0  -1.00     0.0  0.0  0.0
+0.0 -1.0  -1.00     0.0  0.0  0.0
+0.0  0.0  -1.00     0.0  0.0  0.0
+0.0  1.0  -1.00     0.0  0.0  0.0
+0.0  2.0  -1.00     0.0  0.0  0.0
+0.0  3.0  -1.00     0.0  0.0  0.0
+0.0 -3.0  -2.00     0.0  0.0  0.0
+0.0 -2.0  -2.00     0.0  0.0  0.0
+0.0 -1.0  -2.00     0.0  0.0  0.0
+0.0  0.0  -2.00     0.0  0.0  0.0
+0.0  1.0  -2.00     0.0  0.0  0.0
+0.0  2.0  -2.00     0.0  0.0  0.0
+0.0  3.0  -2.00     0.0  0.0  0.0

Added: short/3D/PyLith/trunk/examples/3d/hex8/gftest/gfspatialdb/gfimpulse07.spatialdb
===================================================================
--- short/3D/PyLith/trunk/examples/3d/hex8/gftest/gfspatialdb/gfimpulse07.spatialdb	                        (rev 0)
+++ short/3D/PyLith/trunk/examples/3d/hex8/gftest/gfspatialdb/gfimpulse07.spatialdb	2009-04-21 00:06:51 UTC (rev 14779)
@@ -0,0 +1,48 @@
+// -*- C++ -*- (tell Emacs to use C++ mode for syntax highlighting)
+//
+// This spatial database specifies the distribution of slip on the
+// fault surface. In this case we impose 4.0 m of right-lateral slip
+// for z >= -2.0 km with zero slip for z < -2.0 km. There is no reverse
+// slip or fault opening.
+//
+#SPATIAL.ascii 1
+SimpleDB {
+  num-values = 3
+  value-names =  left-lateral-slip  reverse-slip  fault-opening
+  value-units =  m  m  m
+  num-locs = 21
+  data-dim = 2 // Data is specified on a plane.
+  space-dim = 3
+  cs-data = cartesian {
+    to-meters = 1.0e+3 // Specify coordinates in km for convenience.
+    space-dim = 3
+  } // cs-data
+} // SimpleDB
+// Columns are
+// (1) x coordinate (km)
+// (2) y coordinate (km)
+// (3) z coordinate (km)
+// (4) left-lateral-slip (m) (right-lateral is negative)
+// (5) reverse-slip (m)
+// (6) fault-opening (m)
+0.0 -3.0   0.00     0.0  0.0  0.0
+0.0 -2.0   0.00     0.0  0.0  0.0
+0.0 -1.0   0.00     0.0  0.0  0.0
+0.0  0.0   0.00     0.0  0.0  0.0
+0.0  1.0   0.00     0.0  0.0  0.0
+0.0  2.0   0.00     0.0  0.0  0.0
+0.0  3.0   0.00    -1.0  0.0  0.0
+0.0 -3.0  -1.00     1.0  0.0  0.0
+0.0 -2.0  -1.00     0.0  0.0  0.0
+0.0 -1.0  -1.00     0.0  0.0  0.0
+0.0  0.0  -1.00     0.0  0.0  0.0
+0.0  1.0  -1.00     0.0  0.0  0.0
+0.0  2.0  -1.00     0.0  0.0  0.0
+0.0  3.0  -1.00     0.0  0.0  0.0
+0.0 -3.0  -2.00     0.0  0.0  0.0
+0.0 -2.0  -2.00     0.0  0.0  0.0
+0.0 -1.0  -2.00     0.0  0.0  0.0
+0.0  0.0  -2.00     0.0  0.0  0.0
+0.0  1.0  -2.00     0.0  0.0  0.0
+0.0  2.0  -2.00     0.0  0.0  0.0
+0.0  3.0  -2.00     0.0  0.0  0.0

Added: short/3D/PyLith/trunk/examples/3d/hex8/gftest/gfspatialdb/gfimpulse08.spatialdb
===================================================================
--- short/3D/PyLith/trunk/examples/3d/hex8/gftest/gfspatialdb/gfimpulse08.spatialdb	                        (rev 0)
+++ short/3D/PyLith/trunk/examples/3d/hex8/gftest/gfspatialdb/gfimpulse08.spatialdb	2009-04-21 00:06:51 UTC (rev 14779)
@@ -0,0 +1,48 @@
+// -*- C++ -*- (tell Emacs to use C++ mode for syntax highlighting)
+//
+// This spatial database specifies the distribution of slip on the
+// fault surface. In this case we impose 4.0 m of right-lateral slip
+// for z >= -2.0 km with zero slip for z < -2.0 km. There is no reverse
+// slip or fault opening.
+//
+#SPATIAL.ascii 1
+SimpleDB {
+  num-values = 3
+  value-names =  left-lateral-slip  reverse-slip  fault-opening
+  value-units =  m  m  m
+  num-locs = 21
+  data-dim = 2 // Data is specified on a plane.
+  space-dim = 3
+  cs-data = cartesian {
+    to-meters = 1.0e+3 // Specify coordinates in km for convenience.
+    space-dim = 3
+  } // cs-data
+} // SimpleDB
+// Columns are
+// (1) x coordinate (km)
+// (2) y coordinate (km)
+// (3) z coordinate (km)
+// (4) left-lateral-slip (m) (right-lateral is negative)
+// (5) reverse-slip (m)
+// (6) fault-opening (m)
+0.0 -3.0   0.00     0.0  0.0  0.0
+0.0 -2.0   0.00     0.0  0.0  0.0
+0.0 -1.0   0.00     0.0  0.0  0.0
+0.0  0.0   0.00     0.0  0.0  0.0
+0.0  1.0   0.00     0.0  0.0  0.0
+0.0  2.0   0.00     0.0  0.0  0.0
+0.0  3.0   0.00     0.0  0.0  0.0
+0.0 -3.0  -1.00    -1.0  0.0  0.0
+0.0 -2.0  -1.00     1.0  0.0  0.0
+0.0 -1.0  -1.00     0.0  0.0  0.0
+0.0  0.0  -1.00     0.0  0.0  0.0
+0.0  1.0  -1.00     0.0  0.0  0.0
+0.0  2.0  -1.00     0.0  0.0  0.0
+0.0  3.0  -1.00     0.0  0.0  0.0
+0.0 -3.0  -2.00     0.0  0.0  0.0
+0.0 -2.0  -2.00     0.0  0.0  0.0
+0.0 -1.0  -2.00     0.0  0.0  0.0
+0.0  0.0  -2.00     0.0  0.0  0.0
+0.0  1.0  -2.00     0.0  0.0  0.0
+0.0  2.0  -2.00     0.0  0.0  0.0
+0.0  3.0  -2.00     0.0  0.0  0.0

Added: short/3D/PyLith/trunk/examples/3d/hex8/gftest/gfspatialdb/gfimpulse09.spatialdb
===================================================================
--- short/3D/PyLith/trunk/examples/3d/hex8/gftest/gfspatialdb/gfimpulse09.spatialdb	                        (rev 0)
+++ short/3D/PyLith/trunk/examples/3d/hex8/gftest/gfspatialdb/gfimpulse09.spatialdb	2009-04-21 00:06:51 UTC (rev 14779)
@@ -0,0 +1,48 @@
+// -*- C++ -*- (tell Emacs to use C++ mode for syntax highlighting)
+//
+// This spatial database specifies the distribution of slip on the
+// fault surface. In this case we impose 4.0 m of right-lateral slip
+// for z >= -2.0 km with zero slip for z < -2.0 km. There is no reverse
+// slip or fault opening.
+//
+#SPATIAL.ascii 1
+SimpleDB {
+  num-values = 3
+  value-names =  left-lateral-slip  reverse-slip  fault-opening
+  value-units =  m  m  m
+  num-locs = 21
+  data-dim = 2 // Data is specified on a plane.
+  space-dim = 3
+  cs-data = cartesian {
+    to-meters = 1.0e+3 // Specify coordinates in km for convenience.
+    space-dim = 3
+  } // cs-data
+} // SimpleDB
+// Columns are
+// (1) x coordinate (km)
+// (2) y coordinate (km)
+// (3) z coordinate (km)
+// (4) left-lateral-slip (m) (right-lateral is negative)
+// (5) reverse-slip (m)
+// (6) fault-opening (m)
+0.0 -3.0   0.00     0.0  0.0  0.0
+0.0 -2.0   0.00     0.0  0.0  0.0
+0.0 -1.0   0.00     0.0  0.0  0.0
+0.0  0.0   0.00     0.0  0.0  0.0
+0.0  1.0   0.00     0.0  0.0  0.0
+0.0  2.0   0.00     0.0  0.0  0.0
+0.0  3.0   0.00     0.0  0.0  0.0
+0.0 -3.0  -1.00     0.0  0.0  0.0
+0.0 -2.0  -1.00    -1.0  0.0  0.0
+0.0 -1.0  -1.00     1.0  0.0  0.0
+0.0  0.0  -1.00     0.0  0.0  0.0
+0.0  1.0  -1.00     0.0  0.0  0.0
+0.0  2.0  -1.00     0.0  0.0  0.0
+0.0  3.0  -1.00     0.0  0.0  0.0
+0.0 -3.0  -2.00     0.0  0.0  0.0
+0.0 -2.0  -2.00     0.0  0.0  0.0
+0.0 -1.0  -2.00     0.0  0.0  0.0
+0.0  0.0  -2.00     0.0  0.0  0.0
+0.0  1.0  -2.00     0.0  0.0  0.0
+0.0  2.0  -2.00     0.0  0.0  0.0
+0.0  3.0  -2.00     0.0  0.0  0.0

Added: short/3D/PyLith/trunk/examples/3d/hex8/gftest/gfspatialdb/gfimpulse10.spatialdb
===================================================================
--- short/3D/PyLith/trunk/examples/3d/hex8/gftest/gfspatialdb/gfimpulse10.spatialdb	                        (rev 0)
+++ short/3D/PyLith/trunk/examples/3d/hex8/gftest/gfspatialdb/gfimpulse10.spatialdb	2009-04-21 00:06:51 UTC (rev 14779)
@@ -0,0 +1,48 @@
+// -*- C++ -*- (tell Emacs to use C++ mode for syntax highlighting)
+//
+// This spatial database specifies the distribution of slip on the
+// fault surface. In this case we impose 4.0 m of right-lateral slip
+// for z >= -2.0 km with zero slip for z < -2.0 km. There is no reverse
+// slip or fault opening.
+//
+#SPATIAL.ascii 1
+SimpleDB {
+  num-values = 3
+  value-names =  left-lateral-slip  reverse-slip  fault-opening
+  value-units =  m  m  m
+  num-locs = 21
+  data-dim = 2 // Data is specified on a plane.
+  space-dim = 3
+  cs-data = cartesian {
+    to-meters = 1.0e+3 // Specify coordinates in km for convenience.
+    space-dim = 3
+  } // cs-data
+} // SimpleDB
+// Columns are
+// (1) x coordinate (km)
+// (2) y coordinate (km)
+// (3) z coordinate (km)
+// (4) left-lateral-slip (m) (right-lateral is negative)
+// (5) reverse-slip (m)
+// (6) fault-opening (m)
+0.0 -3.0   0.00     0.0  0.0  0.0
+0.0 -2.0   0.00     0.0  0.0  0.0
+0.0 -1.0   0.00     0.0  0.0  0.0
+0.0  0.0   0.00     0.0  0.0  0.0
+0.0  1.0   0.00     0.0  0.0  0.0
+0.0  2.0   0.00     0.0  0.0  0.0
+0.0  3.0   0.00     0.0  0.0  0.0
+0.0 -3.0  -1.00     0.0  0.0  0.0
+0.0 -2.0  -1.00     0.0  0.0  0.0
+0.0 -1.0  -1.00    -1.0  0.0  0.0
+0.0  0.0  -1.00     1.0  0.0  0.0
+0.0  1.0  -1.00     0.0  0.0  0.0
+0.0  2.0  -1.00     0.0  0.0  0.0
+0.0  3.0  -1.00     0.0  0.0  0.0
+0.0 -3.0  -2.00     0.0  0.0  0.0
+0.0 -2.0  -2.00     0.0  0.0  0.0
+0.0 -1.0  -2.00     0.0  0.0  0.0
+0.0  0.0  -2.00     0.0  0.0  0.0
+0.0  1.0  -2.00     0.0  0.0  0.0
+0.0  2.0  -2.00     0.0  0.0  0.0
+0.0  3.0  -2.00     0.0  0.0  0.0

Added: short/3D/PyLith/trunk/examples/3d/hex8/gftest/gfspatialdb/gfimpulse11.spatialdb
===================================================================
--- short/3D/PyLith/trunk/examples/3d/hex8/gftest/gfspatialdb/gfimpulse11.spatialdb	                        (rev 0)
+++ short/3D/PyLith/trunk/examples/3d/hex8/gftest/gfspatialdb/gfimpulse11.spatialdb	2009-04-21 00:06:51 UTC (rev 14779)
@@ -0,0 +1,48 @@
+// -*- C++ -*- (tell Emacs to use C++ mode for syntax highlighting)
+//
+// This spatial database specifies the distribution of slip on the
+// fault surface. In this case we impose 4.0 m of right-lateral slip
+// for z >= -2.0 km with zero slip for z < -2.0 km. There is no reverse
+// slip or fault opening.
+//
+#SPATIAL.ascii 1
+SimpleDB {
+  num-values = 3
+  value-names =  left-lateral-slip  reverse-slip  fault-opening
+  value-units =  m  m  m
+  num-locs = 21
+  data-dim = 2 // Data is specified on a plane.
+  space-dim = 3
+  cs-data = cartesian {
+    to-meters = 1.0e+3 // Specify coordinates in km for convenience.
+    space-dim = 3
+  } // cs-data
+} // SimpleDB
+// Columns are
+// (1) x coordinate (km)
+// (2) y coordinate (km)
+// (3) z coordinate (km)
+// (4) left-lateral-slip (m) (right-lateral is negative)
+// (5) reverse-slip (m)
+// (6) fault-opening (m)
+0.0 -3.0   0.00     0.0  0.0  0.0
+0.0 -2.0   0.00     0.0  0.0  0.0
+0.0 -1.0   0.00     0.0  0.0  0.0
+0.0  0.0   0.00     0.0  0.0  0.0
+0.0  1.0   0.00     0.0  0.0  0.0
+0.0  2.0   0.00     0.0  0.0  0.0
+0.0  3.0   0.00     0.0  0.0  0.0
+0.0 -3.0  -1.00     0.0  0.0  0.0
+0.0 -2.0  -1.00     0.0  0.0  0.0
+0.0 -1.0  -1.00     0.0  0.0  0.0
+0.0  0.0  -1.00    -1.0  0.0  0.0
+0.0  1.0  -1.00     1.0  0.0  0.0
+0.0  2.0  -1.00     0.0  0.0  0.0
+0.0  3.0  -1.00     0.0  0.0  0.0
+0.0 -3.0  -2.00     0.0  0.0  0.0
+0.0 -2.0  -2.00     0.0  0.0  0.0
+0.0 -1.0  -2.00     0.0  0.0  0.0
+0.0  0.0  -2.00     0.0  0.0  0.0
+0.0  1.0  -2.00     0.0  0.0  0.0
+0.0  2.0  -2.00     0.0  0.0  0.0
+0.0  3.0  -2.00     0.0  0.0  0.0

Added: short/3D/PyLith/trunk/examples/3d/hex8/gftest/gfspatialdb/gfimpulse12.spatialdb
===================================================================
--- short/3D/PyLith/trunk/examples/3d/hex8/gftest/gfspatialdb/gfimpulse12.spatialdb	                        (rev 0)
+++ short/3D/PyLith/trunk/examples/3d/hex8/gftest/gfspatialdb/gfimpulse12.spatialdb	2009-04-21 00:06:51 UTC (rev 14779)
@@ -0,0 +1,48 @@
+// -*- C++ -*- (tell Emacs to use C++ mode for syntax highlighting)
+//
+// This spatial database specifies the distribution of slip on the
+// fault surface. In this case we impose 4.0 m of right-lateral slip
+// for z >= -2.0 km with zero slip for z < -2.0 km. There is no reverse
+// slip or fault opening.
+//
+#SPATIAL.ascii 1
+SimpleDB {
+  num-values = 3
+  value-names =  left-lateral-slip  reverse-slip  fault-opening
+  value-units =  m  m  m
+  num-locs = 21
+  data-dim = 2 // Data is specified on a plane.
+  space-dim = 3
+  cs-data = cartesian {
+    to-meters = 1.0e+3 // Specify coordinates in km for convenience.
+    space-dim = 3
+  } // cs-data
+} // SimpleDB
+// Columns are
+// (1) x coordinate (km)
+// (2) y coordinate (km)
+// (3) z coordinate (km)
+// (4) left-lateral-slip (m) (right-lateral is negative)
+// (5) reverse-slip (m)
+// (6) fault-opening (m)
+0.0 -3.0   0.00     0.0  0.0  0.0
+0.0 -2.0   0.00     0.0  0.0  0.0
+0.0 -1.0   0.00     0.0  0.0  0.0
+0.0  0.0   0.00     0.0  0.0  0.0
+0.0  1.0   0.00     0.0  0.0  0.0
+0.0  2.0   0.00     0.0  0.0  0.0
+0.0  3.0   0.00     0.0  0.0  0.0
+0.0 -3.0  -1.00     0.0  0.0  0.0
+0.0 -2.0  -1.00     0.0  0.0  0.0
+0.0 -1.0  -1.00     0.0  0.0  0.0
+0.0  0.0  -1.00     0.0  0.0  0.0
+0.0  1.0  -1.00    -1.0  0.0  0.0
+0.0  2.0  -1.00     1.0  0.0  0.0
+0.0  3.0  -1.00     0.0  0.0  0.0
+0.0 -3.0  -2.00     0.0  0.0  0.0
+0.0 -2.0  -2.00     0.0  0.0  0.0
+0.0 -1.0  -2.00     0.0  0.0  0.0
+0.0  0.0  -2.00     0.0  0.0  0.0
+0.0  1.0  -2.00     0.0  0.0  0.0
+0.0  2.0  -2.00     0.0  0.0  0.0
+0.0  3.0  -2.00     0.0  0.0  0.0

Added: short/3D/PyLith/trunk/examples/3d/hex8/gftest/gfspatialdb/gfimpulse13.spatialdb
===================================================================
--- short/3D/PyLith/trunk/examples/3d/hex8/gftest/gfspatialdb/gfimpulse13.spatialdb	                        (rev 0)
+++ short/3D/PyLith/trunk/examples/3d/hex8/gftest/gfspatialdb/gfimpulse13.spatialdb	2009-04-21 00:06:51 UTC (rev 14779)
@@ -0,0 +1,48 @@
+// -*- C++ -*- (tell Emacs to use C++ mode for syntax highlighting)
+//
+// This spatial database specifies the distribution of slip on the
+// fault surface. In this case we impose 4.0 m of right-lateral slip
+// for z >= -2.0 km with zero slip for z < -2.0 km. There is no reverse
+// slip or fault opening.
+//
+#SPATIAL.ascii 1
+SimpleDB {
+  num-values = 3
+  value-names =  left-lateral-slip  reverse-slip  fault-opening
+  value-units =  m  m  m
+  num-locs = 21
+  data-dim = 2 // Data is specified on a plane.
+  space-dim = 3
+  cs-data = cartesian {
+    to-meters = 1.0e+3 // Specify coordinates in km for convenience.
+    space-dim = 3
+  } // cs-data
+} // SimpleDB
+// Columns are
+// (1) x coordinate (km)
+// (2) y coordinate (km)
+// (3) z coordinate (km)
+// (4) left-lateral-slip (m) (right-lateral is negative)
+// (5) reverse-slip (m)
+// (6) fault-opening (m)
+0.0 -3.0   0.00     0.0  0.0  0.0
+0.0 -2.0   0.00     0.0  0.0  0.0
+0.0 -1.0   0.00     0.0  0.0  0.0
+0.0  0.0   0.00     0.0  0.0  0.0
+0.0  1.0   0.00     0.0  0.0  0.0
+0.0  2.0   0.00     0.0  0.0  0.0
+0.0  3.0   0.00     0.0  0.0  0.0
+0.0 -3.0  -1.00     0.0  0.0  0.0
+0.0 -2.0  -1.00     0.0  0.0  0.0
+0.0 -1.0  -1.00     0.0  0.0  0.0
+0.0  0.0  -1.00     0.0  0.0  0.0
+0.0  1.0  -1.00     0.0  0.0  0.0
+0.0  2.0  -1.00    -1.0  0.0  0.0
+0.0  3.0  -1.00     1.0  0.0  0.0
+0.0 -3.0  -2.00     0.0  0.0  0.0
+0.0 -2.0  -2.00     0.0  0.0  0.0
+0.0 -1.0  -2.00     0.0  0.0  0.0
+0.0  0.0  -2.00     0.0  0.0  0.0
+0.0  1.0  -2.00     0.0  0.0  0.0
+0.0  2.0  -2.00     0.0  0.0  0.0
+0.0  3.0  -2.00     0.0  0.0  0.0

Added: short/3D/PyLith/trunk/examples/3d/hex8/gftest/gftest.cfg
===================================================================
--- short/3D/PyLith/trunk/examples/3d/hex8/gftest/gftest.cfg	                        (rev 0)
+++ short/3D/PyLith/trunk/examples/3d/hex8/gftest/gftest.cfg	2009-04-21 00:06:51 UTC (rev 14779)
@@ -0,0 +1,193 @@
+# -*- Python -*-
+[pylithapp]
+
+# This is not a self-contained simulation configuration file. This
+# file only specifies parameters specific to the boundary and
+# interface conditions. The general parameters are specificed in the
+# pylithapp.cfg file which PyLith reads by default.
+#
+# To run the simulation:
+# pylith gftest.cfg
+
+# ----------------------------------------------------------------------
+# problem
+# ----------------------------------------------------------------------
+[pylithapp.timedependent]
+# Set bc to an array of 3 boundary conditions: 'x_pos','x_neg', and 'z_neg'.
+bc = [x_pos,x_neg,z_neg]
+
+# Set interfaces to an array of 1 fault: 'fault'.
+interfaces = [fault]
+
+[pylithapp.timedependent.implicit.time_step]
+# Define the total time for the simulation and the time step size.
+# Overwrite values in pylithapp.cfg
+total_time = 13.0*year ; total time of simulation
+dt = 1.0*year ; time step
+
+[pylithapp.timedependent.implicit]
+# Set the output to an array of 2 output managers.
+# We will output the solution over the domain and the ground surface.
+output = [domain,subdomain]
+
+# Set subdomain component to OutputSolnSubset (subset of domain).
+output.subdomain = pylith.meshio.OutputSolnSubset
+
+# ----------------------------------------------------------------------
+# boundary conditions
+# ----------------------------------------------------------------------
+
+# We change spatial database for the rate of change from FixedDOFDB
+# (which has zero velocity) to UniformDB (which allows nonzero
+# velocities).
+
+# Set the parameters for the desired boundary conditions.
+#
+# The label corresponds to the nodeset ID in CUBIT.
+
+[pylithapp.timedependent.bc.x_pos]
+fixed_dof = [0, 1]
+label = 11
+db.label = Dirichlet BC on +x
+
+[pylithapp.timedependent.bc.x_neg]
+fixed_dof = [0, 1]
+label = 12
+db.label = Dirichlet BC on -x
+
+[pylithapp.timedependent.bc.z_neg]
+fixed_dof = [2]
+label = 15
+db.label = Dirichlet BC on -z
+
+# ----------------------------------------------------------------------
+# faults
+# ----------------------------------------------------------------------
+[pylithapp.timedependent.interfaces]
+
+# Set the parameters for the fault interface conditions.
+
+[pylithapp.timedependent.interfaces.fault]
+label = 10
+quadrature = pylith.feassemble.quadrature.Quadrature2Din3D
+quadrature.cell = pylith.feassemble.FIATLagrange
+quadrature.cell.dimension = 2
+mat_db.iohandler.filename = mat_elastic.spatialdb
+
+output.vertex_info_fields = [normal_dir,strike_dir,dip_dir,final_slip_00,final_slip_01,final_slip_02,final_slip_03,final_slip_04,final_slip_05,final_slip_06,final_slip_07,final_slip_08,final_slip_09,final_slip_10,final_slip_11,final_slip_12,final_slip_13,slip_time_00,slip_time_01,slip_time_02,slip_time_03,slip_time_04,slip_time_05,slip_time_06,slip_time_07,slip_time_08,slip_time_09,slip_time_10,slip_time_11,slip_time_12,slip_time_13]
+
+# Set earthquake ruptures
+eq_srcs = [00,01,02,03,04,05,06,07,08,09,10,11,12,13]
+eq_srcs.00.origin_time = 0.0*year
+eq_srcs.01.origin_time = 1.0*year
+eq_srcs.02.origin_time = 2.0*year
+eq_srcs.03.origin_time = 3.0*year
+eq_srcs.04.origin_time = 4.0*year
+eq_srcs.05.origin_time = 5.0*year
+eq_srcs.06.origin_time = 6.0*year
+eq_srcs.07.origin_time = 7.0*year
+eq_srcs.08.origin_time = 8.0*year
+eq_srcs.09.origin_time = 9.0*year
+eq_srcs.10.origin_time = 10.0*year
+eq_srcs.11.origin_time = 11.0*year
+eq_srcs.12.origin_time = 12.0*year
+eq_srcs.13.origin_time = 13.0*year
+
+# 00
+[pylithapp.timedependent.interfaces.fault.eq_srcs.00.slip_function]
+slip.iohandler.filename = gfspatialdb/gfimpulse00.spatialdb
+slip_time.iohandler.filename = sliptime.spatialdb
+
+# 01
+[pylithapp.timedependent.interfaces.fault.eq_srcs.01.slip_function]
+slip.iohandler.filename = gfspatialdb/gfimpulse01.spatialdb
+slip_time.iohandler.filename = sliptime.spatialdb
+
+# 02
+[pylithapp.timedependent.interfaces.fault.eq_srcs.02.slip_function]
+slip.iohandler.filename = gfspatialdb/gfimpulse02.spatialdb
+slip_time.iohandler.filename = sliptime.spatialdb
+
+# 03
+[pylithapp.timedependent.interfaces.fault.eq_srcs.03.slip_function]
+slip.iohandler.filename = gfspatialdb/gfimpulse03.spatialdb
+slip_time.iohandler.filename = sliptime.spatialdb
+# 04
+[pylithapp.timedependent.interfaces.fault.eq_srcs.04.slip_function]
+slip.iohandler.filename = gfspatialdb/gfimpulse04.spatialdb
+slip_time.iohandler.filename = sliptime.spatialdb
+# 05
+[pylithapp.timedependent.interfaces.fault.eq_srcs.05.slip_function]
+slip.iohandler.filename = gfspatialdb/gfimpulse05.spatialdb
+slip_time.iohandler.filename = sliptime.spatialdb
+# 06
+[pylithapp.timedependent.interfaces.fault.eq_srcs.06.slip_function]
+slip.iohandler.filename = gfspatialdb/gfimpulse06.spatialdb
+slip_time.iohandler.filename = sliptime.spatialdb
+# 07
+[pylithapp.timedependent.interfaces.fault.eq_srcs.07.slip_function]
+slip.iohandler.filename = gfspatialdb/gfimpulse07.spatialdb
+slip_time.iohandler.filename = sliptime.spatialdb
+# 08
+[pylithapp.timedependent.interfaces.fault.eq_srcs.08.slip_function]
+slip.iohandler.filename = gfspatialdb/gfimpulse08.spatialdb
+slip_time.iohandler.filename = sliptime.spatialdb
+# 09
+[pylithapp.timedependent.interfaces.fault.eq_srcs.09.slip_function]
+slip.iohandler.filename = gfspatialdb/gfimpulse09.spatialdb
+slip_time.iohandler.filename = sliptime.spatialdb
+# 10
+[pylithapp.timedependent.interfaces.fault.eq_srcs.10.slip_function]
+slip.iohandler.filename = gfspatialdb/gfimpulse10.spatialdb
+slip_time.iohandler.filename = sliptime.spatialdb
+# 11
+[pylithapp.timedependent.interfaces.fault.eq_srcs.11.slip_function]
+slip.iohandler.filename = gfspatialdb/gfimpulse11.spatialdb
+slip_time.iohandler.filename = sliptime.spatialdb
+# 12
+[pylithapp.timedependent.interfaces.fault.eq_srcs.12.slip_function]
+slip.iohandler.filename = gfspatialdb/gfimpulse12.spatialdb
+slip_time.iohandler.filename = sliptime.spatialdb
+# 13
+[pylithapp.timedependent.interfaces.fault.eq_srcs.13.slip_function]
+slip.iohandler.filename = gfspatialdb/gfimpulse13.spatialdb
+slip_time.iohandler.filename = sliptime.spatialdb
+# ----------------------------------------------------------------------
+# output
+# ----------------------------------------------------------------------
+# Give basename for VTK domain output of solution over domain.
+[pylithapp.problem.formulation.output.domain]
+skip = 9
+writer.filename = gftest.vtk
+writer.time_format = %04.0f
+writer.time_constant = 1.0*year
+
+# Give basename for VTK domain output of solution over ground surface.
+[pylithapp.problem.formulation.output.subdomain]
+label = 17 ; nodeset for subdomain
+skip = 0
+writer.filename = gfresponses/gfresponse.vtk
+writer.time_format = %04.0f
+writer.time_constant = 1.0*year
+
+# Give basename for vtk fault rupture output.
+[pylithapp.timedependent.interfaces.fault.output]
+skip = 0
+writer.filename = gfimpulses/gfimpulse.vtk
+writer.time_format = %04.0f
+writer.time_constant = 1.0*year
+
+# Give basename for VTK output of state variables.
+[pylithapp.timedependent.materials.elastic_upper.output]
+skip = 9
+cell_filter = pylith.meshio.CellFilterAvg
+writer.filename = gftest-statevars-elastic_upper.vtk
+writer.time_format = %04.0f
+writer.time_constant = 1.0*year
+
+[pylithapp.timedependent.materials.elastic_lower.output]
+skip = 9
+cell_filter = pylith.meshio.CellFilterAvg
+writer.filename = gftest-statevars-elastic_lower.vtk
+writer.time_format = %04.0f
+writer.time_constant = 1.0*year

Added: short/3D/PyLith/trunk/examples/3d/hex8/gftest/mat_elastic.spatialdb
===================================================================
--- short/3D/PyLith/trunk/examples/3d/hex8/gftest/mat_elastic.spatialdb	                        (rev 0)
+++ short/3D/PyLith/trunk/examples/3d/hex8/gftest/mat_elastic.spatialdb	2009-04-21 00:06:51 UTC (rev 14779)
@@ -0,0 +1,26 @@
+// -*- C++ -*- (tell Emacs to use C++ mode for syntax highlighting)
+//
+// This spatial database specifies the distribution of material
+// properties. In this case, the material properties are uniform.
+//
+#SPATIAL.ascii 1
+SimpleDB {
+  num-values = 3 // number of material property values
+  value-names =  density vs vp // names of the material property values
+  value-units =  kg/m^3  m/s  m/s // units (conversions not supported)
+  num-locs = 1 // number of locations
+  data-dim = 0
+  space-dim = 3
+  cs-data = cartesian {
+    to-meters = 1.0
+    space-dim = 3
+  }
+}
+// Columns are
+// (1) x coordinate (m)
+// (2) y coordinate (m)
+// (3) z coordinate (m)
+// (4) density (kg/m^3)
+// (5) vs (m/s)
+// (6) vp (m/s)
+0.0  0.0  0.0   2500.0  3000.0  5291.502622129181

Added: short/3D/PyLith/trunk/examples/3d/hex8/gftest/mesh_hex8_1000m.jou
===================================================================
--- short/3D/PyLith/trunk/examples/3d/hex8/gftest/mesh_hex8_1000m.jou	                        (rev 0)
+++ short/3D/PyLith/trunk/examples/3d/hex8/gftest/mesh_hex8_1000m.jou	2009-04-21 00:06:51 UTC (rev 14779)
@@ -0,0 +1,103 @@
+## /tools/common/cubit-10.2/bin/clarox
+## Cubit Version 10.2
+## Cubit Build 24
+## Revised 12/15/2006 16:09:40 MST
+## Running 06/18/2007 10:26:50 AM
+## Command Options:
+## -warning = On
+## -information = On
+
+# ----------------------------------------------------------------------
+# Generate geometry
+# ----------------------------------------------------------------------
+playback 'geometry.jou'
+
+# ----------------------------------------------------------------------
+# Set discretization size
+# ----------------------------------------------------------------------
+volume all size 1000
+
+# ----------------------------------------------------------------------
+# Generate the mesh
+# ----------------------------------------------------------------------
+mesh volume all
+
+# ----------------------------------------------------------------------
+# Create blocks for materials
+# ----------------------------------------------------------------------
+block 1 volume 1 4
+block 1 name "elastic_upper"
+block 2 volume 5 6
+block 2 name "elastic_lower"
+
+# ----------------------------------------------------------------------
+# Create nodeset for fault
+# ----------------------------------------------------------------------
+group "fault" add node in fault_surface
+nodeset 10 group fault
+nodeset 10 name "fault"
+
+# ----------------------------------------------------------------------
+# Create nodeset for +x face
+# ----------------------------------------------------------------------
+group "face_xpos" add node in surface 20
+group "face_xpos" add node in surface 28
+nodeset 11 group face_xpos
+nodeset 11 name "face xpos"
+
+# ----------------------------------------------------------------------
+# Create nodeset for -x face
+# ----------------------------------------------------------------------
+group "face_xneg" add node in surface 30
+group "face_xneg" add node in surface 38
+nodeset 12 group face_xneg
+nodeset 12 name "face xneg"
+
+# ----------------------------------------------------------------------
+# Create nodeset for +y face
+# ----------------------------------------------------------------------
+group "face_ypos" add node in surface 21
+group "face_ypos" add node in surface 27
+group "face_ypos" add node in surface 33
+group "face_ypos" add node in surface 35
+nodeset 13 group face_ypos
+nodeset 13 name "face ypos"
+
+# ----------------------------------------------------------------------
+# Create nodeset for -y face
+# ----------------------------------------------------------------------
+group "face_yneg" add node in surface 23
+group "face_yneg" add node in surface 25
+group "face_yneg" add node in surface 31
+group "face_yneg" add node in surface 37
+nodeset 14 group face_yneg
+nodeset 14 name "face yneg"
+
+# ----------------------------------------------------------------------
+# Create nodeset for -z face
+# ----------------------------------------------------------------------
+group "face_zneg" add node in surface 12
+group "face_zneg" add node in surface 16
+nodeset 15 group face_zneg
+nodeset 15 name "face zneg"
+
+# ----------------------------------------------------------------------
+# Create nodeset for -z face w/o fault
+# ----------------------------------------------------------------------
+group "face_zneg_nofault" add node in face_zneg
+group "face_zneg_nofault" remove node in fault
+nodeset 16 group face_zneg_nofault
+nodeset 16 name "face zneg nofault"
+
+# ----------------------------------------------------------------------
+# Create nodeset for +z face
+# ----------------------------------------------------------------------
+group "face_zpos" add node in surface 10
+group "face_zpos" add node in surface 17
+nodeset 17 group face_zpos
+nodeset 17 name "face zpos"
+
+# ----------------------------------------------------------------------
+# Export exodus file
+# ----------------------------------------------------------------------
+export mesh "box_hex8_1000m.exo" dimension 3 overwrite

Added: short/3D/PyLith/trunk/examples/3d/hex8/gftest/pylithapp.cfg
===================================================================
--- short/3D/PyLith/trunk/examples/3d/hex8/gftest/pylithapp.cfg	                        (rev 0)
+++ short/3D/PyLith/trunk/examples/3d/hex8/gftest/pylithapp.cfg	2009-04-21 00:06:51 UTC (rev 14779)
@@ -0,0 +1,85 @@
+# -*- Python -*-
+[pylithapp]
+
+# ----------------------------------------------------------------------
+# journal
+# ----------------------------------------------------------------------
+# Turn on some journals to show progress.
+[pylithapp.journal.info]
+timedependent = 1
+implicit = 1
+petsc = 1
+solverlinear = 1
+meshiocubit = 1
+implicitelasticity = 1
+faultcohesivekin = 1
+fiatlagrange = 1
+#quadrature3d = 1
+
+[pylithapp.journal.debug]
+pylithapp = 1
+problem = 1
+implicit = 1
+
+# ----------------------------------------------------------------------
+# mesh_generator
+# ----------------------------------------------------------------------
+[pylithapp.mesh_generator]
+#debug = 1   ; uncomment to get very verbose mesh information
+
+# Change the default mesh importer to the CUBIT importer.
+importer = pylith.meshio.MeshIOCubit
+
+[pylithapp.mesh_generator.importer]
+# Set filename of mesh to import.
+filename = box_hex8_1000m.exo
+
+# ----------------------------------------------------------------------
+# problem
+# ----------------------------------------------------------------------
+[pylithapp.timedependent]
+#normalizer = spatialdata.units.NondimElasticQuasistatic
+
+[pylithapp.timedependent.formulation.time_step]
+# Define the total time for the simulation and the default time step size.
+total_time = 0.0*s ; total time of simulation
+
+# ----------------------------------------------------------------------
+# materials
+# ----------------------------------------------------------------------
+[pylithapp.timedependent]
+
+# Set materials to an array of 2 materials:
+#   'elastic' and 'viscoelastic'
+materials = [elastic_upper,elastic_lower]
+
+[pylithapp.timedependent.materials.elastic_upper]
+label = Upper elastic material
+id = 1
+db.iohandler.filename = mat_elastic.spatialdb
+quadrature = pylith.feassemble.quadrature.Quadrature3D
+quadrature.cell = pylith.feassemble.FIATLagrange
+quadrature.cell.dimension = 3
+
+[pylithapp.timedependent.materials.elastic_lower]
+label = Lower elastic material
+id = 2
+db.iohandler.filename = mat_elastic.spatialdb
+quadrature = pylith.feassemble.quadrature.Quadrature3D
+quadrature.cell = pylith.feassemble.FIATLagrange
+quadrature.cell.dimension = 3
+
+# ----------------------------------------------------------------------
+# PETSc
+# ----------------------------------------------------------------------
+# Set the solver options.
+
+[pylithapp.petsc]
+ksp_rtol = 1.0e-8
+pc_type = asm
+ksp_monitor = true
+ksp_view = true
+log_summary = true
+ksp_max_it = 100
+ksp_gmres_restart = 50
+# start_in_debugger = true

Added: short/3D/PyLith/trunk/examples/3d/hex8/gftest/sliptime.spatialdb
===================================================================
--- short/3D/PyLith/trunk/examples/3d/hex8/gftest/sliptime.spatialdb	                        (rev 0)
+++ short/3D/PyLith/trunk/examples/3d/hex8/gftest/sliptime.spatialdb	2009-04-21 00:06:51 UTC (rev 14779)
@@ -0,0 +1,26 @@
+// -*- C++ -*- (tell Emacs to use C++ mode for syntax highlighting)
+//
+// This spatial database specifies the distribution of the slip
+// initiation time over the fault surface for the kinematic fault
+// rupture. We specify a slip time of 0.0 s so that the slip occurs at
+// the origin time of the earthquake rupture.
+//
+#SPATIAL.ascii 1
+SimpleDB {
+  num-values = 1
+  value-names =  slip-time
+  value-units =  s
+  num-locs = 1
+  data-dim = 0 // data is uniform (1 location)
+  space-dim = 3
+  cs-data = cartesian {
+    to-meters = 1.0
+    space-dim = 3
+  }
+}
+// Columns are
+// (1) x coordinate (m)
+// (2) y coordinate (m)
+// (3) z coordinate (m)
+// (4) Slip initiation time (s)
+0.0  0.0  0.0   0.0

Modified: short/3D/PyLith/trunk/examples/3d/hex8/pylithapp.cfg
===================================================================
--- short/3D/PyLith/trunk/examples/3d/hex8/pylithapp.cfg	2009-04-20 20:53:32 UTC (rev 14778)
+++ short/3D/PyLith/trunk/examples/3d/hex8/pylithapp.cfg	2009-04-21 00:06:51 UTC (rev 14779)
@@ -86,4 +86,4 @@
 log_summary = true
 ksp_max_it = 100
 ksp_gmres_restart = 50
-# start_in_debugger = true
+start_in_debugger = true



More information about the CIG-COMMITS mailing list