[cig-commits] r19407 - in short/3D/PyLith/benchmarks/trunk/dynamic/scecdynrup: . tpv18

brad at geodynamics.org brad at geodynamics.org
Fri Jan 20 17:11:42 PST 2012


Author: brad
Date: 2012-01-20 17:11:41 -0800 (Fri, 20 Jan 2012)
New Revision: 19407

Added:
   short/3D/PyLith/benchmarks/trunk/dynamic/scecdynrup/tpv18/
   short/3D/PyLith/benchmarks/trunk/dynamic/scecdynrup/tpv18/create_friction.py
   short/3D/PyLith/benchmarks/trunk/dynamic/scecdynrup/tpv18/create_stresses.py
   short/3D/PyLith/benchmarks/trunk/dynamic/scecdynrup/tpv18/createbc.jou
   short/3D/PyLith/benchmarks/trunk/dynamic/scecdynrup/tpv18/friction_branch.spatialdb
   short/3D/PyLith/benchmarks/trunk/dynamic/scecdynrup/tpv18/geometry.jou
   short/3D/PyLith/benchmarks/trunk/dynamic/scecdynrup/tpv18/gradient.jou
   short/3D/PyLith/benchmarks/trunk/dynamic/scecdynrup/tpv18/hex8.cfg
   short/3D/PyLith/benchmarks/trunk/dynamic/scecdynrup/tpv18/matprops.spatialdb
   short/3D/PyLith/benchmarks/trunk/dynamic/scecdynrup/tpv18/pylithapp.cfg
   short/3D/PyLith/benchmarks/trunk/dynamic/scecdynrup/tpv18/tet4.cfg
   short/3D/PyLith/benchmarks/trunk/dynamic/scecdynrup/tpv18/tet4_200m.jou
   short/3D/PyLith/benchmarks/trunk/dynamic/scecdynrup/tpv18/tpv18.cfg
   short/3D/PyLith/benchmarks/trunk/dynamic/scecdynrup/tpv18/tpv18_hex8_100m.cfg
   short/3D/PyLith/benchmarks/trunk/dynamic/scecdynrup/tpv18/tpv18_tet4_100m.cfg
   short/3D/PyLith/benchmarks/trunk/dynamic/scecdynrup/tpv18/tpv18_tet4_200m.cfg
Log:
Added tpv18.

Added: short/3D/PyLith/benchmarks/trunk/dynamic/scecdynrup/tpv18/create_friction.py
===================================================================
--- short/3D/PyLith/benchmarks/trunk/dynamic/scecdynrup/tpv18/create_friction.py	                        (rev 0)
+++ short/3D/PyLith/benchmarks/trunk/dynamic/scecdynrup/tpv18/create_friction.py	2012-01-21 01:11:41 UTC (rev 19407)
@@ -0,0 +1,100 @@
+#!/usr/bin/env python
+#
+# ----------------------------------------------------------------------
+#
+#                           Brad T. Aagaard
+#                        U.S. Geological Survey
+#
+# ----------------------------------------------------------------------
+#
+
+# Create spatial variation of friction parameters for TPV18-21 on main
+# fault.
+
+hypoy = 2.0e+3-8.0e+3
+hypoz = -7.5e+3
+vs = 3300.0
+
+# ----------------------------------------------------------------------
+import numpy
+from spatialdata.spatialdb.SimpleIOAscii import SimpleIOAscii
+from spatialdata.geocoords.CSCart import CSCart
+
+y = 1.0e+3*numpy.arange(-15.0, +15.001, 0.1)
+z = 1.0e+3*numpy.arange(0.0, -15.001, -0.1)
+
+nptsy = y.shape[0]
+nptsz = z.shape[0]
+
+points = numpy.zeros( (nptsy*nptsz, 3), dtype=numpy.float64)
+for i in xrange(nptsz):
+    istart = i
+    istop = i+nptsy*nptsz
+    points[istart:istop:nptsz,1] = y
+for i in xrange(nptsy):
+    istart = i*nptsz
+    istop = (i+1)*nptsz
+    points[istart:istop,2] = z
+
+r = ( (points[:,1]-hypoy)**2 +
+      (points[:,2]-hypoz)**2)**0.5
+
+coefStatic = 0.6*numpy.ones( (nptsy*nptsz), dtype=numpy.float64)
+coefDyn = 0.12*numpy.ones( (nptsy*nptsz), dtype=numpy.float64)
+
+mask1 = r <= 360.0
+mask2 = numpy.bitwise_and(r > 360.0, r <= 3600.0)
+mask3 = r > 3600.0
+d0 = mask1*0.04 + mask2*r/9000.0 + mask3*0.40
+
+
+mask1 = points[:,2] > -3000.0
+mask2 = points[:,2] <= -3000.0
+cohesion = mask1*(0.20 + 0.0006*(points[:,2]+3000.0)) + mask2*0.20
+
+mask1 = r <= 720.0
+mask2 = numpy.bitwise_and(r > 720.0, r <= 900.0)
+mask3 = r > 900.0
+weakTime = mask1*r/(0.7*vs) + mask2*(720.0/(0.7*vs) + (r-720)/(0.35*vs)) + mask3*1.0e+9
+
+mask1 = points[:,1] <= -14.999e+3
+coefStatic[mask1] = 1.0e+6
+mask1 = points[:,1] >= +14.999e+3
+coefStatic[mask1] = 1.0e+6
+mask1 = points[:,2] <= -14.999e+3
+coefStatic[mask1] = 1.0e+6
+
+
+cs = CSCart()
+cs._configure()
+cs.initialize()
+
+writer = SimpleIOAscii()
+writer.inventory.filename = "empty"
+writer._configure()
+
+writer.filename("friction_main.spatialdb")
+dataOut = {'points': points,
+           'coordsys': cs,
+           'data_dim': 2,
+           'values': [{'name': 'static-coefficient', 
+                       'units': 'None',
+                       'data': coefStatic},
+                      {'name': 'dynamic-coefficient', 
+                       'units': 'None',
+                       'data': coefDyn},
+                      {'name': 'slip-weakening-parameter', 
+                       'units': 'm',
+                       'data': d0},
+                      {'name': 'cohesion', 
+                       'units': 'Pa',
+                       'data': cohesion},
+                      {'name': 'weakening-time', 
+                       'units': 's',
+                       'data': weakTime},
+                      ],
+           }
+writer.write(dataOut)
+
+
+# End of file


