[cig-commits] r18378 - in short/3D/PyLith/trunk: . examples/2d/subduction

brad at geodynamics.org brad at geodynamics.org
Sun May 15 17:11:00 PDT 2011


Author: brad
Date: 2011-05-15 17:11:00 -0700 (Sun, 15 May 2011)
New Revision: 18378

Added:
   short/3D/PyLith/trunk/examples/2d/subduction/fault_creep_slabtop.spatialdb
   short/3D/PyLith/trunk/examples/2d/subduction/fault_slip_coseismic.spatialdb
   short/3D/PyLith/trunk/examples/2d/subduction/step01.cfg
   short/3D/PyLith/trunk/examples/2d/subduction/step02.cfg
   short/3D/PyLith/trunk/examples/2d/subduction/step03.cfg
Removed:
   short/3D/PyLith/trunk/examples/2d/subduction/fault_slip.spatialdb
   short/3D/PyLith/trunk/examples/2d/subduction/postseismic.cfg
Modified:
   short/3D/PyLith/trunk/Makefile.am
   short/3D/PyLith/trunk/examples/2d/subduction/README
   short/3D/PyLith/trunk/examples/2d/subduction/createbc.jou
   short/3D/PyLith/trunk/examples/2d/subduction/geometry.jou
   short/3D/PyLith/trunk/examples/2d/subduction/mat_conmantle.spatialdb
   short/3D/PyLith/trunk/examples/2d/subduction/mat_oceanmantle.spatialdb
   short/3D/PyLith/trunk/examples/2d/subduction/mesh_tri3.exo
   short/3D/PyLith/trunk/examples/2d/subduction/pylithapp.cfg
Log:
Merge from stable (subduction example).

Modified: short/3D/PyLith/trunk/Makefile.am
===================================================================
--- short/3D/PyLith/trunk/Makefile.am	2011-05-15 22:21:20 UTC (rev 18377)
+++ short/3D/PyLith/trunk/Makefile.am	2011-05-16 00:11:00 UTC (rev 18378)
@@ -30,7 +30,6 @@
   SUBDIRS += \
 	unittests 
 endif
-
 if ENABLE_FULL_TESTING
   SUBDIRS += \
 	tests_auto

Modified: short/3D/PyLith/trunk/examples/2d/subduction/README
===================================================================
--- short/3D/PyLith/trunk/examples/2d/subduction/README	2011-05-15 22:21:20 UTC (rev 18377)
+++ short/3D/PyLith/trunk/examples/2d/subduction/README	2011-05-16 00:11:00 UTC (rev 18378)
@@ -1,18 +1,45 @@
-The example in this directory simulates quasi-static post-seismic
-relaxation in the mantle following an earthquake. It is based on the
-2011 M9.0 Tohoku earthquake off the east coast of Japan.
+The example in this directory simulates quasi-static interseismic and
+coseismic deformation for a subduction zone. It is based on the 2011
+M9.0 Tohoku earthquake off the east coast of Japan.
 
 The main features of this example are:
 
   * Generating a finite-element mesh using CUBIT
     + Nonplanar geometry
     + Variable mesh resolution
-  * Spatially variable coseismic slip
+  * Spatially variable coseismic slip and creep
   * Maxwell viscoelastic relaxation
 
+The example is broken up into three steps of increasing
+complexity. Step 1 focuses on the coseismic slip, Step 2 focuses on
+interseismic deformation, and Step 3 combines the two into a pseudo
+earthquake cycle deformation simulation. In a similar fashion as other
+examples, we place all of the general parameters in pylithapp.cfg and
+the parameters specific to each simulation in stepXX.cfg.
 
-Step 1. Mesh generation (optional)
+We model the crust with a linear elastic bulk constitutive model and
+the mantle with a linear Maxwell viscoelastic model. Both constitutive
+models use plane strain formulations in these 2-D models.
 
+The parameters for the bulk constitutive models are defined in
+  mat_concrust.spatialdb
+  mat_oceancrust.spatialdb
+  mat_conmantle.spatialdb
+  mat_oceanmantle.spatialdb
+
+The simulation will output the displacements on the ground surface at
+every time step, the displacements over the entire domain every 10
+years, the fault slip and tractions every time step, and the stresses
+and strains for each material every 10 years.
+
+For each of the simulations, we recommend examining the displacements,
+stress field, and fault slip. ParaView parses the 2-D stress tensor as
+a vector, so the tensor components sigma_xx, sigma_yy, sigma_xy are
+listed as x, y, z.
+
+
+Mesh generation (optional)
+
   NOTE: The result of this step will overwrite the included file
         tri3_mesh.exo. You may want to copy/rename this file so that
         you have a backup copy in case you have difficulty running
@@ -23,52 +50,58 @@
   understand the mesh generation process.
 
 
-Step 2. Run the simulation.
+Step 1. Coseismic slip simulation
 
-  The PyLith parameters are contained in two .cfg files. The general
-  parameters related to the mesh and a quasi-static simulation are in
-  pylithapp.cfg, and those parameters specific to the post-seismic
-  deformation are in postseismic.cfg. This facilitates running
-  additional quasi-static simulations using this same mesh.
+  This simulation involves coseismic slip between the continental
+  crust and top of the subducting oceanic crust. The slip also extends
+  down into the top of the mantle below the continental crust.
 
-  The parameters for the bulk constitutive models are defined in
-    mat_concrust.spatialdb
-    mat_oceancrust.spatialdb
-    mat_conmantle.spatialdb
-    mat_oceanmantle.spatialdb
-
   The parameters for the earthquake slip are defined in
-    fault_slip.spatialdb
+    fault_slip_coesismic.spatialdb
 
   Run the simulation via the following command:
-    pylith postseismic.cfg.
+    pylith step01.cfg.
 
-  The simulation will output the displacements on the ground surface
-  at every time step, the displacements over the entire domain every
-  5 years, the fault slip and tractions every time step, and the
-  stresses and strains for each material every 10 years.
 
-  
-Step 3. Visualize the result using ParaView.
+Step 2. Interseismic deformation simulation
 
-  Start ParaView and load the 
+  This simulation involves aseismic creep along the interfaces between
+  the subducting oceanic crust and the mantle. The slip rate is a
+  constant 8 cm/yr.
 
+  The parameters for the creep along the top of the slab are defined in
+    fault_creep_slabtop.spatialdb
 
