[cig-commits] r16103 - in short/3D/PyLith/trunk/playpen/friction: . tet4 tri3 twohex8

surendra at geodynamics.org surendra at geodynamics.org
Tue Dec 15 22:33:36 PST 2009


Author: surendra
Date: 2009-12-15 22:33:35 -0800 (Tue, 15 Dec 2009)
New Revision: 16103

Added:
   short/3D/PyLith/trunk/playpen/friction/tet4/
   short/3D/PyLith/trunk/playpen/friction/tet4/compression.cfg
   short/3D/PyLith/trunk/playpen/friction/tet4/tet4.mesh
   short/3D/PyLith/trunk/playpen/friction/tri3/
   short/3D/PyLith/trunk/playpen/friction/tri3/compression.cfg
   short/3D/PyLith/trunk/playpen/friction/tri3/matelastic2D.spatialdb
   short/3D/PyLith/trunk/playpen/friction/tri3/opening.cfg
   short/3D/PyLith/trunk/playpen/friction/tri3/shear-sliding.cfg
   short/3D/PyLith/trunk/playpen/friction/tri3/shear-stick.cfg
   short/3D/PyLith/trunk/playpen/friction/tri3/tri3.mesh
Modified:
   short/3D/PyLith/trunk/playpen/friction/twohex8/shear-sliding.cfg
   short/3D/PyLith/trunk/playpen/friction/twohex8/shear-stick.cfg
Log:
Added friction examples with tri3 (all-compression,opening,shear-sliding,shear-stick) and tet4(only compression) meshes

Added: short/3D/PyLith/trunk/playpen/friction/tet4/compression.cfg
===================================================================
--- short/3D/PyLith/trunk/playpen/friction/tet4/compression.cfg	                        (rev 0)
+++ short/3D/PyLith/trunk/playpen/friction/tet4/compression.cfg	2009-12-16 06:33:35 UTC (rev 16103)
@@ -0,0 +1,185 @@
+# -*- Python -*-
+[pylithapp]
+
+# ----------------------------------------------------------------------
+# journal
+# ----------------------------------------------------------------------
+[pylithapp.journal.info]
+timedependent = 1
+implicit = 1
+petsc = 1
+solvernonlinear = 1
+meshioascii = 1
+homogeneous = 1
+elasticityimplicit = 1
+fiatlagrange = 1
+quadrature3d = 1
+faultcohesivedyn = 1
+
+# ----------------------------------------------------------------------
+# mesh_generator
+# ----------------------------------------------------------------------
+[pylithapp.mesh_generator]
+debug = 0
+
+[pylithapp.mesh_generator.reader]
+filename = tet4.mesh
+coordsys.space_dim = 3
+
+# ----------------------------------------------------------------------
+# problem
+# ----------------------------------------------------------------------
+[pylithapp.timedependent]
+dimension = 3
+normalizer.length_scale = 1.0*m
+formulation = pylith.problems.Implicit
+formulation.solver = pylith.problems.SolverNonlinear
+
+# Set bc to an array with 3 boundary conditions: 'x_neg', 'z_neg' and 'x_pos'.
+bc = [x_neg,z_neg,y_neg,x_pos]
+bc.x_pos = pylith.bc.Neumann
+
+# Set interfaces to an array with 1 fault: 'fault'.
+interfaces = [fault]
+
+[pylithapp.timedependent.formulation.time_step]
+total_time = 0.0*s
+dt = 1.0*s
+
+# ----------------------------------------------------------------------
+# materials
+# ----------------------------------------------------------------------
+[pylithapp.timedependent.materials]
+material = pylith.materials.ElasticIsotropic3D
+
+[pylithapp.timedependent.materials.material]
+
+# We give a label of 'elastic isotropic 3D material' to this material.
+label = Elastic isotropic 3D material
+
+# The cells associated with this material are given a material ID of 1
+# in the mesh file.
+id = 1
+
+db_properties.iohandler.filename = matelastic3D.spatialdb
+
+# We are doing 3D quadrature for a tet4.
+quadrature.cell = pylith.feassemble.FIATSimplex
+quadrature.cell.shape = tetrahedron
+
+
+[pylithapp.timedependent.formulation.time_step]
+total_time = 0.0*s
+dt = 1.0*s
+
+# ----------------------------------------------------------------------
+# boundary conditions
+# ----------------------------------------------------------------------
+# Boundary conditions to be applied to the negative x-side of the mesh.
+[pylithapp.timedependent.bc.x_neg]
+
+# We are fixing the 0 (x) degree of freedom.
+bc_dof = [0]
+
+# The nodes associated with this boundary condition have the name
+# 'x_neg' in the mesh file.
+label = x_neg
+
+# Boundary conditions to be applied to the negative z-side of the mesh.
+[pylithapp.timedependent.bc.z_neg]
+
+# We are fixing the 2 (z) degree of freedom.
+bc_dof = [2]
+
+# The nodes associated with this boundary condition have the name
+# 'z_pos' in the mesh file.
+label = z_neg_nofault
+
+# Boundary conditions to be applied to the negative y-side of the mesh.
+[pylithapp.timedependent.bc.y_neg]
+
+# We are fixing the 1 (y) degree of freedom.
+bc_dof = [1]
+
+# The nodes associated with this boundary condition have the name
+# 'y_pos' in the mesh file.
+label = y_neg_nofault
+
+# Boundary conditions to be applied to the positive x-side of the mesh.
+[pylithapp.timedependent.bc.x_pos]
+
+# The nodes associated with this boundary condition have the name
+# 'x_pos' in the mesh file.
+label = x_pos
+
+db_initial = spatialdata.spatialdb.UniformDB
+db_initial.label = Neumann BC +x edge
+db_initial.values = [traction-shear-horiz,traction-shear-vert,traction-normal]
+db_initial.data = [0.0*MPa,0.0*MPa,-12000*MPa]
+
+# 2-D simplex cell in 3-D space.
+quadrature.cell = pylith.feassemble.FIATSimplex
+quadrature.cell.shape = triangle
+
+# ----------------------------------------------------------------------
+# faults
+# ----------------------------------------------------------------------
+[pylithapp.timedependent.interfaces]
+fault = pylith.faults.FaultCohesiveDynL
+
+[pylithapp.timedependent.interfaces.fault]
+
+# The nodes associated with this fault have the name 'fault' in the mesh file.
+label = fault
+
+# The quadrature for a 3D fault is 2D with a linear shape.
+quadrature.cell = pylith.feassemble.FIATSimplex
+quadrature.cell.shape = triangle
+
+db_initial_tractions = spatialdata.spatialdb.UniformDB
+db_initial_tractions.label = "Initial fault tractions"
+db_initial_tractions.values = [traction-shear-leftlateral,traction-shear-updip,traction-normal]
+db_initial_tractions.data = [0.0*Pa,0.0*Pa, -10000.0*MPa]
+
+# ----------------------------------------------------------------------
+# PETSc
+# ----------------------------------------------------------------------
+# We are using all of the default settings for PETSc except for
+# specifying the block Jacobi preconditioner.  Additional PETSc
+# command-line arguments may be found in the PETSc documentation.
+[pylithapp.petsc]
+ksp_rtol = 1.0e-8
+pc_type = asm
+# Change the preconditioner settings (must turn off
+# shift_positive_definite and turn on shift_nonzero).
+sub_pc_factor_shift_positive_definite = 0
+sub_pc_factor_shift_nonzero = 
+
+ksp_monitor = true
+ksp_view = true
+#log_summary = true
+ksp_max_it = 100
+ksp_gmres_restart = 50
+#start_in_debugger = true
+
+snes_monitor = true
+snes_view = true
+ksp_converged_reason = true
+snes_converged_reason = true
+
+# ----------------------------------------------------------------------
+# output
+# ----------------------------------------------------------------------
+# Give basename for VTK domain output of solution over domain.
+[pylithapp.problem.formulation.output.output.writer]
+filename = tet4-axial.vtk
+
+# Give basename for VTK fault output.
+[pylithapp.timedependent.interfaces.fault.output]
+writer.filename = tet4-axial-fault.vtk
+vertex_info_fields = [strike_dir,normal_dir,dip_dir,initial_traction]
+
+# Give basename for VTK output of state variables.
+[pylithapp.timedependent.materials.material.output]
+cell_filter = pylith.meshio.CellFilterAvgMesh
+writer.filename = tet4-axial-statevars.vtk