Property changes on: short/3D/PyLith/benchmarks/trunk/dynamic/scecdynrup/tpv18/create_friction.py
___________________________________________________________________
Name: svn:executable
   + *

Added: short/3D/PyLith/benchmarks/trunk/dynamic/scecdynrup/tpv18/create_stresses.py
===================================================================
--- short/3D/PyLith/benchmarks/trunk/dynamic/scecdynrup/tpv18/create_stresses.py	                        (rev 0)
+++ short/3D/PyLith/benchmarks/trunk/dynamic/scecdynrup/tpv18/create_stresses.py	2012-01-21 01:11:41 UTC (rev 19407)
@@ -0,0 +1,166 @@
+#!/usr/bin/env python
+#
+# ----------------------------------------------------------------------
+#
+#                           Brad T. Aagaard
+#                        U.S. Geological Survey
+#
+# ----------------------------------------------------------------------
+#
+
+# Create spatial variation of initial stresses and fault tractions for
+# TPV18-21. Initial stresses are only used in TPV19 and TPV21.
+
+sim = "tpv18"
+
+# ----------------------------------------------------------------------
+# Parameters from benchmark description
+gacc = 9.8
+density = 2700
+densityW = 1000.0
+
+if sim == "tpv18" or sim == "tpv19":
+    b22 = 0.44327040
+    b33 = 0.50911055
+    b23 = -0.15487679
+elif sim == "tpv20" or sim == "tpv21":
+    b22 = 0.67738619
+    b33 = 0.27499476
+    b23 = 0.09812971
+else:
+    raise ValueError("Unknown simulation '%s'." % sim)
+
+
+# ----------------------------------------------------------------------
+import numpy
+from spatialdata.spatialdb.SimpleIOAscii import SimpleIOAscii
+from spatialdata.geocoords.CSCart import CSCart
+
+z = numpy.array([0.0, -15.0e+3, -50e+3], dtype=numpy.float64)
+points = numpy.zeros( (z.shape[0], 3), dtype=numpy.float64)
+points[:,2] = z
+
+cs = CSCart()
+cs._configure()
+cs.initialize()
+
+
+mask1 = z >= -15.0e+3
+
+Pf = -densityW*gacc*z
+Szz = density*gacc*z
+
+Syy = mask1*(b22*(Szz+Pf)-Pf) + ~mask1*Szz
+Sxx = mask1*(b33*(Szz+Pf)-Pf) + ~mask1*Szz
+Sxy = mask1*(-b23*(Szz+Pf)) + ~mask1*0.0
+
+Syz = 0.0*z
+Sxz = 0.0*z
+
+writer = SimpleIOAscii()
+writer.inventory.filename = "empty"
+writer._configure()
+
+
+# ----------------------------------------------------------------------
+# Initial stresses in domain
+writer.filename("%s_initial_stress.spatialdb" % sim)
+dataOut = {'points': points,
+           'coordsys': cs,
+           'data_dim': 1,
+           'values': [{'name': 'stress-xx', 
+                       'units': 'Pa',
+                       'data': Sxx},
+                      {'name': 'stress-yy', 
+                       'units': 'Pa',
+                       'data': Syy},
+                      {'name': 'stress-zz', 
+                       'units': 'Pa',
+                       'data': Szz},
+                      {'name': 'stress-xy', 
+                       'units': 'Pa',
+                       'data': Sxy},
+                      {'name': 'stress-yz', 
+                       'units': 'Pa',
+                       'data': Syz},
+                      {'name': 'stress-xz', 
+                       'units': 'Pa',
+                       'data': Sxz},
+                      ],
+           }
+writer.write(dataOut)
+
+
+# ----------------------------------------------------------------------
+# Initial tractions on main fault
+
+# Fault normal
+nx = 1.0
+ny = 0.0
+nz = 0.0
+
+# normal traction is Tx
+tractionNormal = Sxx*nx + Sxy*ny + Sxz*nz
+
+# LL shear traction is Ty
+tractionShearLL = Sxy*nx + Syy*ny + Syz*nz
+
+# Up-dip shear traction is Tz
+tractionShearUD = Sxz*nx + Syz*ny + Szz*nz
+
+writer.filename("%s_traction_main.spatialdb" % sim)
+dataOut = {'points': points,
+           'coordsys': cs,
+           'data_dim': 1,
+           'values': [{'name': 'traction-shear-leftlateral', 
+                       'units': 'Pa',
+                       'data': tractionShearLL},
+                      {'name': 'traction-shear-updip', 
+                       'units': 'Pa',
+                       'data': tractionShearUD},
+                      {'name': 'traction-normal', 
+                       'units': 'Pa',
+                       'data': tractionNormal},
+                      ],
+           }
+writer.write(dataOut)
+
+
+# ----------------------------------------------------------------------
+# Initial tractions on branch fault
+
+# Fault normal
+from math import sin,cos,pi
+branchAngle = 30.0/180.0*pi
+nx = cos(branchAngle)
+ny = -sin(branchAngle)
+nz = 0.0
+
+# normal traction is Tx
+tractionNormal = Sxx*nx + Sxy*ny + Sxz*nz
+
+# LL shear traction is Ty
+tractionShearLL = Sxy*nx + Syy*ny + Syz*nz
+
+# Up-dip shear traction is Tz
+tractionShearUD = Sxz*nx + Syz*ny + Szz*nz
+
+writer.filename("%s_traction_branch.spatialdb" % sim)
+dataOut = {'points': points,
+           'coordsys': cs,
+           'data_dim': 1,
+           'values': [{'name': 'traction-shear-leftlateral', 
+                       'units': 'Pa',
+                       'data': tractionShearLL},
+                      {'name': 'traction-shear-updip', 
+                       'units': 'Pa',
+                       'data': tractionShearUD},
+                      {'name': 'traction-normal', 
+                       'units': 'Pa',
+                       'data': tractionNormal},
+                      ],
+           }
+writer.write(dataOut)
+
+
+# End of file


Property changes on: short/3D/PyLith/benchmarks/trunk/dynamic/scecdynrup/tpv18/create_stresses.py
___________________________________________________________________
Name: svn:executable
   + *

