[cig-commits] [commit] baagaard/fix-cubit-cellsize, baagaard/fix-fullscale-3d-tests, baagaard/fix-packaging, knepley/fix-parallel-mult-faults, knepley/upgrade-petsc-interface, master, next: Updated tet4 full-scale tests to use smaller mesh. (fb662cc)

cig_noreply at geodynamics.org cig_noreply at geodynamics.org
Wed Apr 9 03:02:45 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,knepley/upgrade-petsc-interface,master,next
Link       : https://github.com/geodynamics/pylith/compare/a213c3005450d915f40c7137ff7d8dbbb439d334...1b3d6d3bc246edc4235d0051142d675d91e9be41

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

commit fb662cc8ee4ce60ca27660a20fa24d05fd1240e5
Author: Brad Aagaard <baagaard at usgs.gov>
Date:   Wed Mar 12 15:54:40 2014 -0700

    Updated tet4 full-scale tests to use smaller mesh.


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

fb662cc8ee4ce60ca27660a20fa24d05fd1240e5
 tests_auto/3d/tet4/README                       |   2 +-
 tests_auto/3d/tet4/TestShearDispNoSlip.py       |   8 +--
 tests_auto/3d/tet4/TestShearDispNoSlipRefine.py |  46 +++++++++++++---
 tests_auto/3d/tet4/TestTet4.py                  |   6 +-
 tests_auto/3d/tet4/geometry.jou                 |  12 ++--
 tests_auto/3d/tet4/mesh.exo                     | Bin 568924 -> 88504 bytes
 tests_auto/3d/tet4/mesh.jou                     |  70 +++++++++++-------------
 tests_auto/3d/tet4/testpylith.py                |   5 ++
 8 files changed, 89 insertions(+), 60 deletions(-)

diff --git a/tests_auto/3d/tet4/README b/tests_auto/3d/tet4/README
index 650da68..5dcca29 100644
--- a/tests_auto/3d/tet4/README
+++ b/tests_auto/3d/tet4/README
@@ -6,7 +6,7 @@ DOMAIN
 -40 km <= y <= +40 km
 -40 km <= z <= 0 km
 
-Mesh is tet4 cells with nominal 5km discretization size.
+Mesh is tet4 cells with nominal 10km discretization size.
 
 ======================================================================
 AXIAL COMPRESSION - axialdisp
diff --git a/tests_auto/3d/tet4/TestShearDispNoSlip.py b/tests_auto/3d/tet4/TestShearDispNoSlip.py
index 5bafd21..23fb9b8 100644
--- a/tests_auto/3d/tet4/TestShearDispNoSlip.py
+++ b/tests_auto/3d/tet4/TestShearDispNoSlip.py
@@ -62,10 +62,10 @@ class TestShearDispNoSlip(TestTet4):
     """
     TestTet4.setUp(self)
     self.nverticesO = self.mesh['nvertices']
-    self.mesh['nvertices'] += 51
-    self.faultMesh = {'nvertices': 51,
+    self.mesh['nvertices'] += 19
+    self.faultMesh = {'nvertices': 19,
                       'spaceDim': 3,
-                      'ncells': 74,
+                      'ncells': 20,
                       'ncorners': 3}
     run_pylith()
     self.outputRoot = "sheardispnoslip"
@@ -134,7 +134,7 @@ class TestShearDispNoSlip(TestTet4):
     Calculate fault info.
     """
 
-    normalDir = (-1.0, 0.0, 0.0)
+    normalDir = (+1.0, 0.0, 0.0)
     finalSlip = 0.0
     slipTime = 0.0
 
