[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