[cig-commits] r19057 - in short/3D/PyLith/branches/v1.6-revisedfault/tests/3d: . cyclicfriction

brad at geodynamics.org brad at geodynamics.org
Tue Oct 11 14:51:18 PDT 2011


Author: brad
Date: 2011-10-11 14:51:18 -0700 (Tue, 11 Oct 2011)
New Revision: 19057

Added:
   short/3D/PyLith/branches/v1.6-revisedfault/tests/3d/cyclicfriction/
   short/3D/PyLith/branches/v1.6-revisedfault/tests/3d/cyclicfriction/Makefile.am
   short/3D/PyLith/branches/v1.6-revisedfault/tests/3d/cyclicfriction/cycle.timedb
   short/3D/PyLith/branches/v1.6-revisedfault/tests/3d/cyclicfriction/geometry.jou
   short/3D/PyLith/branches/v1.6-revisedfault/tests/3d/cyclicfriction/hex8_1000m.exo
   short/3D/PyLith/branches/v1.6-revisedfault/tests/3d/cyclicfriction/hex8_1000m.jou
   short/3D/PyLith/branches/v1.6-revisedfault/tests/3d/cyclicfriction/initial_tractions.spatialdb
   short/3D/PyLith/branches/v1.6-revisedfault/tests/3d/cyclicfriction/pylithapp.cfg
Log:
Added cyclicfriction test.

Added: short/3D/PyLith/branches/v1.6-revisedfault/tests/3d/cyclicfriction/Makefile.am
===================================================================
--- short/3D/PyLith/branches/v1.6-revisedfault/tests/3d/cyclicfriction/Makefile.am	                        (rev 0)
+++ short/3D/PyLith/branches/v1.6-revisedfault/tests/3d/cyclicfriction/Makefile.am	2011-10-11 21:51:18 UTC (rev 19057)
@@ -0,0 +1,25 @@
+# -*- Makefile -*-
+#
+# ----------------------------------------------------------------------
+#
+# Brad T. Aagaard, U.S. Geological Survey
+# Charles A. Williams, GNS Science
+# Matthew G. Knepley, University of Chicago
+#
+# This code was developed as part of the Computational Infrastructure
+# for Geodynamics (http://geodynamics.org).
+#
+# Copyright (c) 2010-2011 University of California, Davis
+#
+# See COPYING for license information.
+#
+# ----------------------------------------------------------------------
+#
+
+dist_noinst_DATA = \
+	pylithapp.cfg \
+	matprops.spatialdb \
+	cycle.timedb
+
+
+# End of file 

