[cig-commits] [commit] baagaard/fix-cubit-cellsize, baagaard/fix-fullscale-3d-tests, baagaard/fix-packaging, knepley/fix-parallel-mult-faults, master, next: Added one and two fault hex8 full scale tests. (560463e)

cig_noreply at geodynamics.org cig_noreply at geodynamics.org
Wed Apr 9 03:03:14 PDT 2014


Repository : ssh://geoshell/pylith

On branches: baagaard/fix-cubit-cellsize,baagaard/fix-fullscale-3d-tests,baagaard/fix-packaging,knepley/fix-parallel-mult-faults,master,next
Link       : https://github.com/geodynamics/pylith/compare/a213c3005450d915f40c7137ff7d8dbbb439d334...1b3d6d3bc246edc4235d0051142d675d91e9be41

>---------------------------------------------------------------

commit 560463e971a848fb0328fe5bb53fc5611de2213b
Author: Brad Aagaard <baagaard at usgs.gov>
Date:   Mon Mar 17 11:39:51 2014 -0700

    Added one and two fault hex8 full scale tests.
    
    Updated README files for tri3, tet4, and hex8 full-scale tests.


>---------------------------------------------------------------

560463e971a848fb0328fe5bb53fc5611de2213b
 tests_auto/2d/tri3/README                          |  31 +++--
 tests_auto/3d/hex8/Makefile.am                     |   8 +-
 tests_auto/3d/hex8/README                          | 145 ++++-----------------
 tests_auto/3d/{tet4 => hex8}/TestSlipOneFault.py   |  20 +--
 .../{2d/tri3 => 3d/hex8}/TestSlipTwoFaults.py      |  33 +++--
 tests_auto/3d/{tet4 => hex8}/sliponefault.cfg      |   7 +-
 tests_auto/3d/{tet4 => hex8}/sliponefault_soln.py  |   6 +-
 tests_auto/3d/{tet4 => hex8}/sliptwofaults.cfg     |   8 +-
 tests_auto/3d/{tet4 => hex8}/sliptwofaults_soln.py |   4 +-
 tests_auto/3d/hex8/testpylith.py                   |  11 ++
 tests_auto/3d/tet4/README                          | 145 ++++-----------------
 11 files changed, 123 insertions(+), 295 deletions(-)

diff --git a/tests_auto/2d/tri3/README b/tests_auto/2d/tri3/README
index b040594..5b11412 100644
--- a/tests_auto/2d/tri3/README
+++ b/tests_auto/2d/tri3/README
@@ -2,20 +2,31 @@
 DOMAIN
 ======================================================================
 
--4km <= x <= +4km
--4km <= y <= +4km
+-4 km <= x <= +4 km
+-4 km <= y <= +4 km
 
-Mesh is tri3 cells with nominal 1km discretization size.
+Mesh is tri3 cells with nominal 1 km discretization size.
 
-AXIALDISP: Axial extension, see axialdisp_soln.py
+AXIALDISP: See axialdisp_soln.py
+  Axial extension
+  No fault
+  Dirichlet BC
 
-SHEARDISP: Shear, see sheardisp_soln.py
+SHEARDISP: See sheardisp_soln.py
+  Shear
+  No fault
+  Dirichlet BC
 
-SHEARDISPNOSLIP: SHEARDISP w/fault and no slip
+SHEARDISPNOSLIP:
+  Same as SHEARDISP
+  Embedded fault w/zero slip
 
-SHEARDISPNOSLIPREFINE: SHEARDISP w/fault and no slip and mesh refinement
+SHEARDISPNOSLIPREFINE:
+  Same as SHEARDISPNOSLIP
+  Uniform refinement
 
-SLIPONEFAULT: slip on one fault, see sliponefault_soln.py
-
-SLIPTWOFAULTS: slip on two faults, see sliptwofaults_soln.py
+SLIPONEFAULT: See sliponefault_soln.py
+  One through-going fault with uniform slip
 
