[cig-commits] [commit] baagaard/add-release-2.0.3, baagaard/add-release-2.1.0, baagaard/dynrup-new-lagrange, baagaard/feature-output-station-names, baagaard/feature-progress-monitor, baagaard/fix-custom-faultpc, baagaard/fix-faults-intersect, baagaard/fix-friction-initial-state, baagaard/update-autoconf, knepley/feature-petsc-fe, knepley/upgrade-petsc-3.5, knepley/upgrade-petsc-master, maint, master, next, willic3/fix-plasticity: Finished embedded fault test with friction and field split w/custom fault PC. (e0cb277)

cig_noreply at geodynamics.org cig_noreply at geodynamics.org
Wed Nov 5 15:44:57 PST 2014


Repository : https://github.com/geodynamics/pylith

On branches: baagaard/add-release-2.0.3,baagaard/add-release-2.1.0,baagaard/dynrup-new-lagrange,baagaard/feature-output-station-names,baagaard/feature-progress-monitor,baagaard/fix-custom-faultpc,baagaard/fix-faults-intersect,baagaard/fix-friction-initial-state,baagaard/update-autoconf,knepley/feature-petsc-fe,knepley/upgrade-petsc-3.5,knepley/upgrade-petsc-master,maint,master,next,willic3/fix-plasticity
Link       : https://github.com/geodynamics/pylith/compare/f33c75b19fd60eedb2a3405db76a1fee333bb1d7...5b6d812b1612809fea3bd331c4e5af98c25a536a

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

commit e0cb27717f3b0ff0b293386c7ecdb6827e0b124b
Author: Brad Aagaard <baagaard at usgs.gov>
Date:   Wed Jul 16 17:42:22 2014 -0700

    Finished embedded fault test with friction and field split w/custom fault PC.


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

e0cb27717f3b0ff0b293386c7ecdb6827e0b124b
 tests_auto/3d/hex8/Makefile.am                     |  6 +-
 ...FrictionNoSlip.py => TestFrictionNoSlipHalo.py} | 45 +++----------
 tests_auto/3d/hex8/frictionnoslip.cfg              | 21 +++---
 ...{frictionnoslip.cfg => frictionnoslip_halo.cfg} | 75 +++++++++++-----------
 tests_auto/3d/hex8/testpylith.py                   |  6 ++
 5 files changed, 68 insertions(+), 85 deletions(-)

diff --git a/tests_auto/3d/hex8/Makefile.am b/tests_auto/3d/hex8/Makefile.am
index 1808c73..128b0ae 100644
--- a/tests_auto/3d/hex8/Makefile.am
+++ b/tests_auto/3d/hex8/Makefile.am
@@ -34,6 +34,8 @@ dist_noinst_PYTHON = \
 	sliponefault_soln.py \
 	TestSlipTwoFaults.py \
 	sliptwofaults_soln.py \
+	TestFrictionNoSlip.py \
+	TestFrictionNoSlipHalo.py \
 	testpylith.py
 
 
@@ -47,7 +49,9 @@ dist_noinst_DATA = \
 	sheardispnoslip.cfg \
 	sheardispnosliprefine.cfg \
 	sliponefault.cfg \
-	sliptwofaults.cfg
+	sliptwofaults.cfg \
+	frictionnoslip.cfg \
+	frictionnoslip_halo.cfg
 
 noinst_TMP = \
 	shear_dispx.spatialdb \
diff --git a/tests_auto/3d/hex8/TestFrictionNoSlip.py b/tests_auto/3d/hex8/TestFrictionNoSlipHalo.py
similarity index 72%
copy from tests_auto/3d/hex8/TestFrictionNoSlip.py
copy to tests_auto/3d/hex8/TestFrictionNoSlipHalo.py
index d93b9e9..3390991 100644
--- a/tests_auto/3d/hex8/TestFrictionNoSlip.py
+++ b/tests_auto/3d/hex8/TestFrictionNoSlipHalo.py
@@ -16,7 +16,7 @@
 # ----------------------------------------------------------------------
 #
 