Added: short/3D/PyLith/benchmarks/trunk/dynamic/scecdynrup/tpv18/createbc.jou
===================================================================
--- short/3D/PyLith/benchmarks/trunk/dynamic/scecdynrup/tpv18/createbc.jou	                        (rev 0)
+++ short/3D/PyLith/benchmarks/trunk/dynamic/scecdynrup/tpv18/createbc.jou	2012-01-21 01:11:41 UTC (rev 19407)
@@ -0,0 +1,84 @@
+# ----------------------------------------------------------------------
+# Create blocks for materials
+# ----------------------------------------------------------------------
+block 1 volume 1 3 5
+block 1 name "elastic"
+
+# ----------------------------------------------------------------------
+# Create nodeset for main fault
+# ----------------------------------------------------------------------
+group "main_fault" add node in fault_surface_mainA
+group "main_fault" add node in fault_surface_mainB
+nodeset 100 group main_fault
+nodeset 100 name "main_fault"
+
+# ----------------------------------------------------------------------
+# Create nodeset for branch fault
+# ----------------------------------------------------------------------
+group "branch_fault" add node in fault_surface_branch
+group "branch_fault" remove node in main_fault
+nodeset 101 group branch_fault
+nodeset 101 name "branch_fault"
+
+# ----------------------------------------------------------------------
+# Create nodeset for +y face
+# ----------------------------------------------------------------------
+group "face_ypos" add node in surface 15
+group "face_ypos" add node in surface 20
+group "face_ypos" add node in surface 25
+nodeset 11 group face_ypos
+nodeset 11 name "face_ypos"
+
+# ----------------------------------------------------------------------
+# Create nodeset for -y face
+# ----------------------------------------------------------------------
+group "face_yneg" add node in surface 10
+group "face_yneg" add node in surface 17
+nodeset 12 group face_yneg
+nodeset 12 name "face_yneg"
+
+# ----------------------------------------------------------------------
+# Create nodeset for +x face
+# ----------------------------------------------------------------------
+group "face_xpos" add node in surface 6
+nodeset 13 group face_xpos
+nodeset 13 name "face_xpos"
+
+# ----------------------------------------------------------------------
+# Create nodeset for -x face
+# ----------------------------------------------------------------------
+group "face_xneg" add node in surface 4
+nodeset 14 group face_xneg
+nodeset 14 name "face_xneg"
+
+# ----------------------------------------------------------------------
+# Create nodeset for -z face
+# ----------------------------------------------------------------------
+group "face_zneg" add node in surface 16
+group "face_zneg" add node in surface 21
+group "face_zneg" add node in surface 28
+nodeset 15 group face_zneg
+nodeset 15 name "face_zneg"
+
+# ----------------------------------------------------------------------
+# Create nodeset for +z face
+# ----------------------------------------------------------------------
+group "face_zpos" add node in surface 14
+group "face_zpos" add node in surface 23
+group "face_zpos" add node in surface 26
+nodeset 16 group face_zpos
+nodeset 16 name "face_zpos"
+
+# ----------------------------------------------------------------------
+# Create nodeset for subset of +z face
+# ----------------------------------------------------------------------
+group "face_zpos_subset" add node in group face_zpos
+group "face_zpos_subset" remove node with x_coord > {+10.001*km}
+group "face_zpos_subset" remove node with x_coord < {-10.001*km}
+group "face_zpos_subset" remove node with y_coord > {+24.001*km}
+group "face_zpos_subset" remove node with y_coord < {-24.001*km}
+nodeset 20 group face_zpos_subset
+nodeset 20 name "face_zpos_subset"
+
+# End of file
+

Added: short/3D/PyLith/benchmarks/trunk/dynamic/scecdynrup/tpv18/friction_branch.spatialdb
===================================================================
--- short/3D/PyLith/benchmarks/trunk/dynamic/scecdynrup/tpv18/friction_branch.spatialdb	                        (rev 0)
+++ short/3D/PyLith/benchmarks/trunk/dynamic/scecdynrup/tpv18/friction_branch.spatialdb	2012-01-21 01:11:41 UTC (rev 19407)
@@ -0,0 +1,32 @@
+#SPATIAL.ascii 1
+SimpleDB {
+  num-values = 4
+  value-names = static-coefficient dynamic-coefficient slip-weakening-parameter cohesion
+  value-units =  none none m MPa
+  num-locs = 16
+  data-dim = 2
+  space-dim = 3
+  cs-data = cartesian {
+    to-meters = 1.0e+3  // x, y, z are in km
+    space-dim = 3
+  }
+}
+ 0.050  0.0     0.0    10000.0  0.12   0.4   2.0
+ 0.051  0.0     0.0        0.6  0.12   0.4   2.0
+ 5.999  0.0     0.0        0.6  0.12   0.4   2.0
+ 6.000  0.0     0.0    10000.0  0.12   0.4   2.0
+	     
+ 0.050  0.0    -3.0    10000.0  0.12   0.4   0.2
+ 0.051  0.0    -3.0        0.6  0.12   0.4   0.2
+ 5.999  0.0    -3.0        0.6  0.12   0.4   0.2
+ 6.000  0.0    -3.0    10000.0  0.12   0.4   0.2
+	     
+ 0.050  0.0  -14.99    10000.0  0.12   0.4   0.2
+ 0.051  0.0  -14.99        0.6  0.12   0.4   0.2
+ 5.999  0.0  -14.99        0.6  0.12   0.4   0.2
+ 6.000  0.0  -14.99    10000.0  0.12   0.4   0.2
+	     
+ 0.050  0.0  -15.00    10000.0  0.12   0.4   0.2
+ 0.051  0.0  -15.00    10000.0  0.12   0.4   0.2
+ 5.999  0.0  -15.00    10000.0  0.12   0.4   0.2
+ 6.000  0.0  -15.00    10000.0  0.12   0.4   0.2