+  Run the simulation via the following command:
+    pylith step02.cfg
+
+
+Step 3. Pseudo-earthquake cycle model
+
+  This simulation combines the interseismic deformation from Step 2
+  with the coseismic slip from Step 1. The earthquake rupture occurs
+  midway (150 years) through the 300 year simulation.
+
+  Run the simulation via the following command:
+    pylith step03.cfg
+
+
 Suggestions variations
 
   The list below includes some suggested modifications to the problem
   that will allow you to become more familiar with PyLith while
   examining some interesting physics.
 
+  * Change the resolution of the mesh by editing the mesh_tri3.jou
+    journal file. Change the resolution and bias factor.
 
-  * Change the viscosity to increase/decrease the Maxwell relaxation
-    time.
+  * Add depth dependent viscosity to the mantle and crust. This
+    requires using the linear Maxwell plane strain bulk constitutive
+    model in the crust as well and creating spatial databases that
+    include viscosity for the crust. Specifying a depth dependent
+    variation in the parameters will require adding points, updating
+    num-locs accordingly, and changing data-dim to 1.
 
-
-  * Add a depth dependent viscosity to the slab to permit relaxation
-    in the slab at depths below 50 km.
-
-
   * Modify the spatial database files for the material properties to
     use depth-dependent elastic properties based on PREM (Dziewonski
     and Anderson, 1981, 10.1016/0031-9201(81)90046-7). See
@@ -77,25 +110,12 @@
 
     Add points, update num-locs accordingly, and change data-dim to be 1.
 
-
-  * Change the resolution of the mesh by editing the mesh_tri3.jou
-    journal file. Change the resolution and bias factor.
-
-
   * Modify the CUBIT journal files to use quad4 cells rather than tri3
     cells. This requires using the pave mesh scheme.
 
+  * Create a simulation with multiple earthquake cycles by lengthening
+    the duration of the simulation and adding additional earthquake
+    ruptures. See examples/3d/hex8/step06.cfg for an example with
+    multiple earthquake ruptures. Examine spinup towards a
+    steady-state solution.
 
-  * Add steady creep to the top and bottom of the slab in the mantle. 
-
-    This requires adjusting several adjustments to the mesh:
-      (a) extend the down-dip extent of the fault on the top of the slab
-      (b) split the curve for the bottom of the slab at the desired
-          up-dip and down-dip locations
-      (c) updating the vertices/curve labels in setting the mesh size
-      (d) adding a node set for the bottom of the slab
-
-    and several adjustments to the PyLith parameters:
-      (e) create a spatial database for the creep (see examples/3d/hex8/step06)
-      (f) add the fault interface for the bottom of the slab
-      (g) add a kinematic rupture corresponding to the creep

Modified: short/3D/PyLith/trunk/examples/2d/subduction/createbc.jou
===================================================================
--- short/3D/PyLith/trunk/examples/2d/subduction/createbc.jou	2011-05-15 22:21:20 UTC (rev 18377)
+++ short/3D/PyLith/trunk/examples/2d/subduction/createbc.jou	2011-05-16 00:11:00 UTC (rev 18378)
@@ -17,6 +17,10 @@
 # CUBIT journal file for creating blocks and nodesets associated with
 # materials and boundary conditions.
 #
+# NOTE: We remove the overlap between groups associated with 
+# Dirichlet BC and groups associated with faults because PyLith
+# does not allow Dirichlet BC to be applied to nodes adjacent to the fault.
+#
 # ----------------------------------------------------------------------
 # Create blocks for materials
 # ----------------------------------------------------------------------
@@ -33,13 +37,26 @@
 block 4 name "oceanmantle"
 
 # ----------------------------------------------------------------------
-# Create nodeset for fault
+# Create nodeset for fault interfaces
 # ----------------------------------------------------------------------
-group "fault" add node in slabtop at A
-group "fault" add node in slabtop at D
-nodeset 20 group fault
-nodeset 20 name "fault"
+# Fault (coseismic region only)
+group "fault_coseismic" add node in slabtop at A
+group "fault_coseismic" add node in slabtop at D
+nodeset 20 group fault_coseismic
+nodeset 20 name "fault_coseismic"
 
+group "fault_slabtop" add node in slabtop at A
+group "fault_slabtop" add node in slabtop at D
+group "fault_slabtop" add node in slabtop
+nodeset 21 group fault_slabtop
+nodeset 21 name "fault_slabtop"
+
+group "fault_slabbot" add node in slabbot at B
+group "fault_slabbot" add node in slabbot at C
+group "fault_slabbot" add node in slabbot
+nodeset 22 group fault_slabbot
+nodeset 22 name "fault_slabbot"
+
 # ----------------------------------------------------------------------
 # Create nodeset for topography/bathymetry
 # ----------------------------------------------------------------------
@@ -54,25 +71,39 @@
 # ----------------------------------------------------------------------
 group "bndry_west" add node in curve edgewest
 group "bndry_west" add node in curve edgewest at A
+group "bndry_west" remove node in group fault_slabtop
 nodeset 11 group bndry_west
 nodeset 11 name "bndry_west"
 
 # ----------------------------------------------------------------------
 # Create nodeset for east boundary
 # ----------------------------------------------------------------------
-group "bndry_east" add node in curve edgeeast
-group "bndry_east" add node in curve edgeeast at A
-nodeset 12 group bndry_east
-nodeset 12 name "bndry_east"
+# Crust
+group "bndry_east_crust" add node in curve edgeeast
+nodeset 12 group bndry_east_crust
+nodeset 12 name "bndry_east_crust"
 
+# Mantle
+group "bndry_east_mantle" add node in curve edgeeast at A
+group "bndry_east_mantle" remove node in group fault_slabbot
+nodeset 13 group bndry_east_mantle
+nodeset 13 name "bndry_east_mantle"
+
 # ----------------------------------------------------------------------
-# Create nodeset for bottom boundary
+# Create nodesets for bottom boundary
 # ----------------------------------------------------------------------
-group "bndry_bot" add node in curve edgebot
-group "bndry_bot" add node in curve edgebot at A
-nodeset 13 group bndry_bot
-nodeset 13 name "bndry_bot"
+# Slab (oceanic crust)
+group "bndry_bot_slab" add node in curve edgebot
+nodeset 14 group bndry_bot_slab
+nodeset 14 name "bndry_bot_slab"
 