diff --git a/tests_auto/3d/tet4/TestShearDispNoSlipRefine.py b/tests_auto/3d/tet4/TestShearDispNoSlipRefine.py
index 6e31fbc..356af4d 100644
--- a/tests_auto/3d/tet4/TestShearDispNoSlipRefine.py
+++ b/tests_auto/3d/tet4/TestShearDispNoSlipRefine.py
@@ -61,17 +61,17 @@ class TestShearDispNoSlipRefine(TestTet4):
     Setup for test.
     """
     TestTet4.setUp(self)
-    self.mesh = {'ncells-elastic': 7068*8,
-                 'ncells-viscoelastic': 11131*8,
+    self.mesh = {'ncells-elastic': 1266*8,
+                 'ncells-viscoelastic': 1276*8,
                  'ncorners': 4,
-                 'nvertices': 26947,
+                 'nvertices': 4040,
                  'spaceDim': 3,
                  'tensorSize': 6}
     self.nverticesO = self.mesh['nvertices']
-    self.mesh['nvertices'] += 0
-    self.faultMesh = {'nvertices': 51,
+    self.mesh['nvertices'] +=57
+    self.faultMesh = {'nvertices': 57,
                       'spaceDim': 3,
-                      'ncells': 30*4,
+                      'ncells': 20*4,
                       'ncorners': 3}
     run_pylith()
     self.outputRoot = "sheardispnosliprefine"
@@ -80,6 +80,38 @@ class TestShearDispNoSlipRefine(TestTet4):
     return
 
 
+  def test_fault_info(self):
+    """
+    Check fault information.
+    """
+    if not self.checkResults:
+      return
+
+    filename = "%s-fault_info.h5" % self.outputRoot
+    fields = ["normal_dir", "final_slip", "slip_time"]
+
+    from pylith.tests.Fault import check_vertex_fields
+    check_vertex_fields(self, filename, self.faultMesh, fields)
+
+    return
+
+
+  def test_fault_data(self):
+    """
+    Check fault information.
+    """
+    if not self.checkResults:
+      return
+
+    filename = "%s-fault.h5" % self.outputRoot
+    fields = ["slip"]
+
+    from pylith.tests.Fault import check_vertex_fields
+    check_vertex_fields(self, filename, self.faultMesh, fields)
+
+    return
+
+
   def calcDisplacements(self, vertices):
     """
     Calculate displacement field given coordinates of vertices.