Added: short/3D/PyLith/benchmarks/trunk/dynamic/scecdynrup/tpv18/geometry.jou
===================================================================
--- short/3D/PyLith/benchmarks/trunk/dynamic/scecdynrup/tpv18/geometry.jou	                        (rev 0)
+++ short/3D/PyLith/benchmarks/trunk/dynamic/scecdynrup/tpv18/geometry.jou	2012-01-21 01:11:41 UTC (rev 19407)
@@ -0,0 +1,97 @@
+# ----------------------------------------------------------------------
+# Create block
+# ----------------------------------------------------------------------
+# Block is 48.0 km x 64.0 km x 32.0 km
+# -24.0 km <= x <= 24.0 km
+# -32.0 km <= y <= 32.0 km
+# -32.0 km <= z <= 0.0 km
+#
+#{Units('si')}
+#
+#{blockWidth=48.0*km}
+#{blockLength=64.0*km}
+#{blockHeight=32.0*km}
+#
+# Faults have a common width of 15 km
+#{faultWidth=15.0*km}
+#
+# Main fault is 28.0 km long.
+#{mainFaultLength=28.0*km}
+#
+# Branch fault is 12.0 km long and intersects main fault at y=+2.0 km
+# at angle of 30.0 degrees.
+#
+#{branchAngle=30.0}
+#{branchFaultLength=12.0*km}
+#{branchOffsetY=2*km}
+#
+
+reset
+brick x {blockWidth} y {blockLength} z {blockHeight}
+
+# Translate block so the top is at z=0
+volume 1 move x 0 y 0 z {-0.5*blockHeight}
+
+# ----------------------------------------------------------------------
+# Create interface surfaces
+# ----------------------------------------------------------------------
+
+# Create main fault 
+create planar surface with plane xplane offset 0
+surface 7 name "temp_main"
+webcut volume 1 with sheet surface temp_main
+delete body 2
+
+# Create branch fault
+create planar surface with plane yplane offset 0.0
+surface 18 name "temp_branch"
+move surface temp_branch x {blockWidth/2} y {branchOffsetY} z 0
+rotate surface temp_branch about vertex 21 vertex 22 angle {90-branchAngle}
+webcut volume 1 with sheet surface temp_branch
+delete body 4 
+
+# ----------------------------------------------------------------------
+# Split surfaces involving faults into pieces, isolating rupture regions
+# ----------------------------------------------------------------------
+
+# Split main fault surface using volume 1 
+create vertex 0 {-mainFaultLength/2} 0
+create vertex 0 {+mainFaultLength/2} 0
+create vertex 0 {-mainFaultLength/2} {-faultWidth}
+create vertex 0 {+mainFaultLength/2} {-faultWidth}
+create vertex 0 {-mainFaultLength/2} {-blockHeight}
+create vertex 0 {+mainFaultLength/2} {-blockHeight}
+create vertex 0 {-blockLength/2} {-faultWidth}
+create vertex 0 {+blockLength/2} {-faultWidth}
+
+split surface 13 across location vertex 39 location vertex 40
+split surface 29 across location vertex 33 location vertex 35
+split surface 30 across location vertex 35 location vertex 37
+split surface 31 across location vertex 34 location vertex 36
+split surface 33 across location vertex 36 location vertex 38
+delete vertex all
+
+# Split branch fault surface using volume 3
+vertex 27 copy move z {-faultWidth}
+vertex 25 copy move z {-faultWidth}
+create vertex on curve 48 distance {12*km} from end
+vertex 51 copy move z {-faultWidth}
+vertex 51 copy move z {-blockHeight}
+
+split surface 19 across location vertex 49 location vertex 50
+split surface 40 across location vertex 51 location vertex 52
+split surface 39 across location vertex 52 location vertex 53
+delete vertex all
+
+# ----------------------------------------------------------------------
+# Imprint all volumes, merging surfaces
+# ----------------------------------------------------------------------
+imprint all
+merge all
+
+surface 47 name "fault_surface_mainB"
+surface 52 name "fault_surface_mainA"
+surface 41 name "fault_surface_branch"
+
+
+# End of file