+# Mantle
+group "bndry_bot_mantle" add node in curve edgebot at A
+group "bndry_bot_mantle" remove node in group fault_slabbot
+nodeset 15 group bndry_bot_mantle
+nodeset 15 name "bndry_bot_mantle"
 
+
 # End of file
 
+

Copied: short/3D/PyLith/trunk/examples/2d/subduction/fault_creep_slabtop.spatialdb (from rev 18377, short/3D/PyLith/branches/v1.5-stable/examples/2d/subduction/fault_creep_slabtop.spatialdb)
===================================================================
--- short/3D/PyLith/trunk/examples/2d/subduction/fault_creep_slabtop.spatialdb	                        (rev 0)
+++ short/3D/PyLith/trunk/examples/2d/subduction/fault_creep_slabtop.spatialdb	2011-05-16 00:11:00 UTC (rev 18378)
@@ -0,0 +1,31 @@
+// -*- C++ -*- (syntax highlighting)
+//
+// This spatial database specifies the distribution of slip rate
+// associated with aseismic creep on the interface between the mantle
+// below the continental crust and the subducting oceanic crust.
+// 
+// We specify a uniform creep rate below a depth of 75 km, tapering to
+// 0 at a depth of 60 km.
+//
+#SPATIAL.ascii 1
+SimpleDB {
+  num-values = 2
+  value-names =  left-lateral-slip  fault-opening
+  value-units =  cm/year  cm/year
+  num-locs = 4
+  data-dim = 1 // Data is specified along a line.
+  space-dim = 2
+  cs-data = cartesian {
+    to-meters = 1.0e+3 // Specify coordinates in km for convenience.
+    space-dim = 2
+  } // cs-data
+} // SimpleDB
+// Columns are
+// (1) x coordinate (km)
+// (2) y coordinate (km)
+// (3) reverse-slip (cm)
+// (4) fault-opening (cm)
+0.0   99.0          0.0   0.0
+0.0  -60.0          0.0   0.0
+0.0  -75.0         -8.0   0.0
+0.0  -999.0        -8.0   0.0

Deleted: short/3D/PyLith/trunk/examples/2d/subduction/fault_slip.spatialdb
===================================================================
--- short/3D/PyLith/trunk/examples/2d/subduction/fault_slip.spatialdb	2011-05-15 22:21:20 UTC (rev 18377)
+++ short/3D/PyLith/trunk/examples/2d/subduction/fault_slip.spatialdb	2011-05-16 00:11:00 UTC (rev 18378)
@@ -1,42 +0,0 @@
-// -*- C++ -*- (syntax highlighting)
-//
-// This spatial database specifies the distribution of slip on the
-// fault surface. This is a cross-section extracted from Gavin Hayes's
-// rupture model
-// (http://earthquake.usgs.gov/earthquakes/eqinthenews/2011/usc0001xgp/finite_fault.php).
-//
-#SPATIAL.ascii 1
-SimpleDB {
-  num-values = 2
-  value-names =  left-lateral-slip  fault-opening
-  value-units =  cm  cm
-  num-locs = 17
-  data-dim = 1 // Data is specified along a line.
-  space-dim = 2
-  cs-data = cartesian {
-    to-meters = 1.0e+3 // Specify coordinates in km for convenience.
-    space-dim = 2
-  } // cs-data
-} // SimpleDB
-// Columns are
-// (1) x coordinate (km)
-// (2) y coordinate (km)
-// (3) reverse-slip (cm)
-// (4) fault-opening (cm)
-0.0   99.0            0.0
-0.0    0.0            0.0
-0.0   -7.5475   -1143.00098
-0.0  -11.0926   -3202.27295
-0.0  -14.6378   -3050.15894
-0.0  -18.1829   -1995.05396
-0.0  -21.7280   -1167.55798
-0.0  -25.2732   -1326.13599
-0.0  -28.8183   -1260.37805
-0.0  -32.3634    -813.61987
-0.0  -35.9086    -255.54710
-0.0  -39.4537    -370.49261
-0.0  -42.9988    -394.57870
-0.0  -46.5439    -310.11920
-0.0  -50.0891    -349.24249
-0.0  -55.0          0.0
-0.0  -999.0         0.0

Copied: short/3D/PyLith/trunk/examples/2d/subduction/fault_slip_coseismic.spatialdb (from rev 18377, short/3D/PyLith/branches/v1.5-stable/examples/2d/subduction/fault_slip_coseismic.spatialdb)
===================================================================
--- short/3D/PyLith/trunk/examples/2d/subduction/fault_slip_coseismic.spatialdb	                        (rev 0)
+++ short/3D/PyLith/trunk/examples/2d/subduction/fault_slip_coseismic.spatialdb	2011-05-16 00:11:00 UTC (rev 18378)
@@ -0,0 +1,42 @@
+// -*- C++ -*- (syntax highlighting)
+//
+// This spatial database specifies the distribution of slip on the
+// fault surface. This is a cross-section extracted from Gavin Hayes's
+// rupture model
+// (http://earthquake.usgs.gov/earthquakes/eqinthenews/2011/usc0001xgp/finite_fault.php).
+//
+#SPATIAL.ascii 1
+SimpleDB {
+  num-values = 2
+  value-names =  left-lateral-slip  fault-opening
+  value-units =  cm  cm
+  num-locs = 17
+  data-dim = 1 // Data is specified along a line.
+  space-dim = 2
+  cs-data = cartesian {
+    to-meters = 1.0e+3 // Specify coordinates in km for convenience.
+    space-dim = 2
+  } // cs-data
+} // SimpleDB
+// Columns are
+// (1) x coordinate (km)
+// (2) y coordinate (km)
+// (3) reverse-slip (cm)
+// (4) fault-opening (cm)
+0.0   99.0            0.0       0.0
+0.0    0.0            0.0       0.0
+0.0   -7.5475   -1143.00098     0.0
+0.0  -11.0926   -3202.27295     0.0
+0.0  -14.6378   -3050.15894     0.0
+0.0  -18.1829   -1995.05396     0.0
+0.0  -21.7280   -1167.55798     0.0
+0.0  -25.2732   -1326.13599     0.0
+0.0  -28.8183   -1260.37805     0.0
+0.0  -32.3634    -813.61987     0.0
+0.0  -35.9086    -255.54710     0.0
+0.0  -39.4537    -370.49261     0.0
+0.0  -42.9988    -394.57870     0.0
+0.0  -46.5439    -310.11920     0.0
+0.0  -50.0891    -349.24249     0.0
+0.0  -55.0          0.0         0.0
+0.0  -999.0         0.0         0.0