+SLIPTWOFAULTS: See sliptwofaults_soln.py
+  Two through-going faults with uniform slip
diff --git a/tests_auto/3d/hex8/Makefile.am b/tests_auto/3d/hex8/Makefile.am
index 170e094..1808c73 100644
--- a/tests_auto/3d/hex8/Makefile.am
+++ b/tests_auto/3d/hex8/Makefile.am
@@ -30,6 +30,10 @@ dist_noinst_PYTHON = \
 	TestShearDispNoSlipRefine.py \
 	sheardisp_gendb.py \
 	sheardisp_soln.py \
+	TestSlipOneFault.py \
+	sliponefault_soln.py \
+	TestSlipTwoFaults.py \
+	sliptwofaults_soln.py \
 	testpylith.py
 
 
@@ -41,7 +45,9 @@ dist_noinst_DATA = \
 	axialdisp.cfg \
 	sheardisp.cfg \
 	sheardispnoslip.cfg \
-	sheardispnosliprefine.cfg
+	sheardispnosliprefine.cfg \
+	sliponefault.cfg \
+	sliptwofaults.cfg
 
 noinst_TMP = \
 	shear_dispx.spatialdb \
diff --git a/tests_auto/3d/hex8/README b/tests_auto/3d/hex8/README
index 650da68..b5e729c 100644
--- a/tests_auto/3d/hex8/README
+++ b/tests_auto/3d/hex8/README
@@ -6,133 +6,32 @@ DOMAIN
 -40 km <= y <= +40 km
 -40 km <= z <= 0 km
 
-Mesh is tet4 cells with nominal 5km discretization size.
+Mesh is hex8 cells with nominal 5 km discretization size.
 
-======================================================================
-AXIAL COMPRESSION - axialdisp
-======================================================================
-
-3-D axial extension test with linear tetrahedral cells.
-
-Specify
-  Ux(-40km,    y,    z)
-  Uy(    x,+40km,    z)
-  Uy(    x,-40km,    z)
-  Uz(    x,    y,-40km)
-
-Construct solution (see axialdisp_soln.py) from specified Sxx.
-
-
-======================================================================
-SHEAR - sheardisp
-======================================================================
-
-2-D shear test with linear tetrahedral cells.
-
-Specify
-  Uy(+40km,y,z)
-  Uy(-40km,y,z)
-  Ux(x,+40km,z)
-  Ux(x,-40km,z)
-  Uz(x,y,-40km)
-
-Construct solution (see sheardisp_soln.py) from specified Sxy.
-
-======================================================================
-SHEAR (NO FAULT SLIP) - shearnoslip
-======================================================================
-
-2-D shear test with linear tetrahedral cells with zero slip on fault.
-
-Same Dirichlet boundary conditions and solution as sheardisp.
-
-
-======================================================================
-THRUFAULTSLIP
-======================================================================
-
-3-D dislocation test with linear tetrahedral cells.
-
-
-          ----------
-          |    |    |
-Uy=-0.5 m |    |    | Uy=+0.5m
-          |    |    |
-          |    |    |
-          ----------
-
-
-Dirichlet boundary conditions
-  Ux(   0,y) =  0.0
-  Uy(   0,y) = -0.5 m
-  Ux(+400,y) =  0.0
-  Uy(+400,y) = +0.5 m
-
-Analytical solution
-  Ux(x<0,y) = -0.5 m
-  Ux(x>0,y) = +0.5 m
-  Uy = 0.0
-
-======================================================================
-THRUFAULT2SLIP
-======================================================================
-
-3-D dislocation test with linear tetrahedral cells with 2 faults. One
-is right-lateral and one is left-lateral to cause the middle section
-to move 1.0 m to the right.
-
-
-           Ux=0     
-         ----------
-         |        |
-         |--------| 
-         | Ux=1.0m|
-         |--------|
-         |        |
-         ----------
-           Ux=0
-
-
-Dirichlet boundary conditions
-  Ux(x,+400) =  0.0
-  Uy(x,+400) =  0.0
-  Ux(x,-400) =  0.0
-  Uy(x,-400) =  0.0
-
-Analytical solution
-  Ux(x,-100<y<+100) = +1.0 m
-  Ux(x,-100>y) = 0.0
-  Ux(x,+100<y) = 0.0
-  Uy = 0.0
-
-======================================================================
-TRIMFAULTSLIP
-======================================================================
+AXIALDISP: See axialdisp_soln.py
+  Axial extension
+  No fault
+  Dirichlet BC
 