@@ -108,7 +140,7 @@ class TestShearDispNoSlipRefine(TestTet4):
     Calculate fault info.
     """
 
-    normalDir = (-1.0, 0.0, 0.0)
+    normalDir = (+1.0, 0.0, 0.0)
     finalSlip = 0.0
     slipTime = 0.0
 
diff --git a/tests_auto/3d/tet4/TestTet4.py b/tests_auto/3d/tet4/TestTet4.py
index ba3d33c..3ed55b4 100644
--- a/tests_auto/3d/tet4/TestTet4.py
+++ b/tests_auto/3d/tet4/TestTet4.py
@@ -34,10 +34,10 @@ class TestTet4(unittest.TestCase):
     """
     Setup for tests.
     """
-    self.mesh = {'ncells-elastic': 7068,
-                 'ncells-viscoelastic': 11131,
+    self.mesh = {'ncells-elastic': 1266,
+                 'ncells-viscoelastic': 1276,
                  'ncorners': 4,
-                 'nvertices': 3652,
+                 'nvertices': 590,
                  'spaceDim': 3,
                  'tensorSize': 6}
 
diff --git a/tests_auto/3d/tet4/geometry.jou b/tests_auto/3d/tet4/geometry.jou
index 482bb70..a5d9b54 100644
--- a/tests_auto/3d/tet4/geometry.jou
+++ b/tests_auto/3d/tet4/geometry.jou
@@ -21,7 +21,7 @@ create planar surface with plane xplane offset +20000
 surface 8 name "fault_surface_x2"
 create planar surface with plane yplane offset 0
 surface 9 name "fault_surface_y"
-create planar surface with plane zplane offset -15000
+create planar surface with plane zplane offset -20000
 surface 10 name "material_interface"
 
 # ----------------------------------------------------------------------
@@ -29,7 +29,7 @@ surface 10 name "material_interface"
 # ----------------------------------------------------------------------
 webcut volume 1 with plane surface fault_surface_x
 webcut volume 1 with plane surface fault_surface_x2
-webcut volume 6 with plane surface fault_surface_y
+webcut volume 7 with plane surface fault_surface_y
 webcut volume 1 6 7 8 with plane surface material_interface
 volume 1 name "elastic_xpos"
 volume 7 name "elastic_xmid"
@@ -44,14 +44,9 @@ volume 12 name "visco_xnegyneg"
 # Chop x and y faults into pieces
 # ----------------------------------------------------------------------
 # fault_surface_x
-brick x 2000 y 50000 z 30000
+brick x 2000 y 50000 z 40000
 chop volume 2 with volume 13
 
-# fault_surface_y
-brick x 25000 y 2000 z 30000
-volume 16 move x -12500 y 0 z 0
-chop volume 4 with volume 16
-
 # ----------------------------------------------------------------------
 # Imprint all volumes, merging surfaces
 # ----------------------------------------------------------------------
@@ -59,3 +54,4 @@ imprint all with volume all
 merge all
 
 
+
diff --git a/tests_auto/3d/tet4/mesh.exo b/tests_auto/3d/tet4/mesh.exo
index 900acfa..4e72721 100644
Binary files a/tests_auto/3d/tet4/mesh.exo and b/tests_auto/3d/tet4/mesh.exo differ
diff --git a/tests_auto/3d/tet4/mesh.jou b/tests_auto/3d/tet4/mesh.jou
index 4eec193..11a38c9 100644
--- a/tests_auto/3d/tet4/mesh.jou
+++ b/tests_auto/3d/tet4/mesh.jou
@@ -6,7 +6,7 @@ playback 'geometry.jou'
 # ----------------------------------------------------------------------
 # Set discretization size
 # ----------------------------------------------------------------------
-volume all size 5000
+volume all size 10000.0
 
 # ----------------------------------------------------------------------
 # Generate the mesh
@@ -43,8 +43,8 @@ nodeset 11 group fault_x_trim
 nodeset 11 name "fault_x_trim"
 
 group "fault_x_trim_edge" add node in curve 153
-group "fault_x_trim_edge" add node in curve 216
-group "fault_x_trim_edge" add node in curve 215
+group "fault_x_trim_edge" add node in curve 204
+group "fault_x_trim_edge" add node in curve 208
 group "fault_x_trim_edge" add node in curve 155
 nodeset 12 group fault_x_trim_edge
 nodeset 12 name "fault_x_trim_edge"
@@ -56,27 +56,22 @@ group "fault_x2_thru" add node in surface fault_surface_x2 at C
 nodeset 13 group fault_x2_thru
 nodeset 13 name "fault_x2_thru"
 
-group "fault_y_trim" add node in surface fault_surface_y
-nodeset 14 group fault_y_trim
-nodeset 14 name "fault_y_trim"
+group "fault_y" add node in surface fault_surface_y at D
+nodeset 14 group fault_y
+nodeset 14 name "fault_y"
 
-group "fault_y_trim2" add node in surface fault_surface_y
-group "fault_y_trim2" remove node in group fault_x_trim
-nodeset 15 group fault_y_trim2
-nodeset 15 name "fault_y_trim2"
-
-group "fault_y_trim_edge" add node in curve 100
-group "fault_y_trim_edge" add node in curve 175
-group "fault_y_trim_edge" add node in curve 176
-nodeset 16 group fault_y_trim_edge
-nodeset 16 name "fault_y_trim_edge"
+group "fault_y_edge" add node in curve 116
+group "fault_y_edge" add node in curve 109
+group "fault_y_edge" add node in curve 115
+nodeset 16 group fault_y_edge
+nodeset 16 name "fault_y_edge"
 
 # ----------------------------------------------------------------------
 # Create nodeset for +x face
 # ----------------------------------------------------------------------
-group "face_xpos" add node in surface 102
-group "face_xpos" add node in surface 98
-group "face_xpos" add node in surface 140
+group "face_xpos" add node in surface 90
+group "face_xpos" add node in surface 94
+group "face_xpos" add node in surface 127
 group "face_xpos" add node in surface 134
 nodeset 20 group face_xpos
 nodeset 20 name "face_xpos"
@@ -84,10 +79,10 @@ nodeset 20 name "face_xpos"
 # ----------------------------------------------------------------------
 # Create nodeset for -x face
 # ----------------------------------------------------------------------
-group "face_xneg" add node in surface 53
-group "face_xneg" add node in surface 75
-group "face_xneg" add node in surface 77
-group "face_xneg" add node in surface 59
+group "face_xneg" add node in surface 120
+group "face_xneg" add node in surface 116
+group "face_xneg" add node in surface 137
+group "face_xneg" add node in surface 142
 nodeset 21 group face_xneg
 nodeset 21 name "face_xneg"
 
@@ -95,22 +90,22 @@ nodeset 21 name "face_xneg"
 # Create nodeset for +y face
 # ----------------------------------------------------------------------
 group "face_ypos" add node in surface 43
-group "face_ypos" add node in surface 65
-group "face_ypos" add node in surface 52
+group "face_ypos" add node in surface 62
+group "face_ypos" add node in surface 55
 group "face_ypos" add node in surface 49
-group "face_ypos" add node in surface 67
-group "face_ypos" add node in surface 60
+group "face_ypos" add node in surface 70
+group "face_ypos" add node in surface 57
 nodeset 22 group face_ypos
 nodeset 22 name "face_ypos"
 
 # ----------------------------------------------------------------------
 # Create nodeset for -y face
 # ----------------------------------------------------------------------
+group "face_yneg" add node in surface 53
 group "face_yneg" add node in surface 72
-group "face_yneg" add node in surface 63
 group "face_yneg" add node in surface 45
+group "face_yneg" add node in surface 59
 group "face_yneg" add node in surface 80
-group "face_yneg" add node in surface 69
 group "face_yneg" add node in surface 47
 nodeset 23 group face_yneg
 nodeset 23 name "face_yneg"
@@ -118,12 +113,12 @@ nodeset 23 name "face_yneg"
 # ----------------------------------------------------------------------
 # Create nodeset for +z face
 # ----------------------------------------------------------------------
+group "face_zpos" add node in surface 115
 group "face_zpos" add node in surface 33
-group "face_zpos" add node in surface 128
-group "face_zpos" add node in surface 104
+group "face_zpos" add node in surface 96
+group "face_zpos" add node in surface 122
 group "face_zpos" add node in surface 39
-group "face_zpos" add node in surface 120
-group "face_zpos" add node in surface 97
+group "face_zpos" add node in surface 89
 nodeset 24 group face_zpos
 nodeset 24 name "face_zpos"
 
@@ -131,11 +126,11 @@ nodeset 24 name "face_zpos"
 # Create nodeset for -z face
 # ----------------------------------------------------------------------
 group "face_zneg" add node in surface 37
-group "face_zneg" add node in surface 148
-group "face_zneg" add node in surface 139
-group "face_zneg" add node in surface 35
-group "face_zneg" add node in surface 143
 group "face_zneg" add node in surface 133
+group "face_zneg" add node in surface 141
+group "face_zneg" add node in surface 35
+group "face_zneg" add node in surface 128
+group "face_zneg" add node in surface 135
 nodeset 25 group face_zneg
 nodeset 25 name "face_zneg"
 
@@ -152,3 +147,4 @@ nodeset 26 name "face_zneg_nofault"
 # Export exodus file
 # ----------------------------------------------------------------------
 export mesh "mesh.exo" dimension 3 overwrite
+
diff --git a/tests_auto/3d/tet4/testpylith.py b/tests_auto/3d/tet4/testpylith.py
index c0c77b6..bee9a45 100644
--- a/tests_auto/3d/tet4/testpylith.py
+++ b/tests_auto/3d/tet4/testpylith.py
@@ -33,6 +33,11 @@ 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))
+
   return suite
 
 



More information about the CIG-COMMITS mailing list