Added: short/3D/PyLith/benchmarks/trunk/dynamic/scecdynrup/tpv18/gradient.jou
===================================================================
--- short/3D/PyLith/benchmarks/trunk/dynamic/scecdynrup/tpv18/gradient.jou	                        (rev 0)
+++ short/3D/PyLith/benchmarks/trunk/dynamic/scecdynrup/tpv18/gradient.jou	2012-01-21 01:11:41 UTC (rev 19407)
@@ -0,0 +1,133 @@
+# ----------------------------------------------------------------------
+# Set vertex spacing with increasing spacing away from fault
+# ----------------------------------------------------------------------
+#{bias_factor=1.02}
+
+# Function for computing discretization size at end of curve with bias
+#{fun_dx='dxStart*bias_factor**ceil( ln(1-curveL/dxStart*(1-bias_factor))/ln(bias_factor))'}
+
+# ----------------------------------------------------------------------
+# Compute sizes at curve endpoints
+# ----------------------------------------------------------------------
+# dxA - size at vertex 13 15 41 42
+#{dxStart=dx}{curveL=Length(68)}{execute("dxA="//fun_dx)}
+
+# dxB - size at vertex 28 45 48 58
+#{dxStart=dx}{curveL=Length(63)}{execute("dxB="//fun_dx)}
+
+# dxC - size at vertex 25 55
+#{dxStart=dx}{curveL=Length(83)}{execute("dxC="//fun_dx)}
+
+# dxD - size at vertex 14 16
+#{dxStart=dxA}{curveL=Length(57)}{execute("dxD="//fun_dx)}
+
+# dxE - size at vertex 26
+#{dxStart=dxC}{curveL=Length(76)}{execute("dxE="//fun_dx)}
+
+# dxF - size at vertex 2
+#{dxStart=dxC}{curveL=Length(49)}{execute("dxF="//fun_dx)}
+
+# dxG - size at vertex 1 3 4
+#{dxStart=dxA}{curveL=Length(30)}{execute("dxG="//fun_dx)}
+
+# dxH - size at vertex 5
+#{dxStart=dxE}{curveL=Length(50)}{execute("dxH="//fun_dx)}
+
+# dxE - size at vertex 6 7 8
+#{dxStart=dxD}{curveL=Length(32)}{execute("dxI="//fun_dx)}
+
+# ----------------------------------------------------------------------
+# Reset sizes
+# ----------------------------------------------------------------------
+curve all scheme default
+surface all sizing function none
+surface fault_surface_mainA fault_surface_mainB fault_surface_branch size {dx}
+
+# Set bias on curves extending from faults
+
+# Main fault
+curve 67 scheme bias fine size {dx} factor {bias_factor} start vertex 46
+curve 68 scheme bias fine size {dx} factor {bias_factor} start vertex 47
+curve 71 scheme bias fine size {dx} factor {bias_factor} start vertex 46
+
+curve 61 scheme bias fine size {dx} factor {bias_factor} start vertex 44
+curve 62 scheme bias fine size {dx} factor {bias_factor} start vertex 43
+curve 63 scheme bias fine size {dx} factor {bias_factor} start vertex 43
+
+# Branch fault
+curve 83 scheme bias fine size {dx} factor {bias_factor} start vertex 56
+curve 82 scheme bias fine size {dx} factor {bias_factor} start vertex 57
+curve 84 scheme bias fine size {dx} factor {bias_factor} start vertex 57
+
+# Intersection
+curve 75 scheme bias fine size {dx} factor {bias_factor} start vertex 54
+
+# ----------------------------------------------------------------------
+# A to A
+curve 54 55 size {dxA}
+curve 85 88 99 size {dxB}
+
+# C to C
+curve 77 size {dxC}
+
+# bias starting at A
+curve 21 scheme bias fine size {dxA} factor {bias_factor} start vertex 13
+curve 30 scheme bias fine size {dxA} factor {bias_factor} start vertex 13
+curve 29 scheme bias fine size {dxA} factor {bias_factor} start vertex 15
+
+# bias starting at B
+curve 65 scheme bias fine size {dxB} factor {bias_factor} start vertex 45
+curve 72 scheme bias fine size {dxB} factor {bias_factor} start vertex 48
+curve 86 scheme bias fine size {dxB} factor {bias_factor} start vertex 58
+
+# bias starting at C
+curve 49 scheme bias fine size {dxC} factor {bias_factor} start vertex 25
+
+# bias A to C
+curve 42 scheme bias fine size {dxA} coarse size {dxC} start vertex 15
+
+
+# bias starting at D
+curve 32 scheme bias fine size {dxD} factor {bias_factor} start vertex 14
+curve 23 scheme bias fine size {dxD} factor {bias_factor} start vertex 14
+curve 31 scheme bias fine size {dxD} factor {bias_factor} start vertex 16
+
+# bias starting at E
+curve 50 scheme bias fine size {dxE} factor {bias_factor} start vertex 26
+
+# bias A to D
+curve 57 scheme bias fine size {dxA} coarse size {dxD} start vertex 41
+curve 56 scheme bias fine size {dxA} coarse size {dxD} start vertex 42
+
+# bias D to E
+curve 41 scheme bias fine size {dxD} coarse size {dxE} start vertex 16
+
+# bias F to G
+curve 1 scheme bias fine size {dxF} coarse size {dxG} start vertex 2
+
+# bias C to E
+curve 76 scheme bias fine size {dxC} coarse size {dxE} start vertex 55
+
+# G to G
+curve 3 size {dxG}
+
+
+# bias G to I
+curve 10 scheme bias fine size {dxG} coarse size {dxI} start vertex 1
+curve 9 scheme bias fine size {dxG} coarse size {dxI} start vertex 4
+curve 11 scheme bias fine size {dxG} coarse size {dxI} start vertex 3
+
+# bias F to H
+curve 12 scheme bias fine size {dxF} coarse size {dxH} start vertex 2
+
+# bias E to H
+curve 50 scheme bias fine size {dxE} coarse size {dxH} start vertex 26
+
+# bias H to I
+curve 5 scheme bias fine size {dxH} coarse size {dxI} start vertex 5
+
+# I to I
+curve 7 size {dxI}
+
+
+# End of file

Added: short/3D/PyLith/benchmarks/trunk/dynamic/scecdynrup/tpv18/hex8.cfg
===================================================================
--- short/3D/PyLith/benchmarks/trunk/dynamic/scecdynrup/tpv18/hex8.cfg	                        (rev 0)
+++ short/3D/PyLith/benchmarks/trunk/dynamic/scecdynrup/tpv18/hex8.cfg	2012-01-21 01:11:41 UTC (rev 19407)
@@ -0,0 +1,51 @@
+# -*- Python -*-
+[pylithapp]
+
+# ----------------------------------------------------------------------
+# materials
+# ----------------------------------------------------------------------
+[pylithapp.timedependent.materials.elastic]
+quadrature.cell = pylith.feassemble.FIATLagrange
+quadrature.cell.dimension = 3
+
+
+# ----------------------------------------------------------------------
+# boundary conditions
+# ----------------------------------------------------------------------
+[pylithapp.timedependent.bc.x_pos]
+quadrature.cell = pylith.feassemble.FIATLagrange
+quadrature.cell.dimension = 2
+quadrature.cell.quad_order = 2
+
+[pylithapp.timedependent.bc.x_neg]
+quadrature.cell = pylith.feassemble.FIATLagrange
+quadrature.cell.dimension = 2
+quadrature.cell.quad_order = 2
+
+[pylithapp.timedependent.bc.y_pos]
+quadrature.cell = pylith.feassemble.FIATLagrange
+quadrature.cell.dimension = 2
+quadrature.cell.quad_order = 2
+
+[pylithapp.timedependent.bc.y_neg]
+quadrature.cell = pylith.feassemble.FIATLagrange
+quadrature.cell.dimension = 2
+quadrature.cell.quad_order = 2
+
+[pylithapp.timedependent.bc.z_neg]
+quadrature.cell = pylith.feassemble.FIATLagrange
+quadrature.cell.dimension = 2
+quadrature.cell.quad_order = 2
+
+# ----------------------------------------------------------------------
+# faults
+# ----------------------------------------------------------------------
+[pylithapp.timedependent.interfaces.main_fault]
+quadrature.cell = pylith.feassemble.FIATLagrange
+quadrature.cell.dimension = 2
+quadrature.cell.quad_order = 2
+
+[pylithapp.timedependent.interfaces.branch_fault]
+quadrature.cell = pylith.feassemble.FIATLagrange
+quadrature.cell.dimension = 2
+quadrature.cell.quad_order = 2