Modified: short/3D/PyLith/trunk/examples/2d/subduction/geometry.jou
===================================================================
--- short/3D/PyLith/trunk/examples/2d/subduction/geometry.jou	2011-05-15 22:21:20 UTC (rev 18377)
+++ short/3D/PyLith/trunk/examples/2d/subduction/geometry.jou	2011-05-16 00:11:00 UTC (rev 18378)
@@ -165,3 +165,4 @@
 split curve slabbot distance {250.0*km} from end
 
 # End of file
+

Modified: short/3D/PyLith/trunk/examples/2d/subduction/mat_conmantle.spatialdb
===================================================================
--- short/3D/PyLith/trunk/examples/2d/subduction/mat_conmantle.spatialdb	2011-05-15 22:21:20 UTC (rev 18377)
+++ short/3D/PyLith/trunk/examples/2d/subduction/mat_conmantle.spatialdb	2011-05-16 00:11:00 UTC (rev 18378)
@@ -3,7 +3,7 @@
 // This spatial database specifies the parameters for the continental
 // crust material, which is a linear Maxwell viscoelastic solid.
 //
-// The viscosity corresponds to a Maxwell time of 100 years.
+// The viscosity corresponds to a Maxwell time of 200 years.
 // Maxwell time = viscosity / shear_modulus
 //
 #SPATIAL.ascii 1
@@ -26,4 +26,4 @@
 // (4) vs (m/s)
 // (5) vp (m/s)
 // (6) viscosity (Pa-s)
-0.0  0.0  4000.0  5600.0  10000.0 3.95850079744e+20
+0.0  0.0  4000.0  5600.0  10000.0 7.91700159488e+20

Modified: short/3D/PyLith/trunk/examples/2d/subduction/mat_oceanmantle.spatialdb
===================================================================
--- short/3D/PyLith/trunk/examples/2d/subduction/mat_oceanmantle.spatialdb	2011-05-15 22:21:20 UTC (rev 18377)
+++ short/3D/PyLith/trunk/examples/2d/subduction/mat_oceanmantle.spatialdb	2011-05-16 00:11:00 UTC (rev 18378)
@@ -3,7 +3,7 @@
 // This spatial database specifies the parameters for the continental
 // crust material, which is a linear Maxwell viscoelastic solid.
 //
-// The viscosity corresponds to a Maxwell time of 100 years.
+// The viscosity corresponds to a Maxwell time of 200 years.
 // Maxwell time = viscosity / shear_modulus
 //
 #SPATIAL.ascii 1
@@ -26,4 +26,4 @@
 // (4) vs (m/s)
 // (5) vp (m/s)
 // (6) viscosity (Pa-s)
-0.0  0.0  4000.0  5600.0  10000.0 3.95850079744e+20
+0.0  0.0  4000.0  5600.0  10000.0 7.91700159488e+20

Modified: short/3D/PyLith/trunk/examples/2d/subduction/mesh_tri3.exo
===================================================================
(Binary files differ)