Added: short/3D/PyLith/branches/v1.6-revisedfault/tests/3d/cyclicfriction/cycle.timedb
===================================================================
--- short/3D/PyLith/branches/v1.6-revisedfault/tests/3d/cyclicfriction/cycle.timedb	                        (rev 0)
+++ short/3D/PyLith/branches/v1.6-revisedfault/tests/3d/cyclicfriction/cycle.timedb	2011-10-11 21:51:18 UTC (rev 19057)
@@ -0,0 +1,112 @@
+// -*- C++ -*-
+//
+// This temporal database specifies the time history of loading. The
+// units are nondimensional corresponding to just a scaled version of
+// the spatial variation.
+//
+#TIME HISTORY ascii
+TimeHistory {
+  num-points = 101 // number of points in time history
+  time-units = hour // units for time
+}
+0.000000000000000000e+00 0.000000000000000000e+00
+1.000000000000000000e+00 1.564344650402308690e-01
+2.000000000000000000e+00 3.090169943749473958e-01
+3.000000000000000000e+00 4.539904997395467490e-01
+4.000000000000000000e+00 5.877852522924731371e-01
+5.000000000000000000e+00 7.071067811865474617e-01
+6.000000000000000000e+00 8.090169943749474513e-01
+7.000000000000000000e+00 8.910065241883677878e-01
+8.000000000000000000e+00 9.510565162951535312e-01
+9.000000000000000000e+00 9.876883405951377704e-01
+1.000000000000000000e+01 1.000000000000000000e+00
+1.100000000000000000e+01 9.876883405951377704e-01
+1.200000000000000000e+01 9.510565162951536422e-01
+1.300000000000000000e+01 8.910065241883678988e-01
+1.400000000000000000e+01 8.090169943749474513e-01
+1.500000000000000000e+01 7.071067811865475727e-01
+1.600000000000000000e+01 5.877852522924732481e-01
+1.700000000000000000e+01 4.539904997395468600e-01
+1.800000000000000000e+01 3.090169943749475068e-01
+1.900000000000000000e+01 1.564344650402309800e-01
+2.000000000000000000e+01 1.224646799147353207e-16
+2.100000000000000000e+01 -1.564344650402307302e-01
+2.200000000000000000e+01 -3.090169943749468962e-01
+2.300000000000000000e+01 -4.539904997395466935e-01
+2.400000000000000000e+01 -5.877852522924730261e-01
+2.500000000000000000e+01 -7.071067811865474617e-01
+2.600000000000000000e+01 -8.090169943749473402e-01
+2.700000000000000000e+01 -8.910065241883677878e-01
+2.800000000000000000e+01 -9.510565162951535312e-01
+2.900000000000000000e+01 -9.876883405951376593e-01
+3.000000000000000000e+01 -1.000000000000000000e+00
+3.100000000000000000e+01 -9.876883405951377704e-01
+3.200000000000000000e+01 -9.510565162951536422e-01
+3.300000000000000000e+01 -8.910065241883678988e-01
+3.400000000000000000e+01 -8.090169943749475623e-01
+3.500000000000000000e+01 -7.071067811865476838e-01
+3.600000000000000000e+01 -5.877852522924733591e-01
+3.700000000000000000e+01 -4.539904997395469710e-01
+3.800000000000000000e+01 -3.090169943749476178e-01
+3.900000000000000000e+01 -1.564344650402310910e-01
+4.000000000000000000e+01 -2.449293598294706414e-16
+4.100000000000000000e+01 1.564344650402297310e-01
+4.200000000000000000e+01 3.090169943749471737e-01
+4.300000000000000000e+01 4.539904997395465824e-01
+4.400000000000000000e+01 5.877852522924721379e-01
+4.500000000000000000e+01 7.071067811865473507e-01
+4.600000000000000000e+01 8.090169943749472292e-01
+4.700000000000000000e+01 8.910065241883681209e-01
+4.800000000000000000e+01 9.510565162951535312e-01
+4.900000000000000000e+01 9.876883405951375483e-01
+5.000000000000000000e+01 1.000000000000000000e+00
+5.100000000000000000e+01 9.876883405951378814e-01
+5.200000000000000000e+01 9.510565162951536422e-01
+5.300000000000000000e+01 8.910065241883675657e-01
+5.400000000000000000e+01 8.090169943749476733e-01
+5.500000000000000000e+01 7.071067811865471286e-01
+5.600000000000000000e+01 5.877852522924733591e-01
+5.700000000000000000e+01 4.539904997395479147e-01
+5.800000000000000000e+01 3.090169943749477843e-01
+5.900000000000000000e+01 1.564344650402320902e-01
+6.000000000000000000e+01 3.673940397442059375e-16
+6.100000000000000000e+01 -1.564344650402313686e-01
+6.200000000000000000e+01 -3.090169943749470627e-01
+6.300000000000000000e+01 -4.539904997395472486e-01
+6.400000000000000000e+01 -5.877852522924728040e-01
+6.500000000000000000e+01 -7.071067811865465735e-01
+6.600000000000000000e+01 -8.090169943749472292e-01
+6.700000000000000000e+01 -8.910065241883672327e-01
+6.800000000000000000e+01 -9.510565162951534202e-01
+6.900000000000000000e+01 -9.876883405951377704e-01
+7.000000000000000000e+01 -1.000000000000000000e+00
+7.100000000000000000e+01 -9.876883405951376593e-01
+7.200000000000000000e+01 -9.510565162951537532e-01
+7.300000000000000000e+01 -8.910065241883684539e-01
+7.400000000000000000e+01 -8.090169943749476733e-01
+7.500000000000000000e+01 -7.071067811865484609e-01
+7.600000000000000000e+01 -5.877852522924734702e-01
+7.700000000000000000e+01 -4.539904997395464159e-01
+7.800000000000000000e+01 -3.090169943749478954e-01
+7.900000000000000000e+01 -1.564344650402304804e-01
+8.000000000000000000e+01 -4.898587196589412829e-16
+8.100000000000000000e+01 1.564344650402295089e-01
+8.200000000000000000e+01 3.090169943749452308e-01
+8.300000000000000000e+01 4.539904997395471375e-01
+8.400000000000000000e+01 5.877852522924726930e-01
+8.500000000000000000e+01 7.071067811865477948e-01
+8.600000000000000000e+01 8.090169943749471182e-01
+8.700000000000000000e+01 8.910065241883672327e-01
+8.800000000000000000e+01 9.510565162951528650e-01
+8.900000000000000000e+01 9.876883405951377704e-01
+9.000000000000000000e+01 1.000000000000000000e+00
+9.100000000000000000e+01 9.876883405951379924e-01
+9.200000000000000000e+01 9.510565162951537532e-01
+9.300000000000000000e+01 8.910065241883685649e-01
+9.400000000000000000e+01 8.090169943749466741e-01
+9.500000000000000000e+01 7.071067811865473507e-01
+9.600000000000000000e+01 5.877852522924735812e-01
+9.700000000000000000e+01 4.539904997395481367e-01
+9.800000000000000000e+01 3.090169943749496717e-01
+9.900000000000000000e+01 1.564344650402305914e-01
+1.000000000000000000e+02 6.123233995736766282e-16