Added: short/3D/PyLith/trunk/playpen/friction/tet4/tet4.mesh
===================================================================
--- short/3D/PyLith/trunk/playpen/friction/tet4/tet4.mesh	                        (rev 0)
+++ short/3D/PyLith/trunk/playpen/friction/tet4/tet4.mesh	2009-12-16 06:33:35 UTC (rev 16103)
@@ -0,0 +1,176 @@
+// Global mesh object.
+// This defines a brick-shaped mesh composed of two cubic elements.
+mesh = {
+
+  // This is a 3D mesh.is is a 3D mesh.
+  dimension = 3
+
+  // We are using zero-indexing (default) rather than one-indexing.
+  use-index-zero = true
+
+  // Describe the vertices (nodes) defining the mesh.
+  vertices = {
+
+    // The vertices are defined in a 3D coordinate system.
+    dimension = 3
+
+    // There are 12 vertices.
+    count = 12
+
+    // List the coordinates as:
+    // Vertex number (starting from zero), x-coord, y-coord, z-coord
+    // Use coordinate units that are consistent with the other units used.
+    coordinates = {
+             0     -1.0 -0.5 -0.5
+             1     -1.0  0.5 -0.5
+             2      0.0 -0.5 -0.5
+             3      0.0  0.5 -0.5
+             4      1.0 -0.5 -0.5
+             5      1.0  0.5 -0.5
+             6     -1.0 -0.5  0.5
+             7     -1.0  0.5  0.5
+             8      0.0 -0.5  0.5
+             9      0.0  0.5  0.5
+            10      1.0 -0.5  0.5
+            11      1.0  0.5  0.5
+    }
+  }
+
+  // Describe the cells (elements) composing the mesh.
+  cells = {
+
+    // There are 12 cells.
+    count = 12
+
+    // These are trilinear hexahedral cells, so there are 4 corners per cell.
+    num-corners = 4
+
+    // List the vertices composing each cell (see manual for ordering).
+    // List the information as:
+    // Cell number (starting from zero), vertex 0, vertex 1, etc.
+    simplices = {
+             0       0  2  6  1
+             1       2  1  6  7
+             2       2  7  6  8
+             3       3  1  9  2
+             4       1  2  9  8
+             5       1  8  9  7
+             6       2  4  8  3
+             7       4  9  8  9
+             8       4  9  8 10 
+             9       5  3 11  4
+            10       3  4 11 10
+            11       3 10 11  9
+    }
+
+    // List the material ID's associated with each cell.
+    // Different ID's may be used to specify a different material type, or
+    // to use a different spatial database for each material ID.
+    // In this example, cells 0 and 1 both are associated with material ID 1.
+    material-ids = {
+             0   1
+             1   1
+             2   1
+             3   1
+             4   1
+             5   1
+             6   1
+             7   1
+             8   1
+             9   1
+            10   1
+            11   1
+    }
+  }
+
+  // Here we list different groups (cells or vertices) that we want to associate
+  // with a particular name (ID).
+
+  // This group of vertices may be used to define a fault.
+  // There are 4 vertices corresponding to indices 2, 3, 8, and 9.
+  group = {
+    name = fault
+    type = vertices
+    count = 4
+    indices = {
+      2
+      3
+      8
+      9
+    }
+  }
+
+  group = {
+    name = x_neg
+    type = vertices
+    count = 4
+    indices = {
+      0  1  6  7
+    }
+  }
+
+  group = {
+    name = x_pos
+    type = vertices
+    count = 4
+    indices = {
+      4  5  10  11
+    }
+  }
+
+  group = {
+    name = y_neg
+    type = vertices
+    count = 6
+    indices = {
+      0  2  4  6  8  10
+    }
+  }
+
+  group = {
+    name = y_pos
+    type = vertices
+    count = 6
+    indices = {
+      1  3  5  7  9  11
+    }
+  }
+
+  // y_neg with fault vertices removed
+  group = {
+    name = y_neg_nofault
+    type = vertices
+    count = 4
+    indices = {
+      0  4  6  10
+    }
+  }
+
+  group = {
+    name = z_neg
+    type = vertices
+    count = 6
+    indices = {
+      0  1  2  3  4  5
+    }
+  }
+
+  group = {
+    name = z_pos
+    type = vertices
+    count = 6
+    indices = {
+      6  7  8  9  10  11
+    }
+  }
+
+  // z_neg with fault vertices removed
+  group = {
+    name = z_neg_nofault
+    type = vertices
+    count = 4
+    indices = {
+      0  1  4  5
+    }
+  }
+}