Deleted: short/3D/PyLith/trunk/examples/2d/subduction/postseismic.cfg
===================================================================
--- short/3D/PyLith/trunk/examples/2d/subduction/postseismic.cfg	2011-05-15 22:21:20 UTC (rev 18377)
+++ short/3D/PyLith/trunk/examples/2d/subduction/postseismic.cfg	2011-05-16 00:11:00 UTC (rev 18378)
@@ -1,155 +0,0 @@
-# -*- Python -*-
-[pylithapp]
-
-# ----------------------------------------------------------------------
-# PROBLEM DESCRIPTION
-# ----------------------------------------------------------------------
-#
-# 
-
-# ----------------------------------------------------------------------
-# RUNNING THE SIMULATON
-# ----------------------------------------------------------------------
-#
-# This is not a self-contained simulation configuration file. This
-# file specifies only the boundary conditions and earthquake
-# parameters for the simulation. The general quasi-static and mesh
-# parameters are specificed in the pylithapp.cfg file which PyLith
-# reads by default.
-#
-# To run the simulation:
-# pylith postseismic.cfg
-#
-# Output will be directed to directory output.
-
-# ----------------------------------------------------------------------
-# boundary conditions
-# ----------------------------------------------------------------------
-[pylithapp.timedependent]
-# Set bc to an array of 3 boundary conditions:
-#   'bndry_east'
-#   'bndry_west'
-#   'bndry_bot'
-bc = [boundary_east,boundary_west,boundary_bottom]
-
-# For all boundaries, we fix the displacement normal to the boundary
-# (roller boundary condition) by retaining the default ZeroDispDB,
-# which specifies a zero value.
-#
-# The label corresponds to the name of the nodeset in CUBIT.
-
-# East boundary
-[pylithapp.timedependent.bc.boundary_east]
-bc_dof = [0]
-label = bndry_east
-db_initial.label = Dirichlet BC on east boundary
-
-# West boundary
-[pylithapp.timedependent.bc.boundary_west]
-bc_dof = [0]
-label = bndry_west
-db_initial.label = Dirichlet BC on west boundary
-
-# Bottom boundary
-[pylithapp.timedependent.bc.boundary_bottom]
-bc_dof = [1]
-label = bndry_bot
-db_initial.label = Dirichlet BC on bottom boundary
-
-# ----------------------------------------------------------------------
-# faults
-# ----------------------------------------------------------------------
-[pylithapp.timedependent]
-interfaces = [fault]
-
-# Set the type of fault interface condition.
-[pylithapp.timedependent.interfaces]
-fault = pylith.faults.FaultCohesiveKin
-
-# Set the parameters for the fault interface condition.
-[pylithapp.timedependent.interfaces.fault]
-# The label corresponds to the name of the nodeset in CUBIT.
-label = fault
-
-# We must define the quadrature information for fault cells.
-# The fault cells are 2D (surface).
-quadrature.cell = pylith.feassemble.FIATSimplex
-quadrature.cell.shape = line
-
-# The slip time and final slip are defined in spatial databases.
-[pylithapp.timedependent.interfaces.fault.eq_srcs.rupture.slip_function]
-slip.iohandler.filename = fault_slip.spatialdb
-slip.query_type = linear
-slip.label = Final slip
-
-slip_time = spatialdata.spatialdb.UniformDB
-slip_time.label = Slip time
-slip_time.values = [slip-time]
-slip_time.data = [0.0*year]
-
-# ----------------------------------------------------------------------
-# output
-# ----------------------------------------------------------------------
-[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
-
-# Domain
-[pylithapp.problem.formulation.output.domain]
-output_freq = time_step
-time_step = 4.99999*year
-writer.filename = output/postseismic.vtk
-writer.time_format = %04.0f
-writer.time_constant = 1.0*year
-
-# Ground surface
-[pylithapp.problem.formulation.output.subdomain]
-label = groundsurf ; Name of CUBIT nodeset for ground surface.
-writer.filename = output/postseismic-groundsurf.vtk
-writer.time_format = %04.0f
-writer.time_constant = 1.0*year
-
-# Fault
-[pylithapp.problem.interfaces.fault.output]
-writer.filename = output/postseismic-fault.vtk
-writer.time_format = %04.0f
-writer.time_constant = 1.0*year
-
-# Materials
-[pylithapp.timedependent.materials.continent_crust.output]
-cell_filter = pylith.meshio.CellFilterAvgMesh
-output_freq = time_step
-time_step = 9.99999*year
-writer.filename = output/postseismic-concrust.vtk
-writer.time_format = %04.0f
-writer.time_constant = 1.0*year
-
-[pylithapp.timedependent.materials.continent_mantle.output]
-cell_filter = pylith.meshio.CellFilterAvgMesh
-output_freq = time_step
-time_step = 9.99999*year
-writer.filename = output/postseismic-conmantle.vtk
-writer.time_format = %04.0f
-writer.time_constant = 1.0*year
-
-[pylithapp.timedependent.materials.ocean_crust.output]
-cell_filter = pylith.meshio.CellFilterAvgMesh
-output_freq = time_step
-time_step = 9.99999*year
-writer.filename = output/postseismic-oceancrust.vtk
-writer.time_format = %04.0f
-writer.time_constant = 1.0*year
-
-[pylithapp.timedependent.materials.ocean_mantle.output]
-cell_filter = pylith.meshio.CellFilterAvgMesh
-output_freq = time_step
-time_step = 9.99999*year
-writer.filename = output/postseismic-oceanmantle.vtk
-writer.time_format = %04.0f
-writer.time_constant = 1.0*year
-
-# End of file
\ No newline at end of file

Modified: short/3D/PyLith/trunk/examples/2d/subduction/pylithapp.cfg
===================================================================
--- short/3D/PyLith/trunk/examples/2d/subduction/pylithapp.cfg	2011-05-15 22:21:20 UTC (rev 18377)
+++ short/3D/PyLith/trunk/examples/2d/subduction/pylithapp.cfg	2011-05-16 00:11:00 UTC (rev 18378)
@@ -121,6 +121,62 @@
 
 
 # ----------------------------------------------------------------------
+# output
+# ----------------------------------------------------------------------
+# Names of output files are set in stepXX.cfg. We consolidate all of the
+# output settings that are common to all of the simulations here.
+
+[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
+
+# Domain
+[pylithapp.problem.formulation.output.domain]
+output_freq = time_step
+time_step = 9.99999*year
+writer.time_format = %04.0f
+writer.time_constant = 1.0*year
+
+# Ground surface
+[pylithapp.problem.formulation.output.subdomain]
+label = groundsurf ; Name of CUBIT nodeset for ground surface.
+writer.time_format = %04.0f
+writer.time_constant = 1.0*year
+
+# Materials
+[pylithapp.timedependent.materials.continent_crust.output]
+cell_filter = pylith.meshio.CellFilterAvgMesh
+output_freq = time_step
+time_step = 9.99999*year
+writer.time_format = %04.0f
+writer.time_constant = 1.0*year
+
+[pylithapp.timedependent.materials.continent_mantle.output]
+cell_filter = pylith.meshio.CellFilterAvgMesh
+output_freq = time_step
+time_step = 9.99999*year
+writer.time_format = %04.0f
+writer.time_constant = 1.0*year
+
+[pylithapp.timedependent.materials.ocean_crust.output]
+cell_filter = pylith.meshio.CellFilterAvgMesh
+output_freq = time_step
+time_step = 9.99999*year
+writer.time_format = %04.0f
+writer.time_constant = 1.0*year
+
+[pylithapp.timedependent.materials.ocean_mantle.output]
+cell_filter = pylith.meshio.CellFilterAvgMesh
+output_freq = time_step
+time_step = 9.99999*year
+writer.time_format = %04.0f
+writer.time_constant = 1.0*year
+
+# ----------------------------------------------------------------------
 # PETSc
 # ----------------------------------------------------------------------
 # Set the solver options.

Copied: short/3D/PyLith/trunk/examples/2d/subduction/step01.cfg (from rev 18377, short/3D/PyLith/branches/v1.5-stable/examples/2d/subduction/step01.cfg)
===================================================================
--- short/3D/PyLith/trunk/examples/2d/subduction/step01.cfg	                        (rev 0)
+++ short/3D/PyLith/trunk/examples/2d/subduction/step01.cfg	2011-05-16 00:11:00 UTC (rev 18378)
@@ -0,0 +1,144 @@
+# -*- Python -*-
+[pylithapp]
+
+# ----------------------------------------------------------------------
+# PROBLEM DESCRIPTION
+# ----------------------------------------------------------------------
+#
+# This simulation involves coseismic slip between the continental
+# crust and top of the subducting oceanic crust. The slip also
+# extends down into the top of the mantle below the continental
+# crust.
+#
+# ----------------------------------------------------------------------
+# RUNNING THE SIMULATON
+# ----------------------------------------------------------------------
+#
+# This is not a self-contained simulation configuration file. This
+# file specifies only the boundary conditions and earthquake
+# parameters for the simulation. The general quasi-static and mesh
+# parameters are specificed in the pylithapp.cfg file which PyLith
+# reads by default.
+#
+# To run the simulation:
+# pylith step01.cfg
+#
+# Output will be directed to directory output.
+
+# ----------------------------------------------------------------------
+# problem
+# ----------------------------------------------------------------------
+[pylithapp.timedependent.formulation.time_step]
+total_time = 0.0*year
+dt = 5.0*year
+
+# ----------------------------------------------------------------------
+# boundary conditions
+# ----------------------------------------------------------------------
+[pylithapp.timedependent]
+# Set bc to an array of 5 boundary conditions:
+#   'boundary_east_crust'
+#   'boundary_east_mantle'
+#   'boundary_west'
+#   'boundary_bottom_slab'
+#   'boundary_bottom_mantle'
+bc = [boundary_east_crust,boundary_east_mantle,boundary_west,boundary_bottom_slab,boundary_bottom_mantle]
+
+# For all boundaries, we fix the displacement normal to the boundary
+# (roller boundary condition) by retaining the default ZeroDispDB,
+# which specifies a zero value.
+#
+# The label corresponds to the name of the nodeset in CUBIT.
+
+# East boundaries
+[pylithapp.timedependent.bc.boundary_east_crust]
+bc_dof = [0]
+label = bndry_east_crust
+db_initial.label = Dirichlet BC on east boundary (crust)
+
+[pylithapp.timedependent.bc.boundary_east_mantle]
+bc_dof = [0]
+label = bndry_east_mantle
+db_initial.label = Dirichlet BC on east boundary (mantle)
+
+# West boundary
+[pylithapp.timedependent.bc.boundary_west]
+bc_dof = [0]
+label = bndry_west
+db_initial.label = Dirichlet BC on west boundary
+
+# Bottom boundaries
+[pylithapp.timedependent.bc.boundary_bottom_slab]
+bc_dof = [1]
+label = bndry_bot_slab
+db_initial.label = Dirichlet BC on bottom boundary (slab)
+
+[pylithapp.timedependent.bc.boundary_bottom_mantle]
+bc_dof = [1]
+label = bndry_bot_mantle
+db_initial.label = Dirichlet BC on bottom boundary (mantle)
+
+# ----------------------------------------------------------------------
+# faults
+# ----------------------------------------------------------------------
+[pylithapp.timedependent]
+interfaces = [fault]
+
+# Set the type of fault interface condition.
+[pylithapp.timedependent.interfaces]
+fault = pylith.faults.FaultCohesiveKin
+
+# Set the parameters for the fault interface condition.
+[pylithapp.timedependent.interfaces.fault]
+# The label corresponds to the name of the nodeset in CUBIT.
+label = fault_coseismic
+
+# We must define the quadrature information for fault cells.
+# The fault cells are 1D (line).
+quadrature.cell = pylith.feassemble.FIATSimplex
+quadrature.cell.shape = line
+
+# The slip time and final slip are defined in spatial databases.
+[pylithapp.timedependent.interfaces.fault.eq_srcs.rupture.slip_function]
+slip.iohandler.filename = fault_slip_coseismic.spatialdb
+slip.query_type = linear
+slip.label = Final slip
+
+# Slip time is uniform, so use UniformDB for convenience
+slip_time = spatialdata.spatialdb.UniformDB
+slip_time.label = Slip time
+slip_time.values = [slip-time]
+slip_time.data = [0.0*year]
+
+# ----------------------------------------------------------------------
+# output
+# ----------------------------------------------------------------------
+# Domain
+[pylithapp.problem.formulation.output.domain]
+writer.filename = output/step01.vtk
+
+# Ground surface
+[pylithapp.problem.formulation.output.subdomain]
+writer.filename = output/step01-groundsurf.vtk
+
+# Fault
+[pylithapp.problem.interfaces.fault.output]
+writer.time_format = %04.0f
+writer.time_constant = 1.0*year
+writer.filename = output/step01-fault.vtk
+
+# Materials
+[pylithapp.timedependent.materials.continent_crust.output]
+writer.filename = output/step01-concrust.vtk
+
+[pylithapp.timedependent.materials.continent_mantle.output]
+writer.filename = output/step01-conmantle.vtk
+
+[pylithapp.timedependent.materials.ocean_crust.output]
+writer.filename = output/step01-oceancrust.vtk
+
+[pylithapp.timedependent.materials.ocean_mantle.output]
+writer.filename = output/step01-oceanmantle.vtk
+
+
+# End of file

Copied: short/3D/PyLith/trunk/examples/2d/subduction/step02.cfg (from rev 18377, short/3D/PyLith/branches/v1.5-stable/examples/2d/subduction/step02.cfg)
===================================================================
--- short/3D/PyLith/trunk/examples/2d/subduction/step02.cfg	                        (rev 0)
+++ short/3D/PyLith/trunk/examples/2d/subduction/step02.cfg	2011-05-16 00:11:00 UTC (rev 18378)
@@ -0,0 +1,171 @@
+# -*- Python -*-
+[pylithapp]
+
+# ----------------------------------------------------------------------
+# PROBLEM DESCRIPTION
+# ----------------------------------------------------------------------
+#
+# This simulation involves aseismic creep along the interfaces between
+# the subducting oceanic crust and the mantle. The slip rate is a
+# constant 8 cm/yr.
+#
+# ----------------------------------------------------------------------
+# RUNNING THE SIMULATON
+# ----------------------------------------------------------------------
+#
+# This is not a self-contained simulation configuration file. This
+# file specifies only the boundary conditions and earthquake
+# parameters for the simulation. The general quasi-static and mesh
+# parameters are specificed in the pylithapp.cfg file which PyLith
+# reads by default.
+#
+# To run the simulation:
+# pylith step02.cfg
+#
+# Output will be directed to directory output.
+
+# ----------------------------------------------------------------------
+# problem
+# ----------------------------------------------------------------------
+[pylithapp.timedependent.formulation.time_step]
+total_time = 100.0*year
+dt = 5.0*year
+
+# ----------------------------------------------------------------------
+# boundary conditions
+# ----------------------------------------------------------------------
+[pylithapp.timedependent]
+# Set bc to an array of 3 boundary conditions:
+#   'boundary_east_mantle'
+#   'boundary_west'
+#   'boundary_bottom_mantle'
+bc = [boundary_east_mantle,boundary_west,boundary_bottom_mantle]
+
+# For all boundaries, we fix the displacement normal to the boundary
+# (roller boundary condition) by retaining the default ZeroDispDB,
+# which specifies a zero value.
+#
+# The label corresponds to the name of the nodeset in CUBIT.
+
+# East boundary (mantle)
+[pylithapp.timedependent.bc.boundary_east_mantle]
+bc_dof = [0]
+label = bndry_east_mantle
+db_initial.label = Dirichlet BC on east boundary (mantle)
+
+# West boundary
+[pylithapp.timedependent.bc.boundary_west]
+bc_dof = [0]
+label = bndry_west
+db_initial.label = Dirichlet BC on west boundary
+
+# Bottom boundary (mantle)
+[pylithapp.timedependent.bc.boundary_bottom_mantle]
+bc_dof = [1]
+label = bndry_bot_mantle
+db_initial.label = Dirichlet BC on bottom boundary (mantle)
+
+# ----------------------------------------------------------------------
+# faults
+# ----------------------------------------------------------------------
+[pylithapp.timedependent]
+interfaces = [fault_slabtop,fault_slabbot]
+
+# Set the type of fault interface condition.
+[pylithapp.timedependent.interfaces]
+fault_slabtop = pylith.faults.FaultCohesiveKin
+fault_slabbot = pylith.faults.FaultCohesiveKin
+
+# Slab top --------------------
+[pylithapp.timedependent.interfaces.fault_slabtop]
+# The label corresponds to the name of the nodeset in CUBIT.
+label = fault_slabtop
+id = 100
+
+# We must define the quadrature information for fault cells.
+# The fault cells are 1D (line).
+quadrature.cell = pylith.feassemble.FIATSimplex
+quadrature.cell.shape = line
+
+# Switch to constant slip rate time function.
+[pylithapp.timedependent.interfaces.fault_slabtop.eq_srcs.rupture]
+slip_function = pylith.faults.ConstRateSlipFn
+
+# The slip time and final slip are defined in spatial databases.
+[pylithapp.timedependent.interfaces.fault_slabtop.eq_srcs.rupture.slip_function]
+slip_rate.iohandler.filename = fault_creep_slabtop.spatialdb
+slip_rate.query_type = linear
+slip_rate.label = Final slip
+
+# Slip time is uniform, so use UniformDB for convenience
+slip_time = spatialdata.spatialdb.UniformDB
+slip_time.label = Slip time
+slip_time.values = [slip-time]
+slip_time.data = [0.0*year]
+
+
+# Slab bottom --------------------
+[pylithapp.timedependent.interfaces.fault_slabbot]
+# The label corresponds to the name of the nodeset in CUBIT.
+label = fault_slabbot
+id = 101
+
+# We must define the quadrature information for fault cells.
+# The fault cells are 1D (line).
+quadrature.cell = pylith.feassemble.FIATSimplex
+quadrature.cell.shape = line
+
+# Switch to constant slip rate time function.
+[pylithapp.timedependent.interfaces.fault_slabbot.eq_srcs.rupture]
+slip_function = pylith.faults.ConstRateSlipFn
+
+# The creep rate and slip time are uniform, so use UniformDB for simplicity.
+[pylithapp.timedependent.interfaces.fault_slabbot.eq_srcs.rupture.slip_function]
+slip_rate = spatialdata.spatialdb.UniformDB
+slip_rate.label = Slip rate
+slip_rate.values = [left-lateral-slip, fault-opening]
+slip_rate.data = [8.0*cm/year, 0.0*cm/year]
+
+# Slip time is uniform, so use UniformDB for convenience
+slip_time = spatialdata.spatialdb.UniformDB
+slip_time.label = Slip time
+slip_time.values = [slip-time]
+slip_time.data = [0.0*year]
+
+# ----------------------------------------------------------------------
+# output
+# ----------------------------------------------------------------------
+# Domain
+[pylithapp.problem.formulation.output.domain]
+writer.filename = output/step02.vtk
+
+# Ground surface
+[pylithapp.problem.formulation.output.subdomain]
+writer.filename = output/step02-groundsurf.vtk
+
+# Faults
+[pylithapp.problem.interfaces.fault_slabtop.output]
+writer.time_format = %04.0f
+writer.time_constant = 1.0*year
+writer.filename = output/step02-fault-slabtop.vtk
+
+[pylithapp.problem.interfaces.fault_slabbot.output]
+writer.time_format = %04.0f
+writer.time_constant = 1.0*year
+writer.filename = output/step02-fault-slabbot.vtk
+
+# Materials
+[pylithapp.timedependent.materials.continent_crust.output]
+writer.filename = output/step02-concrust.vtk
+
+[pylithapp.timedependent.materials.continent_mantle.output]
+writer.filename = output/step02-conmantle.vtk
+
+[pylithapp.timedependent.materials.ocean_crust.output]
+writer.filename = output/step02-oceancrust.vtk
+
+[pylithapp.timedependent.materials.ocean_mantle.output]
+writer.filename = output/step02-oceanmantle.vtk
+
+
+# End of file

Copied: short/3D/PyLith/trunk/examples/2d/subduction/step03.cfg (from rev 18377, short/3D/PyLith/branches/v1.5-stable/examples/2d/subduction/step03.cfg)
===================================================================
--- short/3D/PyLith/trunk/examples/2d/subduction/step03.cfg	                        (rev 0)
+++ short/3D/PyLith/trunk/examples/2d/subduction/step03.cfg	2011-05-16 00:11:00 UTC (rev 18378)
@@ -0,0 +1,188 @@
+# -*- Python -*-
+[pylithapp]
+
+# ----------------------------------------------------------------------
+# PROBLEM DESCRIPTION
+# ----------------------------------------------------------------------
+#
+# This simulation combines the interseismic deformation from Step 2
+# with the coseismic slip from Step 1. The earthquake rupture occurs
+# midway (150 years) through the 300 year simulation.
+#
+# ----------------------------------------------------------------------
+# RUNNING THE SIMULATON
+# ----------------------------------------------------------------------
+#
+# This is not a self-contained simulation configuration file. This
+# file specifies only the boundary conditions and earthquake
+# parameters for the simulation. The general quasi-static and mesh
+# parameters are specificed in the pylithapp.cfg file which PyLith
+# reads by default.
+#
+# To run the simulation:
+# pylith step03.cfg
+#
+# Output will be directed to directory output.
+
+# ----------------------------------------------------------------------
+# problem
+# ----------------------------------------------------------------------
+[pylithapp.timedependent.formulation.time_step]
+total_time = 300.0*year
+dt = 5.0*year
+
+# ----------------------------------------------------------------------
+# boundary conditions
+# ----------------------------------------------------------------------
+[pylithapp.timedependent]
+# Set bc to an array of 3 boundary conditions:
+#   'boundary_east_mantle'
+#   'boundary_west'
+#   'boundary_bottom_mantle'
+bc = [boundary_east_mantle,boundary_west,boundary_bottom_mantle]
+
+# For all boundaries, we fix the displacement normal to the boundary
+# (roller boundary condition) by retaining the default ZeroDispDB,
+# which specifies a zero value.
+#
+# The label corresponds to the name of the nodeset in CUBIT.
+
+# East boundary (mantle)
+[pylithapp.timedependent.bc.boundary_east_mantle]
+bc_dof = [0]
+label = bndry_east_mantle
+db_initial.label = Dirichlet BC on east boundary (mantle)
+
+# West boundary
+[pylithapp.timedependent.bc.boundary_west]
+bc_dof = [0]
+label = bndry_west
+db_initial.label = Dirichlet BC on west boundary
+
+# Bottom boundary (mantle)
+[pylithapp.timedependent.bc.boundary_bottom_mantle]
+bc_dof = [1]
+label = bndry_bot_mantle
+db_initial.label = Dirichlet BC on bottom boundary (mantle)
+
+# ----------------------------------------------------------------------
+# faults
+# ----------------------------------------------------------------------
+[pylithapp.timedependent]
+interfaces = [fault_slabtop,fault_slabbot]
+
+# Set the type of fault interface condition.
+[pylithapp.timedependent.interfaces]
+fault_slabtop = pylith.faults.FaultCohesiveKin
+fault_slabbot = pylith.faults.FaultCohesiveKin
+
+# Slab top --------------------
+[pylithapp.timedependent.interfaces.fault_slabtop]
+# The label corresponds to the name of the nodeset in CUBIT.
+label = fault_slabtop
+id = 100
+
+# We must define the quadrature information for fault cells.
+# The fault cells are 1D (line).
+quadrature.cell = pylith.feassemble.FIATSimplex
+quadrature.cell.shape = line
+
+# Set earthquake sources to an array consisting of creep and 3 ruptures.
+eq_srcs = [creep,rupture]
+eq_srcs.creep.origin_time = 00.0*year
+eq_srcs.rupture.origin_time = 150.0*year
+
+# Coseismic rupture ---------
+[pylithapp.timedependent.interfaces.fault_slabtop.eq_srcs.rupture.slip_function]
+slip.iohandler.filename = fault_slip_coseismic.spatialdb
+slip.query_type = linear
+slip.label = Final slip
+
+# Slip time (relative to origin time) is uniform, so use UniformDB for convenience
+slip_time = spatialdata.spatialdb.UniformDB
+slip_time.label = Slip time
+slip_time.values = [slip-time]
+slip_time.data = [0.0*year]
+
+# Creep ---------
+[pylithapp.timedependent.interfaces.fault_slabtop.eq_srcs.creep]
+slip_function = pylith.faults.ConstRateSlipFn
+
+# The slip time and final slip are defined in spatial databases.
+[pylithapp.timedependent.interfaces.fault_slabtop.eq_srcs.creep.slip_function]
+slip_rate.iohandler.filename = fault_creep_slabtop.spatialdb
+slip_rate.query_type = linear
+slip_rate.label = Final slip
+
+# Slip time is uniform, so use UniformDB for convenience
+slip_time = spatialdata.spatialdb.UniformDB
+slip_time.label = Slip time
+slip_time.values = [slip-time]
+slip_time.data = [0.0*year]
+
+
+# Slab bottom --------------------
+[pylithapp.timedependent.interfaces.fault_slabbot]
+# The label corresponds to the name of the nodeset in CUBIT.
+label = fault_slabbot
+id = 101
+
+# We must define the quadrature information for fault cells.
+# The fault cells are 1D (line).
+quadrature.cell = pylith.feassemble.FIATSimplex
+quadrature.cell.shape = line
+
+# Switch to constant slip rate time function.
+[pylithapp.timedependent.interfaces.fault_slabbot.eq_srcs.rupture]
+slip_function = pylith.faults.ConstRateSlipFn
+
+# The creep rate and slip time are uniform, so use UniformDB for simplicity.
+[pylithapp.timedependent.interfaces.fault_slabbot.eq_srcs.rupture.slip_function]
+slip_rate = spatialdata.spatialdb.UniformDB
+slip_rate.label = Slip rate
+slip_rate.values = [left-lateral-slip, fault-opening]
+slip_rate.data = [8.0*cm/year, 0.0*cm/year]
+
+# Slip time is uniform, so use UniformDB for convenience
+slip_time = spatialdata.spatialdb.UniformDB
+slip_time.label = Slip time
+slip_time.values = [slip-time]
+slip_time.data = [0.0*year]
+
+# ----------------------------------------------------------------------
+# output
+# ----------------------------------------------------------------------
+# Domain
+[pylithapp.problem.formulation.output.domain]
+writer.filename = output/step03.vtk
+
+# Ground surface
+[pylithapp.problem.formulation.output.subdomain]
+writer.filename = output/step03-groundsurf.vtk
+
+# Faults
+[pylithapp.problem.interfaces.fault_slabtop.output]
+writer.time_format = %04.0f
+writer.time_constant = 1.0*year
+writer.filename = output/step03-fault-slabtop.vtk
+
+[pylithapp.problem.interfaces.fault_slabbot.output]
+writer.time_format = %04.0f
+writer.time_constant = 1.0*year
+writer.filename = output/step03-fault-slabbot.vtk
+
+# Materials
+[pylithapp.timedependent.materials.continent_crust.output]
+writer.filename = output/step03-concrust.vtk
+
+[pylithapp.timedependent.materials.continent_mantle.output]
+writer.filename = output/step03-conmantle.vtk
+
+[pylithapp.timedependent.materials.ocean_crust.output]
+writer.filename = output/step03-oceancrust.vtk
+
+[pylithapp.timedependent.materials.ocean_mantle.output]
+writer.filename = output/step03-oceanmantle.vtk
+
+
+# End of file



More information about the CIG-COMMITS mailing list