Added: short/3D/PyLith/branches/v1.6-revisedfault/tests/3d/cyclicfriction/geometry.jou
===================================================================
--- short/3D/PyLith/branches/v1.6-revisedfault/tests/3d/cyclicfriction/geometry.jou	                        (rev 0)
+++ short/3D/PyLith/branches/v1.6-revisedfault/tests/3d/cyclicfriction/geometry.jou	2011-10-11 21:51:18 UTC (rev 19057)
@@ -0,0 +1,54 @@
+# ----------------------------------------------------------------------
+# Create block
+# ----------------------------------------------------------------------
+reset
+
+#{Units('si')}
+
+# Make sure undo is off to prevent errors in stitching volumes.
+undo off
+
+# Block is 12 km x 12 km x 6 km
+# -6 km <= x <= 6 km
+# -6 km <= y <= 6 km
+# -6 km <= z <= 0 km
+
+
+#{blockLength=12.0*km}
+#{blockHeight=6.0*km}
+brick x {blockLength} y {blockLength} z {blockHeight}
+
+# Translate block so the top is at z=0
+volume 1 move x 0 y 0 z {-blockHeight/2.0}
+
+# ----------------------------------------------------------------------
+# Create interface surfaces
+# ----------------------------------------------------------------------
+create planar surface with plane xplane offset 0
+create sheet extended from surface 7 intersecting volume 1
+delete body 2
+surface 8 name "fault_surface"
+
+# ----------------------------------------------------------------------
+# Divide volumes using interface surfaces
+# ----------------------------------------------------------------------
+webcut volume 1 with plane surface fault_surface
+delete body 3
+surface 9 name "fault_surface"
+volume 1 name "elastic_xpos"
+volume 4 name "elastic_xneg"
+
+# Create vertical curve at middle of domain
+create vertex on curve 23 fraction 0.5 from start
+create vertex on curve 21 fraction 0.5 from start
+split surface 14  across location vertex 25 location vertex 26
+
+
+delete vertex all
+
+# ----------------------------------------------------------------------
+# Imprint all volumes, merging surfaces
+# ----------------------------------------------------------------------
+imprint all with volume all
+merge all
+

Added: short/3D/PyLith/branches/v1.6-revisedfault/tests/3d/cyclicfriction/hex8_1000m.exo
===================================================================
(Binary files differ)