Added: short/3D/PyLith/trunk/playpen/friction/tri3/compression.cfg
===================================================================
--- short/3D/PyLith/trunk/playpen/friction/tri3/compression.cfg	                        (rev 0)
+++ short/3D/PyLith/trunk/playpen/friction/tri3/compression.cfg	2009-12-16 06:33:35 UTC (rev 16103)
@@ -0,0 +1,192 @@
+# -*- Python -*-
+[pylithapp]
+
+# ----------------------------------------------------------------------
+# journal
+# ----------------------------------------------------------------------
+[pylithapp.journal.info]
+timedependent = 1
+implicit = 1
+petsc = 1
+solvernonlinear = 1
+meshioascii = 1
+homogeneous = 1
+elasticityimplicit = 1
+fiatlagrange = 1
+quadrature1d = 1
+faultcohesivedyn = 1
+
+# ----------------------------------------------------------------------
+# mesh_generator
+# ----------------------------------------------------------------------
+[pylithapp.mesh_generator]
+debug = 0
+
+[pylithapp.mesh_generator.reader]
+filename = tri3.mesh
+coordsys.space_dim = 2
+
+# ----------------------------------------------------------------------
+# problem
+# ----------------------------------------------------------------------
+[pylithapp.timedependent]
+dimension = 2
+normalizer.length_scale = 1.0*m
+formulation = pylith.problems.Implicit
+formulation.solver = pylith.problems.SolverNonlinear
+
+# Set bc to an array with 3 boundary conditions: 'x_neg', 'y_neg' and 'x_pos'.
+bc = [x_neg,y_neg,x_pos]
+bc.x_pos = pylith.bc.Neumann
+
+# Set interfaces to an array with 1 fault: 'fault'.
+interfaces = [fault]
+
+
+[pylithapp.timedependent.formulation.time_step]
+total_time = 0.0*s
+dt = 1.0*s
+
+
+# ----------------------------------------------------------------------
+# materials
+# ----------------------------------------------------------------------
+# Specify the material information for the problem.
+# The material type is isotropic elastic formulated for plane strain.
+[pylithapp.timedependent.materials]
+material = pylith.materials.ElasticPlaneStrain
+
+[pylithapp.timedependent.materials.material]
+
+# We give a label of 'elastic material' to this material.
+label = elastic material
+
+# The cells associated with this material are given a material ID of 0
+# in the mesh file.
+id = 0
+
+# The properties for this material are given in the spatial database file
+# 'matelastic2D.spatialdb'.
+db_properties.iohandler.filename = matelastic2D.spatialdb
+
+# We are doing 2D quadrature for a triangle.
+quadrature.cell = pylith.feassemble.FIATSimplex
+quadrature.cell.shape = triangle
+
+# ----------------------------------------------------------------------
+# boundary conditions
+# ----------------------------------------------------------------------
+# Provide information on the boundary conditions.
+
+# Boundary conditions to be applied to the negative x-side of the mesh.
+[pylithapp.timedependent.bc.x_neg]
+
+# We are fixing the 0 (x) degree of freedom.
+bc_dof = [0]
+
+# The nodes associated with this boundary condition have the name
+# 'x_neg' in the mesh file.
+label = x_neg
+
+# Boundary conditions to be applied to the negative y-side of the mesh.
+[pylithapp.timedependent.bc.y_neg]
+
+# We are fixing the 1 (y) degree of freedom.
+bc_dof = [1]
+
+# The nodes associated with this boundary condition have the name
+# 'x_pos' in the mesh file.
+label = y_neg
+
+# Boundary conditions to be applied to the positive x-side of the mesh.
+[pylithapp.timedependent.bc.x_pos]
+
+# The nodes associated with this boundary condition have the name
+# 'x_pos' in the mesh file.
+label = x_pos
+
+db_initial = spatialdata.spatialdb.UniformDB
+db_initial.label = Neumann BC +x edge
+db_initial.values = [traction-shear,traction-normal]
+db_initial.data = [0.0*MPa,-12000*MPa]
+
+# 1-D simplex cell in 2-D space 
+quadrature.cell = pylith.feassemble.FIATSimplex
+quadrature.cell.shape = line
+
+# ----------------------------------------------------------------------
+# faults
+# ----------------------------------------------------------------------
+# Provide information on the fault (interface).
+[pylithapp.timedependent.interfaces]
+
+fault = pylith.faults.FaultCohesiveDynL
+
+# Define fault properties.
+[pylithapp.timedependent.interfaces.fault]
+
+# The nodes associated with this fault have the name 'fault' in the mesh file.
+label = fault
+
+# NOTE: It is possible to assign an ID number to a fault (e.g.,
+# 'id = 10').  Care must be taken when doing this, however, because the
+# assigned ID will become the material ID for the cohesive element.
+# This ID must not conflict with any of the material ID numbers for
+# volume elements.  The default ID for a fault is 100.  If you have a
+# fault in your mesh you must:
+# 1.  If you create your own fault ID, make sure it does not conflict
+#     with any of you material ID's.
+# 2.  If you use the default fault ID, make sure that none of your
+#     material ID's are equal to 100.
+
+# The quadrature for a 2D fault is 1D with a linear shape.
+quadrature.cell = pylith.feassemble.FIATSimplex
+quadrature.cell.shape = line
+
+db_initial_tractions = spatialdata.spatialdb.UniformDB
+db_initial_tractions.label = "Initial fault tractions"
+db_initial_tractions.values = [traction-shear,traction-normal]
+db_initial_tractions.data = [0.0*Pa, -10000.0*MPa]
+
+# ----------------------------------------------------------------------
+# PETSc
+# ----------------------------------------------------------------------
+# We are using all of the default settings for PETSc except for
+# specifying the block Jacobi preconditioner.  Additional PETSc
+# command-line arguments may be found in the PETSc documentation.
+[pylithapp.petsc]
+ksp_rtol = 1.0e-8
+pc_type = asm
+# Change the preconditioner settings (must turn off
+# shift_positive_definite and turn on shift_nonzero).
+sub_pc_factor_shift_positive_definite = 0
+sub_pc_factor_shift_nonzero = 
+
+ksp_monitor = true
+ksp_view = true
+#log_summary = true
+ksp_max_it = 100
+ksp_gmres_restart = 50
+#start_in_debugger = true
+
+snes_monitor = true
+snes_view = true
+ksp_converged_reason = true
+snes_converged_reason = true
+
+# ----------------------------------------------------------------------
+# output
+# ----------------------------------------------------------------------
+# Give basename for VTK domain output of solution over domain.
+[pylithapp.problem.formulation.output.output.writer]
+filename = tri3-axial.vtk
+
+# Give basename for VTK fault output.
+[pylithapp.timedependent.interfaces.fault.output]
+writer.filename = tri3-axial-fault.vtk
+vertex_info_fields = [strike_dir,normal_dir,initial_traction]
+
+# Give basename for VTK output of state variables.
+[pylithapp.timedependent.materials.material.output]
+cell_filter = pylith.meshio.CellFilterAvgMesh
+writer.filename = tri3-axial-statevars.vtk

Added: short/3D/PyLith/trunk/playpen/friction/tri3/matelastic2D.spatialdb
===================================================================
--- short/3D/PyLith/trunk/playpen/friction/tri3/matelastic2D.spatialdb	                        (rev 0)
+++ short/3D/PyLith/trunk/playpen/friction/tri3/matelastic2D.spatialdb	2009-12-16 06:33:35 UTC (rev 16103)
@@ -0,0 +1,46 @@
+#SPATIAL.ascii 1
+
+// This database is used to specify the material properties for all of the
+// examples in this directory.
+
+// This follows the format for a Simple DB (the only type presently available).
+SimpleDB {
+
+  // There are 3 values specified in the database, corresponding to density,
+  // S-velocity, and P-velocity (values for shear modulus and Lame's constant
+  // are computed from these values.
+  num-values = 3
+  value-names =  density vs vp
+
+  // These are the units used to specify density, vs, and vp.
+  value-units =  kg/m**3  m/s  m/s
+
+  // Values are only specified at a single point since they are constant
+  // throughout the mesh.
+  num-locs = 1
+
+  // The dimension of the spatial distribution is 0, since it is constant
+  // throughout the mesh.
+  data-dim = 0
+
+  // The spatial dimension of the database is 2.
+  space-dim = 2
+
+  // We are specifying the data in a Cartesian coordinate system.
+  cs-data = cartesian {
+
+    // Our units are already in meters, so we can just multiply by one.
+    to-meters = 1.0
+
+    // We are using a 2D Cartesian coordinate system.
+    space-dim = 2
+  }
+}
+// This is where the data is specified.
+// We only need to specify a single point, since the properties are uniform.
+// The values given here will give a shear modulus and Lame's constant both
+// equal to 30 GPa (Poisson's ratio = 0.25).
+// The entries are:
+// X-coord, Y-coord, density, Vs, Vp.
+
+0.0  0.0   2700.0  3333.333333333333  5773.502691896258