Added: short/3D/PyLith/benchmarks/trunk/dynamic/scecdynrup/tpv18/matprops.spatialdb
===================================================================
--- short/3D/PyLith/benchmarks/trunk/dynamic/scecdynrup/tpv18/matprops.spatialdb	                        (rev 0)
+++ short/3D/PyLith/benchmarks/trunk/dynamic/scecdynrup/tpv18/matprops.spatialdb	2012-01-21 01:11:41 UTC (rev 19407)
@@ -0,0 +1,14 @@
+#SPATIAL.ascii 1
+SimpleDB {
+  num-values = 6
+  value-names =  density  vs  vp  cohesion  friction-angle dilatation-angle
+  value-units =  kg/m**3  m/s  m/s  MPa  degree  degree
+  num-locs = 1
+  data-dim = 0
+  space-dim = 3
+  cs-data = cartesian {
+    to-meters = 1.0
+    space-dim = 3
+  }
+}
+0.0  0.0  0.0  2700.0	3300.0	 5716.0   5.0  40.36453657309736  40.36453657309736

Added: short/3D/PyLith/benchmarks/trunk/dynamic/scecdynrup/tpv18/pylithapp.cfg
===================================================================
--- short/3D/PyLith/benchmarks/trunk/dynamic/scecdynrup/tpv18/pylithapp.cfg	                        (rev 0)
+++ short/3D/PyLith/benchmarks/trunk/dynamic/scecdynrup/tpv18/pylithapp.cfg	2012-01-21 01:11:41 UTC (rev 19407)
@@ -0,0 +1,190 @@
+# -*- Python -*-
+
+[pylithapp]
+
+# ----------------------------------------------------------------------
+# journal
+# ----------------------------------------------------------------------
+[pylithapp.journal.info]
+timedependent = 1
+meshimporter = 1
+meshiocubit = 1
+distributor = 1
+petsc = 1
+explicitlumped = 1
+elasticityexplicit = 1
+submeshquadrature = 1
+meshquadrature = 1
+fiatlagrange = 1
+faultcohesivedyn = 1
+
+[pylithapp.journal.debug]
+#pylithapp = 1
+#problem = 1
+#explicit = 1
+
+# ----------------------------------------------------------------------
+# mesh_generator
+# ----------------------------------------------------------------------
+[pylithapp.mesh_generator]
+reader = pylith.meshio.MeshIOCubit
+distributor.partitioner = parmetis
+
+#reorder_mesh = True
+
+[pylithapp.mesh_generator.reader]
+coordsys.space_dim = 3
+
+# ----------------------------------------------------------------------
+# problem
+# ----------------------------------------------------------------------
+[pylithapp.timedependent]
+
+dimension = 3
+
+formulation = pylith.problems.ExplicitLumped
+formulation.norm_viscosity = 0.4
+normalizer = spatialdata.units.NondimElasticDynamic
+
+[pylithapp.timedependent.formulation.time_step]
+#total_time = 12.001*s
+total_time = 0.0*s
+dt = 0.005*s
+
+# ----------------------------------------------------------------------
+# materials
+# ----------------------------------------------------------------------
+[pylithapp.timedependent]
+
+materials = [elastic]
+materials.elastic = pylith.materials.ElasticIsotropic3D
+
+[pylithapp.timedependent.materials.elastic]
+label = Elastic material
+id = 1
+db_properties.iohandler.filename = matprops.spatialdb
+db_properties.label = Elastic material properties
+
+# ----------------------------------------------------------------------
+# boundary conditions
+# ----------------------------------------------------------------------
+[pylithapp.timedependent]
+
+bc = [x_neg,x_pos,y_neg,y_pos,z_neg]
+
+# Change the DirichletPoints BC to the AbsorbingDampers BC
+bc.x_neg = pylith.bc.AbsorbingDampers
+bc.x_pos = pylith.bc.AbsorbingDampers
+bc.y_neg = pylith.bc.AbsorbingDampers
+bc.y_pos = pylith.bc.AbsorbingDampers
+bc.z_neg = pylith.bc.AbsorbingDampers
+
+[pylithapp.timedependent.bc.x_pos]
+label = face_xpos
+db.label = Absorbing BC +x
+db.iohandler.filename = matprops.spatialdb
+
+[pylithapp.timedependent.bc.x_neg]
+label = face_xneg
+db.label = Absorbing BC -x
+db.iohandler.filename = matprops.spatialdb
+
+[pylithapp.timedependent.bc.y_pos]
+label = face_ypos
+db.label = Absorbing BC +y
+db.iohandler.filename = matprops.spatialdb
+
+[pylithapp.timedependent.bc.y_neg]
+label = face_yneg
+db.label = Absorbing BC -y
+db.iohandler.filename = matprops.spatialdb
+
+[pylithapp.timedependent.bc.z_neg]
+label = face_zneg
+up_dir = [0, 1, 0]
+db.label = Absorbing BC -z
+db.iohandler.filename = matprops.spatialdb
+
+
+# ----------------------------------------------------------------------
+# faults
+# ----------------------------------------------------------------------
+[pylithapp.timedependent]
+interfaces = [main_fault,branch_fault]
+interfaces.main_fault = pylith.faults.FaultCohesiveDyn
+interfaces.branch_fault = pylith.faults.FaultCohesiveDyn
+
+[pylithapp.timedependent.interfaces.main_fault]
+id = 100
+label = main_fault
+
+db_initial_tractions = spatialdata.spatialdb.SimpleDB
+db_initial_tractions.label = Initial fault tractions on main fault
+db_initial_tractions.query_type = linear
+
+friction = pylith.friction.SlipWeakeningTime
+friction.label = Slip Weakening on main fault
+friction.db_properties = spatialdata.spatialdb.SimpleDB
+friction.db_properties.iohandler.filename = friction_main.spatialdb
+friction.db_properties.label = Slip weakening on main fault
+friction.db_properties.query_type = linear
+
+
+[pylithapp.timedependent.interfaces.branch_fault]
+id = 101
+label = branch_fault
+
+db_initial_tractions = spatialdata.spatialdb.SimpleDB
+db_initial_tractions.label = Initial fault tractions on branch fault
+db_initial_tractions.query_type = linear
+
+friction = pylith.friction.SlipWeakening
+friction.label = Slip Weakening on branch fault
+friction.db_properties = spatialdata.spatialdb.SimpleDB
+friction.db_properties.iohandler.filename = friction_branch.spatialdb
+friction.db_properties.label = Slip weakening on branch fault
+friction.db_properties.query_type = linear
+
+
+# ----------------------------------------------------------------------
+# output
+# ----------------------------------------------------------------------
+[pylithapp.problem.formulation]
+output = [subdomain]
+output.subdomain = pylith.meshio.OutputSolnSubset
+
+
+[pylithapp.problem.formulation.output.subdomain]
+label = face_zpos_subset
+vertex_data_fields=[displacement,velocity]
+output_freq = time_step
+time_step = 0.04999*s
+writer = pylith.meshio.DataWriterHDF5ExtSubMesh
+
+[pylithapp.timedependent.interfaces.main_fault.output]
+vertex_info_fields = [initial_traction,static_coefficient,dynamic_coefficient,slip_weakening_parameter,weakening_time]
+vertex_data_fields = [slip,slip_rate,traction]
+output_freq = time_step
+time_step = 0.04999*s
+writer = pylith.meshio.DataWriterHDF5ExtSubSubMesh
+
+[pylithapp.timedependent.interfaces.branch_fault.output]
+vertex_info_fields = [initial_traction,static_coefficient,dynamic_coefficient,slip_weakening_parameter]
+vertex_data_fields = [slip,slip_rate,traction]
+output_freq = time_step
+time_step = 0.04999*s
+writer = pylith.meshio.DataWriterHDF5ExtSubSubMesh
+
+[pylithapp.timedependent.materials.elastic.output]
+cell_data_fields = []
+cell_filter = pylith.meshio.CellFilterAvgMesh
+writer = pylith.meshio.DataWriterHDF5ExtMesh
+
+# ----------------------------------------------------------------------
+# PETSc
+# ----------------------------------------------------------------------
+[pylithapp.petsc]
+log_summary = true
+
+
+# End of file