-3-D dislocation test with linear tetrahedral cells with 2 faults. One
-is right-lateral and one is left-lateral to cause the middle section
-to move 1.0 m to the right.
+SHEARDISP: See sheardisp_soln.py
+  Shear
+  No fault
+  Dirichlet BC
 
+SHEARDISPNOSLIP:
+  Same as SHEARDISP
+  Embedded fault w/zero slip
 
-           Ux=0     
-         ----------
-         |        |
-         |--------| 
-         | Ux=1.0m|
-         |--------|
-         |        |
-         ----------
-           Ux=0
+SHEARDISPNOSLIPREFINE:
+  Same as SHEARDISPNOSLIP
+  Uniform refinement
 
+  NOTE: The solution test currently fails in v2.0.0 because in the
+  refined mesh we don't connect the vertices across the ends of the
+  fault in the halo around the fault.
 
-Dirichlet boundary conditions
-  Ux(x,+400) =  0.0
-  Uy(x,+400) =  0.0
-  Ux(x,-400) =  0.0
-  Uy(x,-400) =  0.0
+SLIPONEFAULT: See sliponefault_soln.py
+  One through-going fault with uniform slip
 
-Analytical solution
-  Ux(x,-100<y<+100) = +1.0 m
-  Ux(x,-100>y) = 0.0
-  Ux(x,+100<y) = 0.0
-  Uy = 0.0
+SLIPTWOFAULTS: See sliptwofaults_soln.py
+  Two through-going faults with uniform slip
diff --git a/tests_auto/3d/tet4/TestSlipOneFault.py b/tests_auto/3d/hex8/TestSlipOneFault.py
similarity index 91%
copy from tests_auto/3d/tet4/TestSlipOneFault.py
copy to tests_auto/3d/hex8/TestSlipOneFault.py
index 04e8bcd..d0c794c 100644
--- a/tests_auto/3d/tet4/TestSlipOneFault.py
+++ b/tests_auto/3d/hex8/TestSlipOneFault.py
@@ -16,12 +16,12 @@
 # ----------------------------------------------------------------------
 #
 
-## @file tests/3d/tet4/TestSlipOneFault.py
+## @file tests/3d/hex8/TestSlipOneFault.py
 ##
 ## @brief Test suite for testing pylith with shear slip.
 
 import numpy
-from TestTet4 import TestTet4
+from TestHex8 import TestHex8
 from sliponefault_soln import AnalyticalSoln
 
 # Local version of PyLithApp
@@ -44,22 +44,22 @@ def run_pylith():
   return
 
 
-class TestSlipOneFault(TestTet4):
+class TestSlipOneFault(TestHex8):
   """
-  Test suite for testing pylith with shear sliponefault for 2-D box.
+  Test suite for testing pylith with shear sliponefault for 3-D box.
   """
 
   def setUp(self):
     """
     Setup for test.
     """
-    TestTet4.setUp(self)
+    TestHex8.setUp(self)
     self.nverticesO = self.mesh['nvertices']
-    self.mesh['nvertices'] += 50
-    self.faultMesh = {'nvertices': 50,
+    self.mesh['nvertices'] += 153
+    self.faultMesh = {'nvertices': 153,
                       'spaceDim': 3,
-                      'ncells': 72,
-                      'ncorners': 3}
+                      'ncells': 128,
+                      'ncorners': 4}
     run_pylith()
     self.outputRoot = "sliponefault"
 