Added: short/3D/PyLith/trunk/playpen/friction/tri3/opening.cfg
===================================================================
--- short/3D/PyLith/trunk/playpen/friction/tri3/opening.cfg	                        (rev 0)
+++ short/3D/PyLith/trunk/playpen/friction/tri3/opening.cfg	2009-12-16 06:33:35 UTC (rev 16103)
@@ -0,0 +1,206 @@
+# -*- Python -*-
+
+# The settings in this file (pylithapp.cfg) will be read automatically
+# by pylith, as long as the file is placed in the run directory.
+
+# The settings in this file will override any settings in:
+# PREFIX/etc/pylithapp.cfg
+# $HOME/.pyre/pylithapp/pylithapp.cfg
+
+# The settings in this file will be overridden by any .cfg file given
+# on the command line or by any command line settings.
+
+[pylithapp]
+
+# ----------------------------------------------------------------------
+# journal
+# ----------------------------------------------------------------------
+# The settings below turn on journal info for the specified components.
+# If you want less output to stdout, you can turn these off.
+[pylithapp.journal.info]
+timedependent = 1
+implicit = 1
+petsc = 1
+solvernonlinear = 1
+meshioascii = 1
+homogeneous = 1
+elasticityimplicit = 1
+fiatlagrange = 1
+quadrature1d = 1
+faultcohesivedyn = 1
+
+# ----------------------------------------------------------------------
+# mesh_generator
+# ----------------------------------------------------------------------
+# The settings below control the mesh generation (importing mesh info).
+# Turn on debugging output for mesh generation.
+[pylithapp.mesh_generator]
+debug = 0
+
+# This component specification means we are using PyLith ASCII format,
+# and we then specify the filename and number of space dimensions for
+# the mesh.
+[pylithapp.mesh_generator.reader]
+filename = tri3.mesh
+coordsys.space_dim = 2
+
+# ----------------------------------------------------------------------
+# problem
+# ----------------------------------------------------------------------
+# Specify the problem settings.
+# This is a time-dependent problem, so we select this as our problem type.
+# We select a total time of 0 sec, and a time step size of 1 sec, so we
+# are performing a single time step.
+# The spatial dimension for this problem is 2.
+# For an implicit formulation (using implicit.cfg), we will perform 1
+# implicit time step from t = -1.0 to t = 0.0 (elastic solution step).
+[pylithapp.timedependent]
+dimension = 2
+normalizer.length_scale = 1.0*m
+formulation = pylith.problems.Implicit
+formulation.solver = pylith.problems.SolverNonlinear
+
+# Set bc to an array with 2 boundary conditions: 'x_neg', 'x_pos'
+bc = [x_neg,x_pos]
+bc.x_pos=pylith.bc.DirichletBoundary
+
+# Set interfaces to an array with 1 fault: 'fault'.
+interfaces = [fault]
+
+
+[pylithapp.timedependent.formulation.time_step]
+total_time = 0.0*s
+dt = 1.0*s
+
+
+# ----------------------------------------------------------------------
+# materials
+# ----------------------------------------------------------------------
+# Specify the material information for the problem.
+# The material type is isotropic elastic formulated for plane strain.
+[pylithapp.timedependent.materials]
+material = pylith.materials.ElasticPlaneStrain
+
+[pylithapp.timedependent.materials.material]
+
+# We give a label of 'elastic material' to this material.
+label = elastic material
+
+# The cells associated with this material are given a material ID of 0
+# in the mesh file.
+id = 0
+
+# The properties for this material are given in the spatial database file
+# 'matelastic2D.spatialdb'.
+db_properties.iohandler.filename = matelastic2D.spatialdb
+
+# We are doing 2D quadrature for a triangle.
+quadrature.cell = pylith.feassemble.FIATSimplex
+quadrature.cell.shape = triangle
+
+# ----------------------------------------------------------------------
+# boundary conditions
+# ----------------------------------------------------------------------
+# Provide information on the boundary conditions.
+
+# Boundary conditions to be applied to the negative x-side of the mesh.
+[pylithapp.timedependent.bc.x_neg]
+
+# We are fixing the 0 (x) and 1 (y) degree of freedom.
+bc_dof = [0,1]
+
+# The nodes associated with this boundary condition have the name
+# 'x_neg' in the mesh file.
+label = x_neg
+
+# Boundary conditions to be applied to the positive x-side of the mesh.
+[pylithapp.timedependent.bc.x_pos]
+
+# We are fixing the 1 (y) and prescribing 0 (x) degree of freedom.
+bc_dof = [0,1]
+
+# The nodes associated with this boundary condition have the name
+# 'x_pos' in the mesh file.
+label = x_pos
+
+db_initial = spatialdata.spatialdb.UniformDB
+db_initial.label = Dirichlet BC +x edge
+db_initial.values = [displacement-x,displacement-y]
+db_initial.data = [1.0*m,0.0*m]
+
+# ----------------------------------------------------------------------
+# faults
+# ----------------------------------------------------------------------
+# Provide information on the fault (interface).
+[pylithapp.timedependent.interfaces]
+
+fault = pylith.faults.FaultCohesiveDynL
+
+# Define fault properties.
+[pylithapp.timedependent.interfaces.fault]
+
+# The nodes associated with this fault have the name 'fault' in the mesh file.
+label = fault
+
+# NOTE: It is possible to assign an ID number to a fault (e.g.,
+# 'id = 10').  Care must be taken when doing this, however, because the
+# assigned ID will become the material ID for the cohesive element.
+# This ID must not conflict with any of the material ID numbers for
+# volume elements.  The default ID for a fault is 100.  If you have a
+# fault in your mesh you must:
+# 1.  If you create your own fault ID, make sure it does not conflict
+#     with any of you material ID's.
+# 2.  If you use the default fault ID, make sure that none of your
+#     material ID's are equal to 100.
+
+# The quadrature for a 2D fault is 1D with a linear shape.
+quadrature.cell = pylith.feassemble.FIATSimplex
+quadrature.cell.shape = line
+
+db_initial_tractions = spatialdata.spatialdb.UniformDB
+db_initial_tractions.label = "Initial fault tractions"
+db_initial_tractions.values = [traction-shear,traction-normal]
+db_initial_tractions.data = [0.0*Pa, -10000.0*MPa]
+
+# ----------------------------------------------------------------------
+# PETSc
+# ----------------------------------------------------------------------
+# We are using all of the default settings for PETSc except for
+# specifying the block Jacobi preconditioner.  Additional PETSc
+# command-line arguments may be found in the PETSc documentation.
+[pylithapp.petsc]
+ksp_rtol = 1.0e-8
+pc_type = asm
+# Change the preconditioner settings (must turn off
+# shift_positive_definite and turn on shift_nonzero).
+sub_pc_factor_shift_positive_definite = 0
+sub_pc_factor_shift_nonzero = 
+
+ksp_monitor = true
+ksp_view = true
+#log_summary = true
+ksp_max_it = 100
+ksp_gmres_restart = 50
+#start_in_debugger = true
+
+snes_monitor = true
+snes_view = true
+ksp_converged_reason = true
+snes_converged_reason = true
+
+# ----------------------------------------------------------------------
+# output
+# ----------------------------------------------------------------------
+# Give basename for VTK domain output of solution over domain.
+[pylithapp.problem.formulation.output.output.writer]
+filename = tri3-opening.vtk
+
+# Give basename for VTK fault output.
+[pylithapp.timedependent.interfaces.fault.output]
+writer.filename = tri3-opening-fault.vtk
+vertex_info_fields = [strike_dir,normal_dir,initial_traction]
+
+# Give basename for VTK output of state variables.
+[pylithapp.timedependent.materials.material.output]
+cell_filter = pylith.meshio.CellFilterAvgMesh
+writer.filename = tri3-opening-statevars.vtk