Property changes on: short/3D/PyLith/branches/v1.6-revisedfault/tests/3d/cyclicfriction/hex8_1000m.exo
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: short/3D/PyLith/branches/v1.6-revisedfault/tests/3d/cyclicfriction/hex8_1000m.jou
===================================================================
--- short/3D/PyLith/branches/v1.6-revisedfault/tests/3d/cyclicfriction/hex8_1000m.jou	                        (rev 0)
+++ short/3D/PyLith/branches/v1.6-revisedfault/tests/3d/cyclicfriction/hex8_1000m.jou	2011-10-11 21:51:18 UTC (rev 19057)
@@ -0,0 +1,103 @@
+# ----------------------------------------------------------------------
+# Generate geometry
+# ----------------------------------------------------------------------
+playback 'geometry.jou'
+
+# ----------------------------------------------------------------------
+# Set discretization size
+# ----------------------------------------------------------------------
+volume all size 1000
+
+# ----------------------------------------------------------------------
+# Generate the mesh
+# ----------------------------------------------------------------------
+mesh volume all
+
+# ----------------------------------------------------------------------
+# Create blocks for materials
+# ----------------------------------------------------------------------
+block 1 volume all
+block 1 name "elastic"
+
+# ----------------------------------------------------------------------
+# Create nodeset for fault
+# ----------------------------------------------------------------------
+group "fault" add node in fault_surface
+group "fault" add node in fault_surface at A
+nodeset 20 group fault
+nodeset 20 name "fault"
+
+# ----------------------------------------------------------------------
+# Create nodeset for +x face
+# ----------------------------------------------------------------------
+group "face_xpos" add node in surface 6
+nodeset 10 group face_xpos
+nodeset 10 name "face_xpos"
+
+# ----------------------------------------------------------------------
+# Create nodeset for -x face
+# ----------------------------------------------------------------------
+group "face_xneg" add node in surface 4
+nodeset 11 group face_xneg
+nodeset 11 name "face_xneg"
+
+# ----------------------------------------------------------------------
+# Create nodeset for +y face
+# ----------------------------------------------------------------------
+group "face_ypos" add node in surface 13
+group "face_ypos" add node in surface 15
+nodeset 12 group face_ypos
+nodeset 12 name "face_ypos"
+
+# ----------------------------------------------------------------------
+# Create nodeset for +y face w/out fault
+# ----------------------------------------------------------------------
+group "face_ypos_nofault" add node in face_ypos
+group "face_ypos_nofault" remove node in fault
+nodeset 13 group face_ypos_nofault
+nodeset 13 name "face_ypos_nofault"
+
+# ----------------------------------------------------------------------
+# Create nodeset for -y face
+# ----------------------------------------------------------------------
+group "face_yneg" add node in surface 11
+group "face_yneg" add node in surface 18
+nodeset 14 group face_yneg
+nodeset 14 name "face_yneg"
+
+# ----------------------------------------------------------------------
+# Create nodeset for -y face w/out fault
+# ----------------------------------------------------------------------
+group "face_yneg_nofault" add node in face_yneg
+group "face_yneg_nofault" remove node in fault
+nodeset 15 group face_yneg_nofault
+nodeset 15 name "face_yneg_nofault"
+
+# ----------------------------------------------------------------------
+# Create nodeset for -z face
+# ----------------------------------------------------------------------
+group "face_zneg" add node in surface 12
+group "face_zneg" add node in surface 16
+nodeset 16 group face_zneg
+nodeset 16 name "face_zneg"
+
+# ----------------------------------------------------------------------
+# Create nodeset for -z face w/o fault
+# ----------------------------------------------------------------------
+group "face_zneg_nofault" add node in face_zneg
+group "face_zneg_nofault" remove node in fault
+nodeset 17 group face_zneg_nofault
+nodeset 17 name "face_zneg_nofault"
+
+# ----------------------------------------------------------------------
+# Create nodeset for +z face
+# ----------------------------------------------------------------------
+group "face_zpos" add node in surface 10
+group "face_zpos" add node in surface 17
+nodeset 18 group face_zpos
+nodeset 18 name "face_zpos"
+
+# ----------------------------------------------------------------------
+# Export exodus file
+# ----------------------------------------------------------------------
+export mesh "hex8_1000m.exo" dimension 3 overwrite