@@ -128,7 +128,7 @@ class TestSlipOneFault(TestTet4):
     """
     dim = 3
 
-    normalDir = (+1.0, 0.0, 0.0)
+    normalDir = (-1.0, 0.0, 0.0)
     finalSlip = -2.0
     slipTime = 0.0
 
diff --git a/tests_auto/2d/tri3/TestSlipTwoFaults.py b/tests_auto/3d/hex8/TestSlipTwoFaults.py
similarity index 85%
copy from tests_auto/2d/tri3/TestSlipTwoFaults.py
copy to tests_auto/3d/hex8/TestSlipTwoFaults.py
index 7d66b3a..6910999 100644
--- a/tests_auto/2d/tri3/TestSlipTwoFaults.py
+++ b/tests_auto/3d/hex8/TestSlipTwoFaults.py
@@ -16,12 +16,12 @@
 # ----------------------------------------------------------------------
 #
 
-## @file tests/2d/tri3/TestSlipTwoFaults.py
+## @file tests/3d/hex8/TestSlipTwoFaults.py
 ##
 ## @brief Test suite for testing pylith with shear slip.
 
 import numpy
-from TestTri3 import TestTri3
+from TestHex8 import TestHex8
 from sliptwofaults_soln import AnalyticalSoln
 
 # Local version of PyLithApp
@@ -44,7 +44,7 @@ def run_pylith():
   return
 
 
-class TestSlipTwoFaults(TestTri3):
+class TestSlipTwoFaults(TestHex8):
   """
   Test suite for testing pylith with shear slip on two faults.
   """
@@ -53,13 +53,13 @@ class TestSlipTwoFaults(TestTri3):
     """
     Setup for test.
     """
-    TestTri3.setUp(self)
+    TestHex8.setUp(self)
     self.nverticesO = self.mesh['nvertices']
-    self.mesh['nvertices'] += 2*9
-    self.faultMesh = {'nvertices': 9,
-                      'spaceDim': 2,
-                      'ncells': 8,
-                      'ncorners': 2}
+    self.mesh['nvertices'] += 2*153
+    self.faultMesh = {'nvertices': 153,
+                      'spaceDim': 3,
+                      'ncells': 128,
+                      'ncorners': 4}
     run_pylith()
     self.outputRoot = "sliptwofaults"
 
@@ -137,22 +137,21 @@ class TestSlipTwoFaults(TestTri3):
     Calculate fault info.
     """
 
-    normalDir = (-1.0, 0.0)
+    normalDir = (-1.0, 0.0, 0.0)
     finalSlip = -2.0
     slipTime = 0.0
+    dim = 3
 
     nvertices = self.faultMesh['nvertices']
 
     if name == "normal_dir":
-      field = numpy.zeros( (1, nvertices, 2), dtype=numpy.float64)
+      field = numpy.zeros( (1, nvertices, dim), dtype=numpy.float64)
       field[0,:,0] = normalDir[0]
       field[0,:,1] = normalDir[1]
-
-      if self.fault == 2:
-        field *= -1
+      field[0,:,2] = normalDir[2]
 
     elif name == "final_slip":
-      field = numpy.zeros( (1, nvertices, 2), dtype=numpy.float64)
+      field = numpy.zeros( (1, nvertices, dim), dtype=numpy.float64)
       field[0,:,0] = finalSlip
 
       if self.fault == 2:
@@ -162,14 +161,14 @@ class TestSlipTwoFaults(TestTri3):
       field = slipTime*numpy.zeros( (1, nvertices, 1), dtype=numpy.float64)
       
     elif name == "slip":
-      field = numpy.zeros( (1, nvertices, 2), dtype=numpy.float64)
+      field = numpy.zeros( (1, nvertices, dim), dtype=numpy.float64)
       field[0,:,0] = finalSlip
 
       if self.fault == 2:
         field *= -1
 
     elif name == "traction_change":
-      field = numpy.zeros( (1, nvertices, 2), dtype=numpy.float64)
+      field = numpy.zeros( (1, nvertices, dim), dtype=numpy.float64)
       field[0,:,0] = 0.0
       
     else:
diff --git a/tests_auto/3d/tet4/sliponefault.cfg b/tests_auto/3d/hex8/sliponefault.cfg
similarity index 96%
copy from tests_auto/3d/tet4/sliponefault.cfg
copy to tests_auto/3d/hex8/sliponefault.cfg
index 0f58bd6..fd395c2 100644
--- a/tests_auto/3d/tet4/sliponefault.cfg
+++ b/tests_auto/3d/hex8/sliponefault.cfg
@@ -12,7 +12,7 @@
 #meshiocubit = 1
 #implicitelasticity = 1
 #quadrature3d = 1