Added: short/3D/PyLith/trunk/playpen/friction/tri3/shear-sliding.cfg
===================================================================
--- short/3D/PyLith/trunk/playpen/friction/tri3/shear-sliding.cfg	                        (rev 0)
+++ short/3D/PyLith/trunk/playpen/friction/tri3/shear-sliding.cfg	2009-12-16 06:33:35 UTC (rev 16103)
@@ -0,0 +1,243 @@
+# -*- Python -*-
+
+# The settings in this file (pylithapp.cfg) will be read automatically
+# by pylith, as long as the file is placed in the run directory.
+
+# The settings in this file will override any settings in:
+# PREFIX/etc/pylithapp.cfg
+# $HOME/.pyre/pylithapp/pylithapp.cfg
+
+# The settings in this file will be overridden by any .cfg file given
+# on the command line or by any command line settings.
+
+[pylithapp]
+
+# ----------------------------------------------------------------------
+# journal
+# ----------------------------------------------------------------------
+# The settings below turn on journal info for the specified components.
+# If you want less output to stdout, you can turn these off.
+[pylithapp.journal.info]
+timedependent = 1
+implicit = 1
+petsc = 1
+solvernonlinear = 1
+meshioascii = 1
+homogeneous = 1
+elasticityimplicit = 1
+fiatlagrange = 1
+quadrature1d = 1
+faultcohesivedyn = 1
+
+# ----------------------------------------------------------------------
+# mesh_generator
+# ----------------------------------------------------------------------
+# The settings below control the mesh generation (importing mesh info).
+# Turn on debugging output for mesh generation.
+[pylithapp.mesh_generator]
+debug = 0
+
+# This component specification means we are using PyLith ASCII format,
+# and we then specify the filename and number of space dimensions for
+# the mesh.
+[pylithapp.mesh_generator.reader]
+filename = tri3.mesh
+coordsys.space_dim = 2
+
+# ----------------------------------------------------------------------
+# problem
+# ----------------------------------------------------------------------
+# Specify the problem settings.
+# This is a time-dependent problem, so we select this as our problem type.
+# We select a total time of 0 sec, and a time step size of 1 sec, so we
+# are performing a single time step.
+# The spatial dimension for this problem is 2.
+# For an implicit formulation (using implicit.cfg), we will perform 1
+# implicit time step from t = -1.0 to t = 0.0 (elastic solution step).
+[pylithapp.timedependent]
+dimension = 2
+normalizer.length_scale = 1.0*m
+formulation = pylith.problems.Implicit
+formulation.solver = pylith.problems.SolverNonlinear
+
+# Set bc to an array with 2 boundary conditions: 'x_neg', 'x_pos'
+bc = [x_neg,x_pos,y_pos_fault,y_neg_fault]
+bc.x_pos = pylith.bc.DirichletBoundary
+bc.y_pos_fault = pylith.bc.Neumann
+bc.y_neg_fault = pylith.bc.Neumann
+
+# Set interfaces to an array with 1 fault: 'fault'.
+interfaces = [fault]
+
+
+[pylithapp.timedependent.formulation.time_step]
+total_time = 0.0*s
+dt = 1.0*s
+
+
+# ----------------------------------------------------------------------
+# materials
+# ----------------------------------------------------------------------
+# Specify the material information for the problem.
+# The material type is isotropic elastic formulated for plane strain.
+[pylithapp.timedependent.materials]
+material = pylith.materials.ElasticPlaneStrain
+
+[pylithapp.timedependent.materials.material]
+
+# We give a label of 'elastic material' to this material.
+label = elastic material
+
+# The cells associated with this material are given a material ID of 0
+# in the mesh file.
+id = 0
+
+# The properties for this material are given in the spatial database file
+# 'matelastic2D.spatialdb'.
+db_properties.iohandler.filename = matelastic2D.spatialdb
+
+# We are doing 2D quadrature for a triangle.
+quadrature.cell = pylith.feassemble.FIATSimplex
+quadrature.cell.shape = triangle
+
+# ----------------------------------------------------------------------
+# boundary conditions
+# ----------------------------------------------------------------------
+# Provide information on the boundary conditions.
+
+# Boundary conditions to be applied to the negative x-side of the mesh.
+[pylithapp.timedependent.bc.x_neg]
+
+# We are fixing the 0 (x) and 1 (y) degrees of freedom.
+bc_dof = [0,1]
+
+# The nodes associated with this boundary condition have the name
+# 'x_neg' in the mesh file.
+label = x_neg
+
+# Boundary conditions to be applied to the positive x-side of the mesh.
+[pylithapp.timedependent.bc.x_pos]
+
+# We are fixing the 0 (x) and prescribing 1 (y) degree of freedom.
+bc_dof = [0,1]
+
+# The nodes associated with this boundary condition have the name
+# 'x_pos' in the mesh file.
+label = x_pos
+
+db_initial = spatialdata.spatialdb.UniformDB
+db_initial.label = Dirichlet BC +x edge
+db_initial.values = [displacement-x,displacement-y]
+db_initial.data = [0.0*m,1.0*m]
+
+
+
+# Boundary conditions to be applied to the positive y-side of the mesh.
+[pylithapp.timedependent.bc.y_pos_fault]
+
+# The nodes associated with this boundary condition have the name
+# 'y_pos_fault' in the mesh file.
+label = y_pos_fault
+
+db_initial = spatialdata.spatialdb.UniformDB
+db_initial.label = Neumann BC +y edge
+db_initial.values = [traction-shear,traction-normal]
+db_initial.data = [-6000*MPa, 0.0*MPa]
+
+# 1-D simplex cell in 2-D space 
+quadrature.cell = pylith.feassemble.FIATSimplex
+quadrature.cell.shape = line
+
+# Boundary conditions to be applied to the negative y-side of the mesh.
+[pylithapp.timedependent.bc.y_neg_fault]
+
+# The nodes associated with this boundary condition have the name
+# 'y_neg_fault' in the mesh file.
+label = y_neg_fault
+
+db_initial = spatialdata.spatialdb.UniformDB
+db_initial.label = Neumann BC -y edge
+db_initial.values = [traction-shear,traction-normal]
+db_initial.data = [-6000*MPa, 0.0*MPa]
+
+# 1-D simplex cell in 2-D space 
+quadrature.cell = pylith.feassemble.FIATSimplex
+quadrature.cell.shape = line
+
+# ----------------------------------------------------------------------
+# faults
+# ----------------------------------------------------------------------
+# Provide information on the fault (interface).
+[pylithapp.timedependent.interfaces]
+
+fault = pylith.faults.FaultCohesiveDynL
+
+# Define fault properties.
+[pylithapp.timedependent.interfaces.fault]
+
+# The nodes associated with this fault have the name 'fault' in the mesh file.
+label = fault
+
+# NOTE: It is possible to assign an ID number to a fault (e.g.,
+# 'id = 10').  Care must be taken when doing this, however, because the
+# assigned ID will become the material ID for the cohesive element.
+# This ID must not conflict with any of the material ID numbers for
+# volume elements.  The default ID for a fault is 100.  If you have a
+# fault in your mesh you must:
+# 1.  If you create your own fault ID, make sure it does not conflict
+#     with any of you material ID's.
+# 2.  If you use the default fault ID, make sure that none of your
+#     material ID's are equal to 100.
+
+# The quadrature for a 2D fault is 1D with a linear shape.
+quadrature.cell = pylith.feassemble.FIATSimplex
+quadrature.cell.shape = line
+
+db_initial_tractions = spatialdata.spatialdb.UniformDB
+db_initial_tractions.label = "Initial fault tractions"
+db_initial_tractions.values = [traction-shear,traction-normal]
+db_initial_tractions.data = [0.0*Pa, -10000.0*MPa]
+
+# ----------------------------------------------------------------------
+# PETSc
+# ----------------------------------------------------------------------
+# We are using all of the default settings for PETSc except for
+# specifying the block Jacobi preconditioner.  Additional PETSc
+# command-line arguments may be found in the PETSc documentation.
+[pylithapp.petsc]
+ksp_rtol = 1.0e-8
+pc_type = asm
+# Change the preconditioner settings (must turn off
+# shift_positive_definite and turn on shift_nonzero).
+sub_pc_factor_shift_positive_definite = 0
+sub_pc_factor_shift_nonzero = 
+
+ksp_monitor = true
+ksp_view = true
+#log_summary = true
+ksp_max_it = 100
+ksp_gmres_restart = 50
+#start_in_debugger = true
+
+snes_monitor = true
+snes_view = true
+ksp_converged_reason = true
+snes_converged_reason = true
+snes_max_it = 200
+
+# ----------------------------------------------------------------------
+# output
+# ----------------------------------------------------------------------
+# Give basename for VTK domain output of solution over domain.
+[pylithapp.problem.formulation.output.output.writer]
+filename = tri3-shear-sliding.vtk
+
+# Give basename for VTK fault output.
+[pylithapp.timedependent.interfaces.fault.output]
+writer.filename = tri3-shear-sliding-fault.vtk
+vertex_info_fields = [strike_dir,normal_dir,initial_traction]
+
+# Give basename for VTK output of state variables.
+[pylithapp.timedependent.materials.material.output]
+cell_filter = pylith.meshio.CellFilterAvgMesh
+writer.filename = tri3-shear-sliding-statevars.vtk