Added: short/3D/PyLith/branches/v1.6-revisedfault/tests/3d/cyclicfriction/initial_tractions.spatialdb
===================================================================
--- short/3D/PyLith/branches/v1.6-revisedfault/tests/3d/cyclicfriction/initial_tractions.spatialdb	                        (rev 0)
+++ short/3D/PyLith/branches/v1.6-revisedfault/tests/3d/cyclicfriction/initial_tractions.spatialdb	2011-10-11 21:51:18 UTC (rev 19057)
@@ -0,0 +1,15 @@
+#SPATIAL.ascii 1
+SimpleDB {
+  num-values = 3
+  value-names =  traction-shear-leftlateral traction-shear-updip traction-normal
+  value-units =  MPa   MPa  MPa
+  num-locs = 2
+  data-dim = 1
+  space-dim = 3
+  cs-data = cartesian {
+    to-meters = 1.0e+3  // x, y, z are in km
+    space-dim = 3
+  }
+}
+0.0  0.0   0.0   0.0  0.0     0.0
+0.0  0.0  -6.0   0.0  0.0   -60.0

Added: short/3D/PyLith/branches/v1.6-revisedfault/tests/3d/cyclicfriction/pylithapp.cfg
===================================================================
--- short/3D/PyLith/branches/v1.6-revisedfault/tests/3d/cyclicfriction/pylithapp.cfg	                        (rev 0)
+++ short/3D/PyLith/branches/v1.6-revisedfault/tests/3d/cyclicfriction/pylithapp.cfg	2011-10-11 21:51:18 UTC (rev 19057)
@@ -0,0 +1,207 @@
+# -*- Python -*-
+[pylithapp]
+
+# ----------------------------------------------------------------------
+# journal
+# ----------------------------------------------------------------------
+# Turn on some journals to show progress.
+[pylithapp.journal.info]
+timedependent = 1
+implicit = 1
+petsc = 1
+solverlinear = 1
+meshiocubit = 1
+implicitelasticity = 1
+faultcohesivekin = 1
+fiatlagrange = 1
+pylithapp = 1
+materials = 1
+
+# ----------------------------------------------------------------------
+# mesh_generator
+# ----------------------------------------------------------------------
+[pylithapp.mesh_generator]
+
+# Change the default mesh reader to the CUBIT reader.
+reader = pylith.meshio.MeshIOCubit
+reorder_mesh = True
+
+[pylithapp.mesh_generator.reader]
+filename = hex8_1000m.exo
+
+# ----------------------------------------------------------------------
+# problem
+# ----------------------------------------------------------------------
+[pylithapp.timedependent.formulation.time_step]
+total_time = 80.0*hour ; total time of simulation
+dt = 1.0*hour
+
+[pylithapp.timedependent.normalizer]
+relaxation_time = 1.0*hour
+
+[pylithapp.timedependent.implicit]
+solver = pylith.problems.SolverNonlinear
+
+# ----------------------------------------------------------------------
+# materials
+# ----------------------------------------------------------------------
+[pylithapp.timedependent]
+materials = [elastic]
+
+[pylithapp.timedependent.materials.elastic]
+label = Elastic material
+id = 1
+db_properties = spatialdata.spatialdb.UniformDB
+db_properties.label = Elastic properties
+db_properties.values = [density,vp,vs]
+db_properties.data = [2500.0*kg/m**3,5.2915*km/s,3.0*km/s]
+
+quadrature.cell = pylith.feassemble.FIATLagrange
+quadrature.cell.dimension = 3
+
+# ----------------------------------------------------------------------
+# boundary conditions
+# ----------------------------------------------------------------------
+[pylithapp.timedependent]
+bc = [x_pos,x_neg,z_neg]
+
+# Dirichlet BC on +x face
+[pylithapp.timedependent.bc.x_pos]
+bc_dof = [0,1]
+label = face_xpos
+
+db_change = spatialdata.spatialdb.UniformDB
+db_change.label = Amplitude of Dirichlet BC on +x
+db_change.values = [displacement-x,displacement-y,displacement-z,change-start-time]
+db_change.data = [-0.2*m,0.5*m,0.0*m,0.0*hour]
+
+th_change = spatialdata.spatialdb.TimeHistory
+th_change.label = Time history of tidal load
+th_change.filename = cycle.timedb
+
+
+# Dirichlet BC on -x face
+[pylithapp.timedependent.bc.x_neg]
+bc_dof = [0,1]
+label = face_xneg
+
+db_change = spatialdata.spatialdb.UniformDB
+db_change.label = Amplitude of Dirichlet BC on -x
+db_change.values = [displacement-x,displacement-y,displacement-z,change-start-time]
+db_change.data = [+0.2*m,-0.5*m,0.0*m,0.0*hour]
+
+th_change = spatialdata.spatialdb.TimeHistory
+th_change.label = Time history of tidal load
+th_change.filename = cycle.timedb
+
+
+# Dirichlet BC on +y face
+[pylithapp.timedependent.bc.y_pos]
+bc_dof = [1]
+label = face_ypos_nofault
+db_initial.label = Dirichlet BC on +y
+
+
+# Dirichlet BC on -y face
+[pylithapp.timedependent.bc.y_neg]
+bc_dof = [1]
+label = face_yneg_nofault
+
+db_initial.label = Dirichlet BC on -y
+
+
+# Dirichlet BC on z face in z-direction
+[pylithapp.timedependent.bc.z_neg]
+bc_dof = [2]
+label = face_zneg_nofault
+db_initial.label = Dirichlet BC on -z
+
+
+# ----------------------------------------------------------------------
+# faults
+# ----------------------------------------------------------------------
+[pylithapp.timedependent]
+interfaces = [fault]
+
+[pylithapp.timedependent.interfaces]
+fault = pylith.faults.FaultCohesiveDyn
+
+[pylithapp.timedependent.interfaces.fault]
+label = fault
+
+friction = pylith.friction.SlipWeakening
+friction.label = Slip weakening
+
+quadrature.cell = pylith.feassemble.FIATLagrange
+quadrature.cell.dimension = 2
+
+friction.db_properties = spatialdata.spatialdb.UniformDB
+friction.db_properties.label = Slip weakening
+friction.db_properties.values = [static-coefficient,dynamic-coefficient,slip-weakening-parameter,cohesion]
+friction.db_properties.data = [0.6,0.1,1.0*mm,0.0*Pa]
+
+db_initial_tractions = spatialdata.spatialdb.SimpleDB
+db_initial_tractions.iohandler.filename = initial_tractions.spatialdb
+db_initial_tractions.label = Initial fault tractions
+db_initial_tractions.query_type = linear
+
+# ----------------------------------------------------------------------
+# output
+# ----------------------------------------------------------------------
+[pylithapp.timedependent.implicit]
+output = [domain,subdomain]
+output.subdomain = pylith.meshio.OutputSolnSubset
+
+[pylithapp.problem.formulation.output.domain]
+writer = pylith.meshio.DataWriterHDF5Mesh
+writer.filename = output/cyclic.h5
+
+[pylithapp.problem.formulation.output.subdomain]
+label = face_zpos
+writer = pylith.meshio.DataWriterHDF5SubMesh
+writer.filename = output/cyclic-groundsurf.h5
+
+[pylithapp.problem.interfaces.fault.output]
+vertex_info_fields = [initial_traction]
+writer = pylith.meshio.DataWriterHDF5SubSubMesh
+writer.filename = output/cyclic-fault.h5
+
+[pylithapp.timedependent.materials.elastic.output]
+cell_filter = pylith.meshio.CellFilterAvgMesh
+writer = pylith.meshio.DataWriterHDF5Mesh
+writer.filename = output/cyclic-statevars.h5
+
+# ----------------------------------------------------------------------
+# PETSc
+# ----------------------------------------------------------------------
+# Set the solver options.
+
+[pylithapp.petsc]
+
+# Preconditioner settings.
+pc_type = asm
+sub_pc_factor_shift_type = nonzero
+
+# Convergence parameters.
+ksp_rtol = 1.0e-10
+ksp_atol = 1.0e-12
+ksp_max_it = 200
+ksp_gmres_restart = 70
+
+# Linear solver monitoring options.
+ksp_monitor = true
+#ksp_view = true
+ksp_converged_reason = true
+
+# Nonlinear solver monitoring options.
+snes_rtol = 1.0e-8
+snes_atol = 1.0e-10
+snes_max_it = 200
+snes_monitor = true
+#snes_view = true
+snes_converged_reason = true
+#snes_monitor_solution_update = true
+#info =
+
+
+log_summary = true



More information about the CIG-COMMITS mailing list