-#fiatsimplex = 1
+#fiatlagrange = 1
 
 # ----------------------------------------------------------------------
 # mesh_generator
@@ -47,7 +47,7 @@ label = Elastic material
 id = 1
 db_properties.label = Elastic properties
 db_properties.iohandler.filename = matprops.spatialdb
-quadrature.cell = pylith.feassemble.FIATSimplex
+quadrature.cell = pylith.feassemble.FIATLagrange
 quadrature.cell.dimension = 3
 
 [sliponefault.timedependent.materials.viscoelastic]
@@ -55,7 +55,7 @@ label = Elastic material
 id = 2
 db_properties.label = Elastic properties
 db_properties.iohandler.filename = matprops.spatialdb
-quadrature.cell = pylith.feassemble.FIATSimplex
+quadrature.cell = pylith.feassemble.FIATLagrange
 quadrature.cell.dimension = 3
 
 # ----------------------------------------------------------------------
@@ -89,6 +89,7 @@ interfaces = [fault]
 [sliponefault.timedependent.interfaces.fault]
 id = 100
 label = fault_x_thru
+quadrature.cell = pylith.feassemble.FIATLagrange
 quadrature.cell.dimension = 2
 
 [sliponefault.timedependent.interfaces.fault.eq_srcs.rupture.slip_function]
diff --git a/tests_auto/3d/tet4/sliponefault_soln.py b/tests_auto/3d/hex8/sliponefault_soln.py
similarity index 94%
copy from tests_auto/3d/tet4/sliponefault_soln.py
copy to tests_auto/3d/hex8/sliponefault_soln.py
index 3974cff..62c4af4 100644
--- a/tests_auto/3d/tet4/sliponefault_soln.py
+++ b/tests_auto/3d/hex8/sliponefault_soln.py
@@ -66,10 +66,10 @@ class AnalyticalSoln(object):
     (nlocs, dim) = locs.shape
 
     disp = numpy.zeros( (1, nlocs, 3), dtype=numpy.float64)
-    maskP = locs[:,0] > 0.0
+    maskP = locs[:,0] < 0.0
     maskP[nlocsO:nlocs] = True
-    maskN = numpy.bitwise_and(locs[:,0] <= 0.0, ~maskP)
-    disp[0,:,1] = maskN*(+1.0) + maskP*(-1.0)
+    maskN = ~maskP
+    disp[0,:,1] = maskN*(-1.0) + maskP*(+1.0)
     return disp
 
 
diff --git a/tests_auto/3d/tet4/sliptwofaults.cfg b/tests_auto/3d/hex8/sliptwofaults.cfg
similarity index 95%
copy from tests_auto/3d/tet4/sliptwofaults.cfg
copy to tests_auto/3d/hex8/sliptwofaults.cfg
index f416daa..3424b7d 100644
--- a/tests_auto/3d/tet4/sliptwofaults.cfg
+++ b/tests_auto/3d/hex8/sliptwofaults.cfg
@@ -12,7 +12,7 @@
 #meshiocubit = 1
 #implicitelasticity = 1
 #quadrature2d = 1
-#fiatsimplex = 1
+#fiatlagrange = 1
 
 # ----------------------------------------------------------------------
 # mesh_generator
@@ -47,7 +47,7 @@ label = Elastic material
 id = 1
 db_properties.label = Elastic properties
 db_properties.iohandler.filename = matprops.spatialdb
-quadrature.cell = pylith.feassemble.FIATSimplex
+quadrature.cell = pylith.feassemble.FIATLagrange
 quadrature.cell.dimension = 3
 
 [sliptwofaults.timedependent.materials.viscoelastic]
@@ -55,7 +55,7 @@ label = Elastic material
 id = 2
 db_properties.label = Elastic properties
 db_properties.iohandler.filename = matprops.spatialdb