Added: short/3D/PyLith/trunk/playpen/friction/tri3/shear-stick.cfg
===================================================================
--- short/3D/PyLith/trunk/playpen/friction/tri3/shear-stick.cfg	                        (rev 0)
+++ short/3D/PyLith/trunk/playpen/friction/tri3/shear-stick.cfg	2009-12-16 06:33:35 UTC (rev 16103)
@@ -0,0 +1,256 @@
+# -*- Python -*-
+
+# The settings in this file (pylithapp.cfg) will be read automatically
+# by pylith, as long as the file is placed in the run directory.
+
+# The settings in this file will override any settings in:
+# PREFIX/etc/pylithapp.cfg
+# $HOME/.pyre/pylithapp/pylithapp.cfg
+
+# The settings in this file will be overridden by any .cfg file given
+# on the command line or by any command line settings.
+
+[pylithapp]
+
+# ----------------------------------------------------------------------
+# journal
+# ----------------------------------------------------------------------
+# The settings below turn on journal info for the specified components.
+# If you want less output to stdout, you can turn these off.
+[pylithapp.journal.info]
+timedependent = 1
+implicit = 1
+petsc = 1
+solvernonlinear = 1
+meshioascii = 1
+homogeneous = 1
+elasticityimplicit = 1
+fiatlagrange = 1
+quadrature1d = 1
+faultcohesivedyn = 1
+
+# ----------------------------------------------------------------------
+# mesh_generator
+# ----------------------------------------------------------------------
+# The settings below control the mesh generation (importing mesh info).
+# Turn on debugging output for mesh generation.
+[pylithapp.mesh_generator]
+debug = 0
+
+# This component specification means we are using PyLith ASCII format,
+# and we then specify the filename and number of space dimensions for
+# the mesh.
+[pylithapp.mesh_generator.reader]
+filename = tri3.mesh
+coordsys.space_dim = 2
+
+# ----------------------------------------------------------------------
+# problem
+# ----------------------------------------------------------------------
+# Specify the problem settings.
+# This is a time-dependent problem, so we select this as our problem type.
+# We select a total time of 0 sec, and a time step size of 1 sec, so we
+# are performing a single time step.
+# The spatial dimension for this problem is 2.
+# For an implicit formulation (using implicit.cfg), we will perform 1
+# implicit time step from t = -1.0 to t = 0.0 (elastic solution step).
+[pylithapp.timedependent]
+dimension = 2
+normalizer.length_scale = 1.0*m
+formulation = pylith.problems.Implicit
+formulation.solver = pylith.problems.SolverNonlinear
+
+# Set bc to an array with 3 boundary conditions: 'x_neg', 'x_pos_disp', 'x_pos_tract'
+bc = [x_neg,x_pos_disp,x_pos_tract,y_pos_fault,y_neg_fault]
+bc.x_pos_tract = pylith.bc.Neumann
+bc.y_pos_fault = pylith.bc.Neumann
+bc.y_neg_fault = pylith.bc.Neumann
+
+# Set interfaces to an array with 1 fault: 'fault'.
+interfaces = [fault]
+
+
+[pylithapp.timedependent.formulation.time_step]
+total_time = 0.0*s
+dt = 1.0*s
+
+
+# ----------------------------------------------------------------------
+# materials
+# ----------------------------------------------------------------------
+# Specify the material information for the problem.
+# The material type is isotropic elastic formulated for plane strain.
+[pylithapp.timedependent.materials]
+material = pylith.materials.ElasticPlaneStrain
+
+[pylithapp.timedependent.materials.material]
+
+# We give a label of 'elastic material' to this material.
+label = elastic material
+
+# The cells associated with this material are given a material ID of 0
+# in the mesh file.
+id = 0
+
+# The properties for this material are given in the spatial database file
+# 'matelastic2D.spatialdb'.
+db_properties.iohandler.filename = matelastic2D.spatialdb
+
+# We are doing 2D quadrature for a triangle.
+quadrature.cell = pylith.feassemble.FIATSimplex
+quadrature.cell.shape = triangle
+
+# ----------------------------------------------------------------------
+# boundary conditions
+# ----------------------------------------------------------------------
+# Provide information on the boundary conditions.
+
+# Boundary conditions to be applied to the negative x-side of the mesh.
+[pylithapp.timedependent.bc.x_neg]
+
+# We are fixing the 0 (x) and 1 (y) degrees of freedom.
+bc_dof = [0,1]
+
+# The nodes associated with this boundary condition have the name
+# 'x_neg' in the mesh file.
+label = x_neg
+
+# Boundary conditions to be applied to the positive x-side of the mesh.
+[pylithapp.timedependent.bc.x_pos_disp]
+
+# We are fixing the 0 (x) degree of freedom.
+bc_dof = [0]
+
+# The nodes associated with this boundary condition have the name
+# 'x_pos' in the mesh file.
+label = x_pos
+
+# Boundary conditions to be applied to the positive x-side of the mesh.
+[pylithapp.timedependent.bc.x_pos_tract]
+
+# The nodes associated with this boundary condition have the name
+# 'x_pos' in the mesh file.
+label = x_pos
+
+db_initial = spatialdata.spatialdb.UniformDB
+db_initial.label = Neumann BC +x edge
+db_initial.values = [traction-shear,traction-normal]
+db_initial.data = [1000.0*MPa,0.0*MPa]
+
+# 1-D simplex cell in 2-D space 
+quadrature.cell = pylith.feassemble.FIATSimplex
+quadrature.cell.shape = line
+
+
+
+
+# Boundary conditions to be applied to the positive y-side of the mesh.
+[pylithapp.timedependent.bc.y_pos_fault]
+
+# The nodes associated with this boundary condition have the name
+# 'y_pos_fault' in the mesh file.
+label = y_pos_fault
+
+db_initial = spatialdata.spatialdb.UniformDB
+db_initial.label = Neumann BC +y edge
+db_initial.values = [traction-shear,traction-normal]
+db_initial.data = [-1000.0*MPa, 0.0*MPa]
+
+# 1-D simplex cell in 2-D space 
+quadrature.cell = pylith.feassemble.FIATSimplex
+quadrature.cell.shape = line
+
+# Boundary conditions to be applied to the negative y-side of the mesh.
+[pylithapp.timedependent.bc.y_neg_fault]
+
+# The nodes associated with this boundary condition have the name
+# 'y_neg_fault' in the mesh file.
+label = y_neg_fault
+
+db_initial = spatialdata.spatialdb.UniformDB
+db_initial.label = Neumann BC -y edge
+db_initial.values = [traction-shear,traction-normal]
+db_initial.data = [-1000.0*MPa, 0.0*MPa]
+
+# 1-D simplex cell in 2-D space 
+quadrature.cell = pylith.feassemble.FIATSimplex
+quadrature.cell.shape = line
+
+
+
+# ----------------------------------------------------------------------
+# faults
+# ----------------------------------------------------------------------
+# Provide information on the fault (interface).
+[pylithapp.timedependent.interfaces]
+
+fault = pylith.faults.FaultCohesiveDynL
+
+# Define fault properties.
+[pylithapp.timedependent.interfaces.fault]
+
+# The nodes associated with this fault have the name 'fault' in the mesh file.
+label = fault
+
+# NOTE: It is possible to assign an ID number to a fault (e.g.,
+# 'id = 10').  Care must be taken when doing this, however, because the
+# assigned ID will become the material ID for the cohesive element.
+# This ID must not conflict with any of the material ID numbers for
+# volume elements.  The default ID for a fault is 100.  If you have a
+# fault in your mesh you must:
+# 1.  If you create your own fault ID, make sure it does not conflict
+#     with any of you material ID's.
+# 2.  If you use the default fault ID, make sure that none of your
+#     material ID's are equal to 100.
+
+# The quadrature for a 2D fault is 1D with a linear shape.
+quadrature.cell = pylith.feassemble.FIATSimplex
+quadrature.cell.shape = line
+
+db_initial_tractions = spatialdata.spatialdb.UniformDB
+db_initial_tractions.label = "Initial fault tractions"
+db_initial_tractions.values = [traction-shear,traction-normal]
+db_initial_tractions.data = [0.0*Pa, -10000.0*MPa]
+
+# ----------------------------------------------------------------------
+# PETSc
+# ----------------------------------------------------------------------
+# We are using all of the default settings for PETSc except for
+# specifying the block Jacobi preconditioner.  Additional PETSc
+# command-line arguments may be found in the PETSc documentation.
+[pylithapp.petsc]
+ksp_rtol = 1.0e-8
+pc_type = asm
+# Change the preconditioner settings (must turn off
+# shift_positive_definite and turn on shift_nonzero).
+sub_pc_factor_shift_positive_definite = 0
+sub_pc_factor_shift_nonzero = 
+
+ksp_monitor = true
+ksp_view = true
+#log_summary = true
+ksp_max_it = 100
+ksp_gmres_restart = 50
+#start_in_debugger = true
+
+snes_monitor = true
+snes_view = true
+ksp_converged_reason = true
+snes_converged_reason = true
+
+# ----------------------------------------------------------------------
+# output
+# ----------------------------------------------------------------------
+# Give basename for VTK domain output of solution over domain.
+[pylithapp.problem.formulation.output.output.writer]
+filename = tri3-shear-stick.vtk
+
+# Give basename for VTK fault output.
+[pylithapp.timedependent.interfaces.fault.output]
+writer.filename = tri3-shear-stick-fault.vtk
+vertex_info_fields = [strike_dir,normal_dir,initial_traction]
+
+# Give basename for VTK output of state variables.
+[pylithapp.timedependent.materials.material.output]
+cell_filter = pylith.meshio.CellFilterAvgMesh
+writer.filename = tri3-shear-stick-statevars.vtk