-## @file tests/3d/hex8/TestFrictionNoSlip.py
+## @file tests/3d/hex8/TestFrictionNoSlipHalo.py
 ##
 ## @brief Test suite for testing pylith with 3-D shear motion with no
 ## fault slip.
@@ -29,7 +29,7 @@ from sheardisp_soln import AnalyticalSoln
 from pylith.apps.PyLithApp import PyLithApp
 class ShearApp(PyLithApp):
   def __init__(self):
-    PyLithApp.__init__(self, name="frictionnoslip")
+    PyLithApp.__init__(self, name="frictionnoslip_halo")
     return
 
 
@@ -51,7 +51,7 @@ def run_pylith():
   return
 
 
-class TestFrictionNoSlip(TestHex8):
+class TestFrictionNoSlipHalo(TestHex8):
   """
   Test suite for testing pylith with 2-D shear extension.
   """
@@ -62,14 +62,14 @@ class TestFrictionNoSlip(TestHex8):
     """
     TestHex8.setUp(self)
     self.nverticesO = self.mesh['nvertices']
-    self.mesh['nvertices'] += 10
-    self.faultMesh = {'nvertices': 21,
+    self.mesh['nvertices'] += 21
+    self.faultMesh = {'nvertices': 34,
                       'spaceDim': 3,
-                      'ncells': 12,
+                      'ncells': 23,
                       'ncorners': 4}
 
     run_pylith()
-    self.outputRoot = "frictionnoslip"
+    self.outputRoot = "frictionnoslip_halo"
 
     self.soln = AnalyticalSoln()
     return
@@ -83,7 +83,7 @@ class TestFrictionNoSlip(TestHex8):
       return
 
     filename = "%s-fault_info.h5" % self.outputRoot
-    fields = ["normal_dir","strike_dir","static_coefficient", "traction_initial"]
+    fields = ["static_coefficient"]
 
     from pylith.tests.Fault import check_vertex_fields
     check_vertex_fields(self, filename, self.faultMesh, fields)
@@ -144,47 +144,22 @@ class TestFrictionNoSlip(TestHex8):
     nvertices = self.faultMesh['nvertices']
 
 
-    if name == "normal_dir":
-      field = numpy.zeros( (1, nvertices, 3), dtype=numpy.float64)
-      field[0,:,0] = normalDir[0]
-      field[0,:,1] = normalDir[1]
-      field[0,:,2] = normalDir[2]
-
-    elif name == "strike_dir":
-      field = numpy.zeros( (1, nvertices, 3), dtype=numpy.float64)
-      field[0,:,0] = strikeDir[0]
-      field[0,:,1] = strikeDir[1]
-      field[0,:,2] = strikeDir[2]
-
-    elif name == "static_coefficient":
+    if name == "static_coefficient":
       field = staticCoef*numpy.ones( (1, nvertices, 1), dtype=numpy.float64)
       
-    elif name == "traction_initial":
-      field = numpy.zeros( (1, nvertices, 3), dtype=numpy.float64)
-      field[0,:,0] = initialTraction[0]
-      field[0,:,1] = initialTraction[1]
-      field[0,:,2] = initialTraction[2]
-      
     elif name == "slip":
       field = numpy.zeros( (1, nvertices, 3), dtype=numpy.float64)
 
     else:
       raise ValueError("Unknown fault field '%s'." % name)
 
-    # Mask clamped vertices
-    maskX = numpy.fabs(vertices[:,0]) <= 1.0
-    maskY = numpy.fabs(vertices[:,1]) <= 25.001e+3
-    maskZ = vertices[:,2] >= -20.001e+3
-    mask = numpy.bitwise_and(numpy.bitwise_and(maskX,maskY),maskZ)
-    field[:,~mask,:] = 0.0
-
     return field
 
 
 # ----------------------------------------------------------------------
 if __name__ == '__main__':
   import unittest
-  from TestFrictionNoSlip import TestFrictionNoSlip as Tester
+  from TestFrictionNoSlipHalo import TestFrictionNoSlipHalo as Tester
 
   suite = unittest.TestSuite()
   suite.addTest(unittest.makeSuite(Tester))
diff --git a/tests_auto/3d/hex8/frictionnoslip.cfg b/tests_auto/3d/hex8/frictionnoslip.cfg
index ac99949..6efddf0 100644
--- a/tests_auto/3d/hex8/frictionnoslip.cfg
+++ b/tests_auto/3d/hex8/frictionnoslip.cfg
@@ -1,5 +1,5 @@
 [frictionnoslip]
-nodes = 1
+nodes = 3
 
 [frictionnoslip.launcher] # WARNING: THIS IS NOT PORTABLE
 command = mpirun -np ${nodes}
@@ -8,13 +8,13 @@ command = mpirun -np ${nodes}
 # journal
 # ----------------------------------------------------------------------
 [frictionnoslip.journal.info]
-frictionnoslip = 1
-timedependent = 1
-implicit = 1
-petsc = 1
-solvernonlinear = 1
-meshimporter = 1
-meshiocubit = 1
+#frictionnoslip = 1
+#timedependent = 1
+#implicit = 1
+#petsc = 1
+#solvernonlinear = 1
+#meshimporter = 1
+#meshiocubit = 1
 #implicitelasticity = 1
 #quadrature3d = 1
 #faultcohesivedyn = 1
@@ -118,8 +118,7 @@ interfaces.fault = pylith.faults.FaultCohesiveDyn
 [frictionnoslip.timedependent.interfaces.fault]
 id = 100
 label = fault_x_trim
-up_dir = [1,0,1]
-#edge = fault_x_trim_edge
+edge = fault_x_trim_edge
 quadrature.cell = pylith.feassemble.FIATLagrange
 quadrature.cell.dimension = 2
 
@@ -193,7 +192,7 @@ friction_ksp_gmres_restart = 30
 
 
 #log_summary = true
-start_in_debugger = true
+#start_in_debugger = true
 
 # ----------------------------------------------------------------------
 # output
diff --git a/tests_auto/3d/hex8/frictionnoslip.cfg b/tests_auto/3d/hex8/frictionnoslip_halo.cfg
similarity index 78%
copy from tests_auto/3d/hex8/frictionnoslip.cfg
copy to tests_auto/3d/hex8/frictionnoslip_halo.cfg
index ac99949..4e23bf6 100644
--- a/tests_auto/3d/hex8/frictionnoslip.cfg
+++ b/tests_auto/3d/hex8/frictionnoslip_halo.cfg
@@ -1,20 +1,20 @@
-[frictionnoslip]
+[frictionnoslip_halo]
 nodes = 1
 
-[frictionnoslip.launcher] # WARNING: THIS IS NOT PORTABLE
+[frictionnoslip_halo.launcher] # WARNING: THIS IS NOT PORTABLE
 command = mpirun -np ${nodes}
 
 # ----------------------------------------------------------------------
 # journal
 # ----------------------------------------------------------------------
-[frictionnoslip.journal.info]
-frictionnoslip = 1
-timedependent = 1
-implicit = 1
-petsc = 1
-solvernonlinear = 1
-meshimporter = 1
-meshiocubit = 1
+[frictionnoslip_halo.journal.info]
+#frictionnoslip_halo = 1
+#timedependent = 1
+#implicit = 1
+#petsc = 1
+#solvernonlinear = 1
+#meshimporter = 1
+#meshiocubit = 1
 #implicitelasticity = 1
 #quadrature3d = 1
 #faultcohesivedyn = 1
@@ -23,22 +23,22 @@ meshiocubit = 1
 # ----------------------------------------------------------------------
 # mesh_generator
 # ----------------------------------------------------------------------
-[frictionnoslip.mesh_generator]
+[frictionnoslip_halo.mesh_generator]
 reader = pylith.meshio.MeshIOCubit
 reorder_mesh = True
 
-[frictionnoslip.mesh_generator.reader]
+[frictionnoslip_halo.mesh_generator.reader]
 filename = mesh.exo
 coordsys.space_dim = 3
 
 # ----------------------------------------------------------------------
 # problem
 # ----------------------------------------------------------------------
-[frictionnoslip.timedependent]
+[frictionnoslip_halo.timedependent]
 dimension = 3
 normalizer.length_scale = 5.0*km
 
-[frictionnoslip.timedependent.formulation]
+[frictionnoslip_halo.timedependent.formulation]
 solver = pylith.problems.SolverNonlinear
 time_step.total_time = 0.0*s
 time_step.dt = 1.0*year
@@ -46,12 +46,12 @@ time_step.dt = 1.0*year
 # ----------------------------------------------------------------------
 # materials
 # ----------------------------------------------------------------------
-[frictionnoslip.timedependent]
+[frictionnoslip_halo.timedependent]
 materials = [elastic,viscoelastic]
 materials.elastic = pylith.materials.ElasticIsotropic3D
 materials.viscoelastic = pylith.materials.ElasticIsotropic3D
 
-[frictionnoslip.timedependent.materials.elastic]
+[frictionnoslip_halo.timedependent.materials.elastic]
 label = Elastic material
 id = 1
 db_properties.label = Elastic properties
@@ -59,7 +59,7 @@ db_properties.iohandler.filename = matprops.spatialdb
 quadrature.cell = pylith.feassemble.FIATLagrange
 quadrature.cell.dimension = 3
 
-[frictionnoslip.timedependent.materials.viscoelastic]
+[frictionnoslip_halo.timedependent.materials.viscoelastic]
 label = Elastic material
 id = 2
 db_properties.label = Elastic properties
@@ -70,38 +70,38 @@ quadrature.cell.dimension = 3
 # ----------------------------------------------------------------------
 # boundary conditions
 # ----------------------------------------------------------------------
-[frictionnoslip.timedependent]
+[frictionnoslip_halo.timedependent]
 bc = [x_neg,x_pos,y_neg,y_pos,z_neg]
 
-[frictionnoslip.timedependent.bc.x_pos]
+[frictionnoslip_halo.timedependent.bc.x_pos]
 bc_dof = [1]
 label = face_xpos
 db_initial = spatialdata.spatialdb.SimpleDB
 db_initial.label = Dirichlet BC +x edge
 db_initial.iohandler.filename = shear_dispy.spatialdb
 
-[frictionnoslip.timedependent.bc.x_neg]
+[frictionnoslip_halo.timedependent.bc.x_neg]
 bc_dof = [1]
 label = face_xneg
 db_initial = spatialdata.spatialdb.SimpleDB
 db_initial.label = Dirichlet BC -x edge
 db_initial.iohandler.filename = shear_dispy.spatialdb
 
-[frictionnoslip.timedependent.bc.y_pos]
+[frictionnoslip_halo.timedependent.bc.y_pos]
 bc_dof = [0]
 label = face_ypos
 db_initial = spatialdata.spatialdb.SimpleDB
 db_initial.label = Dirichlet BC +y edge
 db_initial.iohandler.filename = shear_dispx.spatialdb
 
-[frictionnoslip.timedependent.bc.y_neg]
+[frictionnoslip_halo.timedependent.bc.y_neg]
 bc_dof = [0]
 label = face_yneg
 db_initial = spatialdata.spatialdb.SimpleDB
 db_initial.label = Dirichlet BC -y edge
 db_initial.iohandler.filename = shear_dispx.spatialdb
 
-[frictionnoslip.timedependent.bc.z_neg]
+[frictionnoslip_halo.timedependent.bc.z_neg]
 bc_dof = [2]
 label = face_zneg
 db_initial = spatialdata.spatialdb.SimpleDB
@@ -111,15 +111,14 @@ db_initial.iohandler.filename = shear_dispz.spatialdb
 # ----------------------------------------------------------------------
 # faults
 # ----------------------------------------------------------------------
-[frictionnoslip.timedependent]
+[frictionnoslip_halo.timedependent]
 interfaces = [fault]
 interfaces.fault = pylith.faults.FaultCohesiveDyn
 
-[frictionnoslip.timedependent.interfaces.fault]
+[frictionnoslip_halo.timedependent.interfaces.fault]
 id = 100
 label = fault_x_trim
 up_dir = [1,0,1]
-#edge = fault_x_trim_edge
 quadrature.cell = pylith.feassemble.FIATLagrange
 quadrature.cell.dimension = 2
 
@@ -139,7 +138,7 @@ friction.db_initial_state.data = [0*m, 0*m]
 
 traction_perturbation = pylith.faults.TractPerturbation
 
-[frictionnoslip.timedependent.interfaces.fault.traction_perturbation]
+[frictionnoslip_halo.timedependent.interfaces.fault.traction_perturbation]
 db_initial = spatialdata.spatialdb.UniformDB
 db_initial.label = Initial fault tractions
 db_initial.values = [traction-shear-leftlateral,traction-shear-updip,traction-normal]
@@ -149,12 +148,12 @@ db_initial.data = [0.0*Pa, 0.0*Pa, -100.0*MPa]
 # ----------------------------------------------------------------------
 # PETSc
 # ----------------------------------------------------------------------
-[frictionnoslip.problem.formulation]
+[frictionnoslip_halo.problem.formulation]
 split_fields = True
 matrix_type = aij
 use_custom_constraint_pc = True
 
-[frictionnoslip.petsc]
+[frictionnoslip_halo.petsc]
 fs_pc_type = fieldsplit
 fs_pc_use_amat =
 fs_pc_fieldsplit_type = multiplicative
@@ -193,26 +192,26 @@ friction_ksp_gmres_restart = 30
 
 
 #log_summary = true
-start_in_debugger = true
+#start_in_debugger = true
 
 # ----------------------------------------------------------------------
 # output
 # ----------------------------------------------------------------------
-[frictionnoslip.problem.formulation.output.output]
+[frictionnoslip_halo.problem.formulation.output.output]
 writer = pylith.meshio.DataWriterHDF5
-writer.filename = frictionnoslip.h5
+writer.filename = frictionnoslip_halo.h5
 
-[frictionnoslip.timedependent.interfaces.fault.output]
+[frictionnoslip_halo.timedependent.interfaces.fault.output]
 writer = pylith.meshio.DataWriterHDF5
-writer.filename = frictionnoslip-fault.h5
+writer.filename = frictionnoslip_halo-fault.h5
 vertex_info_fields = [strike_dir,normal_dir,traction_initial_value,static_coefficient,cohesion]
 
-[frictionnoslip.timedependent.materials.elastic.output]
+[frictionnoslip_halo.timedependent.materials.elastic.output]
 cell_filter = pylith.meshio.CellFilterAvg
 writer = pylith.meshio.DataWriterHDF5
-writer.filename = frictionnoslip-elastic.h5
+writer.filename = frictionnoslip_halo-elastic.h5
 
-[frictionnoslip.timedependent.materials.viscoelastic.output]
+[frictionnoslip_halo.timedependent.materials.viscoelastic.output]
 cell_filter = pylith.meshio.CellFilterAvg
 writer = pylith.meshio.DataWriterHDF5
-writer.filename = frictionnoslip-viscoelastic.h5
+writer.filename = frictionnoslip_halo-viscoelastic.h5
diff --git a/tests_auto/3d/hex8/testpylith.py b/tests_auto/3d/hex8/testpylith.py
index a488d7b..9b560dc 100644
--- a/tests_auto/3d/hex8/testpylith.py
+++ b/tests_auto/3d/hex8/testpylith.py
@@ -42,6 +42,12 @@ def suite():
   from TestSlipTwoFaults import TestSlipTwoFaults
   suite.addTest(unittest.makeSuite(TestSlipTwoFaults))
 
+  from TestFrictionNoSlip import TestFrictionNoSlip
+  suite.addTest(unittest.makeSuite(TestFrictionNoSlip))
+
+  from TestFrictionNoSlipHalo import TestFrictionNoSlipHalo
+  suite.addTest(unittest.makeSuite(TestFrictionNoSlipHalo))
+
   return suite
 
 



More information about the CIG-COMMITS mailing list