-quadrature.cell = pylith.feassemble.FIATSimplex
+quadrature.cell = pylith.feassemble.FIATLagrange
 quadrature.cell.dimension = 3
 
 # ----------------------------------------------------------------------
@@ -89,6 +89,7 @@ interfaces = [fault1,fault2]
 [sliptwofaults.timedependent.interfaces.fault1]
 id = 10
 label = fault_x_thru
+quadrature.cell = pylith.feassemble.FIATLagrange
 quadrature.cell.dimension = 2
 
 [sliptwofaults.timedependent.interfaces.fault1.eq_srcs.rupture.slip_function]
@@ -105,6 +106,7 @@ slip_time.data = [0.0*s]
 [sliptwofaults.timedependent.interfaces.fault2]
 id = 20
 label = fault_x2_thru
+quadrature.cell = pylith.feassemble.FIATLagrange
 quadrature.cell.dimension = 2
 
 [sliptwofaults.timedependent.interfaces.fault2.eq_srcs.rupture.slip_function]
diff --git a/tests_auto/3d/tet4/sliptwofaults_soln.py b/tests_auto/3d/hex8/sliptwofaults_soln.py
similarity index 95%
copy from tests_auto/3d/tet4/sliptwofaults_soln.py
copy to tests_auto/3d/hex8/sliptwofaults_soln.py
index 9c29448..15ba15a 100644
--- a/tests_auto/3d/tet4/sliptwofaults_soln.py
+++ b/tests_auto/3d/hex8/sliptwofaults_soln.py
@@ -66,8 +66,8 @@ class AnalyticalSoln(object):
     (nlocs, dim) = locs.shape
 
     disp = numpy.zeros( (1, nlocs, 3), dtype=numpy.float64)
-    maskP = numpy.bitwise_or(locs[:,0] <= 0.0, locs[:,0] >= +20.0e+3)
-    maskP[nlocsO:nlocs] = False
+    maskP = numpy.bitwise_or(locs[:,0] < 0.0, locs[:,0] >= +20.0e+3)
+    maskP[nlocsO:nlocs] = locs[nlocsO:nlocs:,0] <= +0.0
     maskN = ~maskP
     disp[0,:,1] = maskN*(-1.0) + maskP*(+1.0)
     return disp
diff --git a/tests_auto/3d/hex8/testpylith.py b/tests_auto/3d/hex8/testpylith.py
index c0c77b6..044a949 100644
--- a/tests_auto/3d/hex8/testpylith.py
+++ b/tests_auto/3d/hex8/testpylith.py
@@ -33,6 +33,17 @@ def suite():
   from TestShearDispNoSlip import TestShearDispNoSlip
   suite.addTest(unittest.makeSuite(TestShearDispNoSlip))
 
+  # Disabled. Incorrect solution due to refinement of fault halo not
+  # tied together.
+  #from TestShearDispNoSlipRefine import TestShearDispNoSlipRefine
+  #suite.addTest(unittest.makeSuite(TestShearDispNoSlipRefine))
+
+  from TestSlipOneFault import TestSlipOneFault
+  suite.addTest(unittest.makeSuite(TestSlipOneFault))
+
+  from TestSlipTwoFaults import TestSlipTwoFaults
+  suite.addTest(unittest.makeSuite(TestSlipTwoFaults))
+
   return suite
 
 
diff --git a/tests_auto/3d/tet4/README b/tests_auto/3d/tet4/README
index 5dcca29..b730ec7 100644
--- a/tests_auto/3d/tet4/README
+++ b/tests_auto/3d/tet4/README
@@ -6,133 +6,32 @@ DOMAIN
 -40 km <= y <= +40 km
 -40 km <= z <= 0 km
 
-Mesh is tet4 cells with nominal 10km discretization size.
+Mesh is tet4 cells with nominal 10 km discretization size.
 