Added: short/3D/PyLith/trunk/playpen/friction/tri3/tri3.mesh
===================================================================
--- short/3D/PyLith/trunk/playpen/friction/tri3/tri3.mesh	                        (rev 0)
+++ short/3D/PyLith/trunk/playpen/friction/tri3/tri3.mesh	2009-12-16 06:33:35 UTC (rev 16103)
@@ -0,0 +1,163 @@
+// Finite-element mesh with two quad4 cells.
+//
+//
+//  1 ----- 3 ----- 5
+//  |       |       |
+//  |       |       |
+//  |       |       |
+//  0 ----- 2 ----- 4
+//
+// Each edge has a length of 1.0.
+//
+mesh = {
+
+  // Dimenion associated with topology of mesh.
+  dimension = 2
+
+  // We are using zero-based indexing (default, C style) rather than 
+  // one-based (Fortran style) indexing.
+  use-index-zero = true
+
+  // Vertices in the mesh.
+  vertices = {
+
+    // Dimension of coordinate system for vertices.
+    dimension = 2
+
+    // Number of vertices in mesh.
+    count = 6
+
+    // Coordinates are listed as:
+    // Vertex number (starting from zero), x-coord, y-coord
+    // Use coordinate units that are consistent with the other units used.
+    coordinates = {
+             0     -1.0 -0.5
+             1     -1.0  0.5
+             2      0.0 -0.5
+             3      0.0  0.5
+             4      1.0 -0.5
+             5      1.0  0.5
+    }
+  }
+
+  // Finite-element cells in the mesh.
+  cells = {
+
+    // There are 4 cells.
+    count = 4
+
+    // These are linear triangular cells, so there are 3 corners per cell.
+    num-corners = 3
+
+    // List the vertices composing each cell,
+    // moving counter-clockwise around the cell.
+    // List the information as:
+    // Cell number (starting from zero), vertex 0, vertex 1, vertex 2
+    simplices = {
+             0       0  2  1
+             1       2  3  1
+	     2	     4  5  2
+	     3	     5  3  2
+    }
+
+    // List the material ID's associated with each cell.
+    // Different ID's may be used to specify a different material type, or
+    // to use a different spatial database for each material ID.
+    // In this example, cells 0 and 1 both are associated with material ID 0.
+    material-ids = {
+             0   0
+             1   0
+	     2   0
+	     3   0
+    }
+  }
+
+  // Here we list different groups (cells or vertices) that we want to 
+  // associate with a particular name.
+
+  // This group of vertices may be used to define a fault.
+  // There are 2 vertices corresponding to indices 2 and 3.
+  group = {
+    name = fault
+    type = vertices
+    count = 2
+    indices = {
+      2
+      3
+    }
+  }
+
+  // This group of vertices may be used to specify boundary conditions.
+  // There are 2 vertices corresponding to indices 0 and 4.
+  group = {
+    name = y_neg
+    type = vertices
+    count = 2
+    indices = {
+      0
+      4
+    }
+  }
+
+  // This group of vertices may be used to specify boundary conditions.
+  // There are 3 vertices corresponding to indices 0, 2, and 4.
+  group = {
+    name = y_neg_fault
+    type = vertices
+    count = 3
+    indices = {
+      0
+      2
+      4
+    }
+  }
+
+  // This group of vertices may be used to specify boundary conditions.
+  // There are 2 vertices corresponding to indices 0 and 1.
+  group = {
+    name = x_neg
+    type = vertices
+    count = 2
+    indices = {
+      0
+      1
+    }
+  }
+
+  // This group of vertices may be used to specify boundary conditions.
+  // There are 2 vertices corresponding to indices 4 and 5.
+  group = {
+    name = x_pos
+    type = vertices
+    count = 2
+    indices = {
+      4
+      5
+    }
+  }
+
+  // This group of vertices may be used to specify boundary conditions.
+  // There is 2 vertex corresponding to index 3 and 5.
+  group = {
+    name = y_pos
+    type = vertices
+    count = 2
+    indices = {
+      1
+      5
+    }
+  }
+
+  // This group of vertices may be used to specify boundary conditions.
+  // There is 3 vertex corresponding to index 1, 3 and 5.
+  group = {
+    name = y_pos_fault
+    type = vertices
+    count = 3
+    indices = {
+      1
+      3
+      5
+    }
+  }
+}