Added: short/3D/PyLith/benchmarks/trunk/dynamic/scecdynrup/tpv18/tet4.cfg
===================================================================
--- short/3D/PyLith/benchmarks/trunk/dynamic/scecdynrup/tpv18/tet4.cfg	                        (rev 0)
+++ short/3D/PyLith/benchmarks/trunk/dynamic/scecdynrup/tpv18/tet4.cfg	2012-01-21 01:11:41 UTC (rev 19407)
@@ -0,0 +1,63 @@
+# -*- Python -*-
+[pylithapp]
+
+# ----------------------------------------------------------------------
+# journal
+# ----------------------------------------------------------------------
+[pylithapp.journal.info]
+explicitlumpedtet4 = 1
+
+# ----------------------------------------------------------------------
+# problem
+# ----------------------------------------------------------------------
+[pylithapp.timedependent]
+formulation = pylith.problems.ExplicitLumpedTet4
+
+# ----------------------------------------------------------------------
+# materials
+# ----------------------------------------------------------------------
+[pylithapp.timedependent.materials.elastic]
+quadrature.cell = pylith.feassemble.FIATSimplex
+quadrature.cell.shape = tetrahedron
+
+# ----------------------------------------------------------------------
+# boundary conditions
+# ----------------------------------------------------------------------
+[pylithapp.timedependent.bc.x_pos]
+quadrature.cell = pylith.feassemble.FIATSimplex
+quadrature.cell.shape = triangle
+quadrature.cell.quad_order = 2
+
+[pylithapp.timedependent.bc.x_neg]
+quadrature.cell = pylith.feassemble.FIATSimplex
+quadrature.cell.shape = triangle
+quadrature.cell.quad_order = 2
+
+[pylithapp.timedependent.bc.y_pos]
+quadrature.cell = pylith.feassemble.FIATSimplex
+quadrature.cell.shape = triangle
+quadrature.cell.quad_order = 2
+
+[pylithapp.timedependent.bc.y_neg]
+quadrature.cell = pylith.feassemble.FIATSimplex
+quadrature.cell.shape = triangle
+quadrature.cell.quad_order = 2
+
+[pylithapp.timedependent.bc.z_neg]
+quadrature.cell = pylith.feassemble.FIATSimplex
+quadrature.cell.shape = triangle
+quadrature.cell.quad_order = 2
+
+# ----------------------------------------------------------------------
+# faults
+# ----------------------------------------------------------------------
+[pylithapp.timedependent.interfaces.main_fault]
+quadrature.cell = pylith.feassemble.FIATSimplex
+quadrature.cell.shape = triangle
+
+[pylithapp.timedependent.interfaces.branch_fault]
+quadrature.cell = pylith.feassemble.FIATSimplex
+quadrature.cell.shape = triangle
+
+
+# End of file

Added: short/3D/PyLith/benchmarks/trunk/dynamic/scecdynrup/tpv18/tet4_200m.jou
===================================================================
--- short/3D/PyLith/benchmarks/trunk/dynamic/scecdynrup/tpv18/tet4_200m.jou	                        (rev 0)
+++ short/3D/PyLith/benchmarks/trunk/dynamic/scecdynrup/tpv18/tet4_200m.jou	2012-01-21 01:11:41 UTC (rev 19407)
@@ -0,0 +1,50 @@
+# ----------------------------------------------------------------------
+# Create tet4 mesh at 200m resolution.
+# ----------------------------------------------------------------------
+
+# ----------------------------------------------------------------------
+# Generate geometry
+# ----------------------------------------------------------------------
+playback 'geometry.jou'
+
+# ----------------------------------------------------------------------
+# Set discretization size and scheme
+# ----------------------------------------------------------------------
+#{dx=200*m}
+surface all scheme trimesh
+volume all scheme tetmesh
+playback 'gradient.jou'
+
+# ----------------------------------------------------------------------
+# Generate the mesh
+# ----------------------------------------------------------------------
+mesh surface all
+surface all smooth scheme condition number beta 1.3 cpu 10
+smooth surface all
+
+mesh volume all
+
+# ----------------------------------------------------------------------
+# Smooth mesh to improve quality
+# ----------------------------------------------------------------------
+#{condnum=2.0}
+#{loop(4)}
+cleanup volume all
+volume all smooth scheme condition number beta {condnum} cpu 15
+smooth volume all
+#{condnum=condnum-0.1}
+#{endloop}
+
+# ----------------------------------------------------------------------
+# Setup boundary conditions.
+# ----------------------------------------------------------------------
+playback 'createbc.jou'
+
+# ----------------------------------------------------------------------
+# Export exodus file
+# ----------------------------------------------------------------------
+export mesh "tet4_200m.exo" dimension 3 overwrite
+
+
+# End of file
+