-======================================================================
-AXIAL COMPRESSION - axialdisp
-======================================================================
-
-3-D axial extension test with linear tetrahedral cells.
-
-Specify
-  Ux(-40km,    y,    z)
-  Uy(    x,+40km,    z)
-  Uy(    x,-40km,    z)
-  Uz(    x,    y,-40km)
-
-Construct solution (see axialdisp_soln.py) from specified Sxx.
-
-
-======================================================================
-SHEAR - sheardisp
-======================================================================
-
-2-D shear test with linear tetrahedral cells.
-
-Specify
-  Uy(+40km,y,z)
-  Uy(-40km,y,z)
-  Ux(x,+40km,z)
-  Ux(x,-40km,z)
-  Uz(x,y,-40km)
-
-Construct solution (see sheardisp_soln.py) from specified Sxy.
-
-======================================================================
-SHEAR (NO FAULT SLIP) - shearnoslip
-======================================================================
-
-2-D shear test with linear tetrahedral cells with zero slip on fault.
-
-Same Dirichlet boundary conditions and solution as sheardisp.
-
-
-======================================================================
-THRUFAULTSLIP
-======================================================================
-
-3-D dislocation test with linear tetrahedral cells.
-
-
-          ----------
-          |    |    |
-Uy=-0.5 m |    |    | Uy=+0.5m
-          |    |    |
-          |    |    |
-          ----------
-
-
-Dirichlet boundary conditions
-  Ux(   0,y) =  0.0
-  Uy(   0,y) = -0.5 m
-  Ux(+400,y) =  0.0
-  Uy(+400,y) = +0.5 m
-
-Analytical solution
-  Ux(x<0,y) = -0.5 m
-  Ux(x>0,y) = +0.5 m
-  Uy = 0.0
-
-======================================================================
-THRUFAULT2SLIP
-======================================================================
-
-3-D dislocation test with linear tetrahedral cells with 2 faults. One
-is right-lateral and one is left-lateral to cause the middle section
-to move 1.0 m to the right.
-
-
-           Ux=0     
-         ----------
-         |        |
-         |--------| 
-         | Ux=1.0m|
-         |--------|
-         |        |
-         ----------
-           Ux=0
-
-
-Dirichlet boundary conditions
-  Ux(x,+400) =  0.0
-  Uy(x,+400) =  0.0
-  Ux(x,-400) =  0.0
-  Uy(x,-400) =  0.0
-
-Analytical solution
-  Ux(x,-100<y<+100) = +1.0 m
-  Ux(x,-100>y) = 0.0
-  Ux(x,+100<y) = 0.0
-  Uy = 0.0
-
-======================================================================
-TRIMFAULTSLIP
-======================================================================
+AXIALDISP: See axialdisp_soln.py
+  Axial extension
+  No fault
+  Dirichlet BC
 
-3-D dislocation test with linear tetrahedral cells with 2 faults. One
-is right-lateral and one is left-lateral to cause the middle section
-to move 1.0 m to the right.
+SHEARDISP: See sheardisp_soln.py
+  Shear
+  No fault
+  Dirichlet BC
 
+SHEARDISPNOSLIP:
+  Same as SHEARDISP
+  Embedded fault w/zero slip
 
-           Ux=0     
-         ----------
-         |        |
-         |--------| 
-         | Ux=1.0m|
-         |--------|
-         |        |
-         ----------
-           Ux=0
+SHEARDISPNOSLIPREFINE:
+  Same as SHEARDISPNOSLIP
+  Uniform refinement
 
+  NOTE: The solution test currently fails in v2.0.0 because in the
+  refined mesh we don't connect the vertices across the ends of the
+  fault in the halo around the fault.
 
-Dirichlet boundary conditions
-  Ux(x,+400) =  0.0
-  Uy(x,+400) =  0.0
-  Ux(x,-400) =  0.0
-  Uy(x,-400) =  0.0
+SLIPONEFAULT: See sliponefault_soln.py
+  One through-going fault with uniform slip
 
-Analytical solution
-  Ux(x,-100<y<+100) = +1.0 m
-  Ux(x,-100>y) = 0.0
-  Ux(x,+100<y) = 0.0
-  Uy = 0.0
+SLIPTWOFAULTS: See sliptwofaults_soln.py
+  Two through-going faults with uniform slip



More information about the CIG-COMMITS mailing list