Modified: short/3D/PyLith/trunk/playpen/friction/twohex8/shear-sliding.cfg
===================================================================
--- short/3D/PyLith/trunk/playpen/friction/twohex8/shear-sliding.cfg	2009-12-14 04:15:30 UTC (rev 16102)
+++ short/3D/PyLith/trunk/playpen/friction/twohex8/shear-sliding.cfg	2009-12-16 06:33:35 UTC (rev 16103)
@@ -37,6 +37,7 @@
 
 # Set bc to an array with 2 boundary conditions: 'x_neg' and 'x_pos'.
 bc = [x_neg,x_pos,y_pos,y_neg,z_pos,z_neg]
+#bc = [x_neg,x_pos,y_pos,y_neg]
 bc.x_pos = pylith.bc.DirichletBoundary
 bc.y_pos = pylith.bc.Neumann
 bc.y_neg = pylith.bc.Neumann
@@ -92,7 +93,7 @@
 # Boundary conditions to be applied to the positive x-side of the mesh.
 [pylithapp.timedependent.bc.x_pos]
 
-# We are  fixing 0 (x) and prescribing 1 (y) and 2 (z)degrees of freedom.
+# We are  fixing 0 (x) and prescribing 1 (y) and 2 (z) degrees of freedom.
 bc_dof = [0,1,2]
 
 # The nodes associated with this boundary condition have the name
@@ -108,6 +109,9 @@
 
 
 
+
+
+
 # Boundary conditions to be applied to the positive y-side of the mesh.
 [pylithapp.timedependent.bc.y_pos]
 
@@ -142,6 +146,8 @@
 quadrature.cell.dimension = 2
 
 
+
+
 # Boundary conditions to be applied to the positive z-side of the mesh.
 [pylithapp.timedependent.bc.z_pos]
 

Modified: short/3D/PyLith/trunk/playpen/friction/twohex8/shear-stick.cfg
===================================================================
--- short/3D/PyLith/trunk/playpen/friction/twohex8/shear-stick.cfg	2009-12-14 04:15:30 UTC (rev 16102)
+++ short/3D/PyLith/trunk/playpen/friction/twohex8/shear-stick.cfg	2009-12-16 06:33:35 UTC (rev 16103)
@@ -36,8 +36,12 @@
 formulation.solver = pylith.problems.SolverNonlinear
 
 # Set bc to an array with 3 boundary conditions: 'x_neg', 'x_pos_disp', 'x_pos_tract'
-bc = [x_neg,x_pos_disp,x_pos_tract]
+bc = [x_neg,x_pos_disp,x_pos_tract,y_pos,y_neg,z_pos,z_neg]
 bc.x_pos_tract = pylith.bc.Neumann
+bc.y_pos = pylith.bc.Neumann
+bc.y_neg = pylith.bc.Neumann
+bc.z_pos = pylith.bc.Neumann
+bc.z_neg = pylith.bc.Neumann
 
 # Set interfaces to an array with 1 fault: 'fault'.
 interfaces = [fault]
@@ -105,12 +109,95 @@
 db_initial = spatialdata.spatialdb.UniformDB
 db_initial.label = Neumann BC +x edge
 db_initial.values = [traction-shear-horiz,traction-shear-vert,traction-normal]
-db_initial.data = [1000.0*MPa,2000.0*MPa,0.0*MPa]
+db_initial.data = [3000.0*MPa,2000.0*MPa,0.0*MPa]
 
 # Set cell type to quadrilateral (2-d Lagrange).
 quadrature.cell = pylith.feassemble.FIATLagrange
 quadrature.cell.dimension = 2
 
+
+
+# Boundary conditions to be applied to the positive y-side of the mesh.
+[pylithapp.timedependent.bc.y_pos]
+
+# The nodes associated with this boundary condition have the name
+# 'y_pos' in the mesh file.
+label = y_pos
+
+db_initial = spatialdata.spatialdb.UniformDB
+db_initial.label = Neumann BC +y edge
+db_initial.values = [traction-shear-horiz,traction-shear-vert,traction-normal]
+db_initial.data = [-3000.0*MPa,0.0*MPa,0.0*MPa]
+
+# Set cell type to quadrilateral (2-d Lagrange).
+quadrature.cell = pylith.feassemble.FIATLagrange
+quadrature.cell.dimension = 2
+
+
+
+# Boundary conditions to be applied to the negative y-side of the mesh.
+[pylithapp.timedependent.bc.y_neg]
+
+# The nodes associated with this boundary condition have the name
+# 'y_neg' in the mesh file.
+label = y_neg
+
+db_initial = spatialdata.spatialdb.UniformDB
+db_initial.label = Neumann BC -y edge
+db_initial.values = [traction-shear-horiz,traction-shear-vert,traction-normal]
+db_initial.data = [-3000.0*MPa,0.0*MPa,0.0*MPa]
+
+# Set cell type to quadrilateral (2-d Lagrange).
+quadrature.cell = pylith.feassemble.FIATLagrange
+quadrature.cell.dimension = 2
+
+
+
+
+# Boundary conditions to be applied to the positive z-side of the mesh.
+[pylithapp.timedependent.bc.z_pos]
+
+# The nodes associated with this boundary condition have the name
+# 'z_pos' in the mesh file.
+label = z_pos
+
+up_dir = [0, 1, 0]
+
+db_initial = spatialdata.spatialdb.UniformDB
+db_initial.label = Neumann BC +z edge
+db_initial.values = [traction-shear-horiz,traction-shear-vert,traction-normal]
+db_initial.data = [2000.0*MPa,0.0*MPa,0.0*MPa]
+
+# Set cell type to quadrilateral (2-d Lagrange).
+quadrature.cell = pylith.feassemble.FIATLagrange
+quadrature.cell.dimension = 2
+
+
+
+# Boundary conditions to be applied to the negative z-side of the mesh.
+[pylithapp.timedependent.bc.z_neg]
+
+# The nodes associated with this boundary condition have the name
+# 'z_neg' in the mesh file.
+label = z_neg
+
+up_dir = [0, 1, 0]
+
+db_initial = spatialdata.spatialdb.UniformDB
+db_initial.label = Neumann BC -z edge
+db_initial.values = [traction-shear-horiz,traction-shear-vert,traction-normal]
+db_initial.data = [2000.0*MPa,0.0*MPa,0.0*MPa]
+
+# Set cell type to quadrilateral (2-d Lagrange).
+quadrature.cell = pylith.feassemble.FIATLagrange
+quadrature.cell.dimension = 2
+
+
+
+
+
+
+
 # ----------------------------------------------------------------------
 # faults
 # ----------------------------------------------------------------------



More information about the CIG-COMMITS mailing list