Added: short/3D/PyLith/benchmarks/trunk/dynamic/scecdynrup/tpv18/tpv18.cfg
===================================================================
--- short/3D/PyLith/benchmarks/trunk/dynamic/scecdynrup/tpv18/tpv18.cfg	                        (rev 0)
+++ short/3D/PyLith/benchmarks/trunk/dynamic/scecdynrup/tpv18/tpv18.cfg	2012-01-21 01:11:41 UTC (rev 19407)
@@ -0,0 +1,15 @@
+# Parameters specific to TPV18.
+
+# ----------------------------------------------------------------------
+# faults
+# ----------------------------------------------------------------------
+# Main fault
+[pylithapp.timedependent.interfaces.main_fault]
+db_initial_tractions.iohandler.filename = tpv18_traction_main.spatialdb 
+
+# Branch fault
+[pylithapp.timedependent.interfaces.branch_fault]
+db_initial_tractions.iohandler.filename = tpv18_traction_branch.spatialdb 
+
+
+# End of file

Added: short/3D/PyLith/benchmarks/trunk/dynamic/scecdynrup/tpv18/tpv18_hex8_100m.cfg
===================================================================
--- short/3D/PyLith/benchmarks/trunk/dynamic/scecdynrup/tpv18/tpv18_hex8_100m.cfg	                        (rev 0)
+++ short/3D/PyLith/benchmarks/trunk/dynamic/scecdynrup/tpv18/tpv18_hex8_100m.cfg	2012-01-21 01:11:41 UTC (rev 19407)
@@ -0,0 +1,32 @@
+# -*- Python -*-
+[pylithapp]
+
+# ----------------------------------------------------------------------
+# mesh_generator
+# ----------------------------------------------------------------------
+[pylithapp.mesh_generator.reader]
+filename = hex8_200m.exo
+
+# ----------------------------------------------------------------------
+# problem
+# ----------------------------------------------------------------------
+[pylithapp.timedependent.formulation.time_step]
+dt = 0.0025*s
+
+# ----------------------------------------------------------------------
+# output
+# ----------------------------------------------------------------------
+[pylithapp.problem.formulation.output.subdomain]
+writer.filename = output/tpv18_hex8_100m-groundsurf.h5
+
+[pylithapp.timedependent.interfaces.main_fault.output]
+writer.filename = output/tpv18_hex8_100m-main_fault.h5
+
+[pylithapp.timedependent.interfaces.branch_fault.output]
+writer.filename = output/tpv18_hex8_100m-branch_fault.h5
+
+[pylithapp.timedependent.materials.elastic.output]
+writer.filename = output/tpv18_hex8_100m-elastic.h5
+
+
+# End of file

Added: short/3D/PyLith/benchmarks/trunk/dynamic/scecdynrup/tpv18/tpv18_tet4_100m.cfg
===================================================================
--- short/3D/PyLith/benchmarks/trunk/dynamic/scecdynrup/tpv18/tpv18_tet4_100m.cfg	                        (rev 0)
+++ short/3D/PyLith/benchmarks/trunk/dynamic/scecdynrup/tpv18/tpv18_tet4_100m.cfg	2012-01-21 01:11:41 UTC (rev 19407)
@@ -0,0 +1,35 @@
+# -*- Python -*-
+[pylithapp]
+
+# ----------------------------------------------------------------------
+# mesh_generator
+# ----------------------------------------------------------------------
+[pylithapp.mesh_generator]
+refiner = pylith.topology.RefineUniform
+
+[pylithapp.mesh_generator.reader]
+filename = tet4_200m.exo
+
+# ----------------------------------------------------------------------
+# problem
+# ----------------------------------------------------------------------
+[pylithapp.timedependent.formulation.time_step]
+dt = 0.005*s
+
+# ----------------------------------------------------------------------
+# output
+# ----------------------------------------------------------------------
+[pylithapp.problem.formulation.output.subdomain]
+writer.filename = output/tpv14_tet4_100m-groundsurf.h5
+
+[pylithapp.timedependent.interfaces.main_fault.output]
+writer.filename = output/tpv14_tet4_100m-main_fault.h5
+
+[pylithapp.timedependent.interfaces.branch_fault.output]
+writer.filename = output/tpv14_tet4_100m-branch_fault.h5
+
+[pylithapp.timedependent.materials.elastic.output]
+writer.filename = output/tpv14_tet4_100m-elastic.h5
+
+
+# End of file

Added: short/3D/PyLith/benchmarks/trunk/dynamic/scecdynrup/tpv18/tpv18_tet4_200m.cfg
===================================================================
--- short/3D/PyLith/benchmarks/trunk/dynamic/scecdynrup/tpv18/tpv18_tet4_200m.cfg	                        (rev 0)
+++ short/3D/PyLith/benchmarks/trunk/dynamic/scecdynrup/tpv18/tpv18_tet4_200m.cfg	2012-01-21 01:11:41 UTC (rev 19407)
@@ -0,0 +1,32 @@
+# -*- Python -*-
+[pylithapp]
+
+# ----------------------------------------------------------------------
+# mesh_generator
+# ----------------------------------------------------------------------
+[pylithapp.mesh_generator.reader]
+filename = tet4_200m.exo
+
+# ----------------------------------------------------------------------
+# problem
+# ----------------------------------------------------------------------
+[pylithapp.timedependent.formulation.time_step]
+dt = 0.01*s
+
+# ----------------------------------------------------------------------
+# output
+# ----------------------------------------------------------------------
+[pylithapp.problem.formulation.output.subdomain]
+writer.filename = output/tpv18_tet4_200m-groundsurf.h5
+
+[pylithapp.timedependent.interfaces.main_fault.output]
+writer.filename = output/tpv18_tet4_200m-main_fault.h5
+
+[pylithapp.timedependent.interfaces.branch_fault.output]
+writer.filename = output/tpv18_tet4_200m-branch_fault.h5
+
+[pylithapp.timedependent.materials.elastic.output]
+writer.filename = output/tpv18_tet4_200m-elastic.h5
+
+
+# End of file



More information about the CIG-COMMITS mailing list