[cig-commits] r11652 - in short/3D/PyLith/trunk/examples: . 3d 3d/bar_hex8

brad at geodynamics.org brad at geodynamics.org
Sun Mar 30 23:38:16 PDT 2008


Author: brad
Date: 2008-03-30 23:38:16 -0700 (Sun, 30 Mar 2008)
New Revision: 11652

Added:
   short/3D/PyLith/trunk/examples/3d/bar_hex8/
   short/3D/PyLith/trunk/examples/3d/bar_hex8/README
   short/3D/PyLith/trunk/examples/3d/bar_hex8/bar_hex8_200m.exo
   short/3D/PyLith/trunk/examples/3d/bar_hex8/geometry.jou
   short/3D/PyLith/trunk/examples/3d/bar_hex8/matprops.spatialdb
   short/3D/PyLith/trunk/examples/3d/bar_hex8/mesh_hex8_200m.jou
   short/3D/PyLith/trunk/examples/3d/bar_hex8/output/
   short/3D/PyLith/trunk/examples/3d/bar_hex8/shearwave.cfg
   short/3D/PyLith/trunk/examples/3d/bar_hex8/shearwave_slip.spatialdb
   short/3D/PyLith/trunk/examples/3d/bar_hex8/shearwave_sliprate.spatialdb
   short/3D/PyLith/trunk/examples/3d/bar_hex8/shearwave_sliptime.spatialdb
Removed:
   short/3D/PyLith/trunk/examples/twofaults/
Log:
Added 3-D bar with hex8 cells shear-wave example.

Added: short/3D/PyLith/trunk/examples/3d/bar_hex8/README
===================================================================
--- short/3D/PyLith/trunk/examples/3d/bar_hex8/README	                        (rev 0)
+++ short/3D/PyLith/trunk/examples/3d/bar_hex8/README	2008-03-31 06:38:16 UTC (rev 11652)
@@ -0,0 +1,20 @@
+This directory contains a wave propagation example problem. We create
+a shear dislocation in a rectangular, elastic bar 8 km long with a
+square cross-section 400 m on a side. The shear dislocation (the
+vertices are fixed in the longitudinal and other shear direction)
+generates a shear wave that propagates down the bar. Absorbing
+boundary conditions on each end perfectly absorb the shear wave.
+The bar is discretized with hexahedral cells.
+
+Files associated with the example problem:
+
+  - geometry.jou: CUBIT journal file defining the geometry of the mesh
+  - mesh_hex8_200m.jou: CUBIT journal file for meshing the problem
+  - shearwave.cfg: Parameter settings for the shear wave dislocation problem
+  - matprops.spatialdb: Material database of physical properties
+  - bar_hex8_200m.exo: Exodus file with mesh generated by CUBIT
+  - shearwave_slip.spatialdb: Spatial database with values for final slip
+  - shearwave_sliprate.spatialdb: Spatial database with values for the
+    peak slip rate
+  - shearwave_sliptime.spatialdb: Spatial database with values for the
+    slip initiation time

Added: short/3D/PyLith/trunk/examples/3d/bar_hex8/bar_hex8_200m.exo
===================================================================
(Binary files differ)


Property changes on: short/3D/PyLith/trunk/examples/3d/bar_hex8/bar_hex8_200m.exo
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: short/3D/PyLith/trunk/examples/3d/bar_hex8/geometry.jou
===================================================================
--- short/3D/PyLith/trunk/examples/3d/bar_hex8/geometry.jou	                        (rev 0)
+++ short/3D/PyLith/trunk/examples/3d/bar_hex8/geometry.jou	2008-03-31 06:38:16 UTC (rev 11652)
@@ -0,0 +1,41 @@
+## /tools/common/cubit-10.2/bin/clarox
+## Cubit Version 10.2
+## Cubit Build 24
+## Revised 12/15/2006 16:09:40 MST
+## Running 06/18/2007 10:26:50 AM
+## Command Options:
+## -warning = On
+## -information = On
+
+# ----------------------------------------------------------------------
+# Create block
+# ----------------------------------------------------------------------
+
+# Bar is 400m x 400m x 8000m
+# -4000 m <= x <= 4000 m
+# -200 m <= y <= 200 m
+# -200 m <= z <= 200 km
+reset
+brick x 8000 y 400 z 400
+
+# ----------------------------------------------------------------------
+# Create interface surfaces
+# ----------------------------------------------------------------------
+
+# Create fault (yz plane) at x = 0.0
+
+create planar surface with plane xplane offset 0
+surface 7 name "fault_surface"
+
+# ----------------------------------------------------------------------
+# Divide volumes using interface surfaces
+# ----------------------------------------------------------------------
+webcut volume 1 with plane surface fault_surface
+volume 1 name "elastic_xpos"
+volume 3 name "elastic_xneg"
+
+# ----------------------------------------------------------------------
+# Imprint all volumes, merging surfaces
+# ----------------------------------------------------------------------
+imprint all with volume all
+merge all

Added: short/3D/PyLith/trunk/examples/3d/bar_hex8/matprops.spatialdb
===================================================================
--- short/3D/PyLith/trunk/examples/3d/bar_hex8/matprops.spatialdb	                        (rev 0)
+++ short/3D/PyLith/trunk/examples/3d/bar_hex8/matprops.spatialdb	2008-03-31 06:38:16 UTC (rev 11652)
@@ -0,0 +1,25 @@
+#SPATIAL.ascii 1
+SimpleDB {
+  // number of physical properties
+  num-values = 3
+
+  // Names and units of physical properties
+  value-names =  density vs vp
+  value-units =  kg/m^3  m/s  m/s
+
+  // Number of locations where physical properties are given
+  // 1 location -> data is uniform -> data dimension is 0
+  num-locs = 1
+  data-dim = 0
+
+  // Problem is in 3-D
+  space-dim = 3
+
+  // Coordinate system (3-D with coordinates in meters)
+  cs-data = cartesian {
+    to-meters = 1.0
+    space-dim = 3
+  }
+}
+// Columns are x, y, z, density, vs, vp
+0.0  0.0  0.0   2500.0  1000.0  1732.0

Added: short/3D/PyLith/trunk/examples/3d/bar_hex8/mesh_hex8_200m.jou
===================================================================
--- short/3D/PyLith/trunk/examples/3d/bar_hex8/mesh_hex8_200m.jou	                        (rev 0)
+++ short/3D/PyLith/trunk/examples/3d/bar_hex8/mesh_hex8_200m.jou	2008-03-31 06:38:16 UTC (rev 11652)
@@ -0,0 +1,63 @@
+## /tools/common/cubit-10.2/bin/clarox
+## Cubit Version 10.2
+## Cubit Build 24
+## Revised 12/15/2006 16:09:40 MST
+## Running 06/18/2007 10:26:50 AM
+## Command Options:
+## -warning = On
+## -information = On
+
+# ----------------------------------------------------------------------
+# Generate geometry
+# ----------------------------------------------------------------------
+playback 'geometry.jou'
+
+# ----------------------------------------------------------------------
+# Set discretization size
+# ----------------------------------------------------------------------
+volume all size 200
+
+# ----------------------------------------------------------------------
+# Generate the mesh
+# ----------------------------------------------------------------------
+mesh volume all
+
+# ----------------------------------------------------------------------
+# Create blocks for materials
+# ----------------------------------------------------------------------
+block 1 volume 1 3
+block 1 name "elastic"
+
+# ----------------------------------------------------------------------
+# Create nodeset for fault
+# ----------------------------------------------------------------------
+group "fault" add node in fault_surface
+nodeset 10 group fault
+nodeset 10 name "fault"
+
+# ----------------------------------------------------------------------
+# Create nodeset for +x face
+# ----------------------------------------------------------------------
+group "face_xpos" add node in surface 6
+nodeset 11 group face_xpos
+nodeset 11 name "face xpos"
+
+# ----------------------------------------------------------------------
+# Create nodeset for -x face
+# ----------------------------------------------------------------------
+group "face_xneg" add node in surface 4
+nodeset 12 group face_xneg
+nodeset 12 name "face xneg"
+
+# ----------------------------------------------------------------------
+# Create nodeset for all vertices but fault
+# ----------------------------------------------------------------------
+group "vertices_nofault" add node all
+group "vertices_nofault" remove node in fault
+nodeset 13 group vertices_nofault
+nodeset 13 name "vertices_nofault"
+
+# ----------------------------------------------------------------------
+# Export exodus file
+# ----------------------------------------------------------------------
+export mesh "bar_hex8_200m.exo" dimension 3 overwrite

Added: short/3D/PyLith/trunk/examples/3d/bar_hex8/shearwave.cfg
===================================================================
--- short/3D/PyLith/trunk/examples/3d/bar_hex8/shearwave.cfg	                        (rev 0)
+++ short/3D/PyLith/trunk/examples/3d/bar_hex8/shearwave.cfg	2008-03-31 06:38:16 UTC (rev 11652)
@@ -0,0 +1,219 @@
+# -*- Python -*-
+
+# The settings in this file (shearwave.cfg) will be read if it is
+# specified on the command line:
+# 'pylith shearwave.cfg'
+#
+# If this file is given, the settings in this file will override all
+# others except for parameters specified directly on the command line.
+#
+# These settings define an explicit time-stepping problem using a fault with
+# kinematically-specified slip.
+
+[pylithapp]
+
+# ----------------------------------------------------------------------
+# journal
+# ----------------------------------------------------------------------
+[pylithapp.journal.info]
+timedependent = 1
+#explicit = 1
+#petsc = 1
+#solverlinear = 1
+meshiocubit = 1
+#explicitelasticity = 1
+#quadrature2d = 1
+#fiatlagrange = 1
+#faultcohesivekin = 1
+
+# ----------------------------------------------------------------------
+# mesh_generator
+# ----------------------------------------------------------------------
+[pylithapp.mesh_generator]
+#debug = 1
+importer = pylith.meshio.MeshIOCubit
+
+[pylithapp.mesh_generator.importer]
+filename = bar_hex8_200m.exo
+
+# ----------------------------------------------------------------------
+# problem
+# ----------------------------------------------------------------------
+[pylithapp.timedependent]
+total_time = 12.0*s
+default_dt = 0.05*s
+dimension = 3
+
+# Change to an explicit time stepping formulation
+formulation = pylith.problems.Explicit
+
+# Reuse solution from previous time step as initial guess for next time step
+#formulation.solver.initial_guess_zero = False
+
+# Set bc to an array with 3 boundary conditions: 'x_neg', 'x_pos', and 'y_pos'.
+bc = [x_pos,x_neg,y_pos]
+
+# Change the DirichletPoints BC to the AbsorbingDampers BC
+bc.x_pos = pylith.bc.AbsorbingDampers
+bc.x_neg = pylith.bc.AbsorbingDampers
+
+# Set interfaces to an array with 1 fault: 'fault'.
+interfaces = [fault]
+
+# Set materials to an array with 1 material 'elastic'.
+materials = [elastic]
+
+# ----------------------------------------------------------------------
+# materials
+# ----------------------------------------------------------------------
+[pylithapp.timedependent.materials.elastic]
+
+# Label for material
+label = Elastic material
+
+# Nodeset id from CUBIT
+id = 1
+
+# Spatial database with physical properties for elastic material
+db.iohandler.filename = matprops.spatialdb
+
+# Set the basis functions and quadrature:
+# 3-D Lagrange cell with 2nd order quadrature
+quadrature = pylith.feassemble.quadrature.Quadrature3D
+quadrature.cell = pylith.feassemble.FIATLagrange
+quadrature.cell.dimension = 3
+quadrature.cell.quad_order = 2
+
+# ----------------------------------------------------------------------
+# boundary conditions
+# ----------------------------------------------------------------------
+[pylithapp.timedependent.bc.x_pos]
+# Absorbing boundary condition on +x face of bar
+
+# Nodeset id from CUBIT
+label = 11
+
+# Specify label and filename for spatial database with physical properties
+db.label = Absorbing BC +x
+db.iohandler.filename = matprops.spatialdb
+
+# Specify the basis functions and quadrature:
+# 2-D Lagrange cell in 3-D space with 2nd order quadrature
+quadrature = pylith.feassemble.quadrature.Quadrature2Din3D
+quadrature.cell = pylith.feassemble.FIATLagrange
+quadrature.cell.dimension = 2
+quadrature.cell.quad_order = 2
+
+[pylithapp.timedependent.bc.x_neg]
+# Absorbing boundary condition on -x face of bar
+
+# Nodeset id from CUBIT
+label = 12
+
+# Specify label and filename for spatial database with physical properties
+db.label = Absorbing BC -x
+db.iohandler.filename = matprops.spatialdb
+
+# Specify the basis functions and quadrature:
+# 2-D Lagrange cell in 3-D space with 2nd order quadrature
+quadrature = pylith.feassemble.quadrature.Quadrature2Din3D
+quadrature.cell = pylith.feassemble.FIATLagrange
+quadrature.cell.dimension = 2
+quadrature.cell.quad_order = 2
+
+[pylithapp.timedependent.bc.y_pos]
+# Dirichlet boundary condition on all vertices except fault vertices
+
+# Pin x and z degrees of freedom
+fixed_dof = [0, 2]
+
+# Nodeset id from CUBIT
+label = 13
+
+# ----------------------------------------------------------------------
+# faults
+# ----------------------------------------------------------------------
+# NOTE: It is possible to assign an ID number to a fault (e.g.,
+# 'id = 10').  Care must be taken when doing this, however, because the
+# assigned ID will become the material ID for the cohesive element.
+# This ID must not conflict with any of the material ID numbers for
+# volume elements.  The default ID for a fault is 100.  If you have a
+# fault in your mesh you must:
+# 1.  If you create your own fault ID, make sure it does not conflict
+#     with any of you material ID's.
+# 2.  If you use the default fault ID, make sure that none of your
+#     material ID's are equal to 100.
+
+[pylithapp.timedependent.interfaces.fault]
+
+# Material id
+id = 100
+
+# Nodeset id from CUBIT
+label = 10
+
+# Specify the basis functions and quadrature:
+# 2-D Lagrange cell in 3-D space with 2nd order quadrature
+quadrature = pylith.feassemble.quadrature.Quadrature2Din3D
+quadrature.cell = pylith.feassemble.FIATLagrange
+quadrature.cell.dimension = 2
+quadrature.cell.quad_order = 2
+
+# Set the physical properties for the fault to properly condition the
+# system of equations.
+mat_db.iohandler.filename = matprops.spatialdb
+
+[pylithapp.timedependent.interfaces.fault.eq_src.slip_function]
+
+# Database specifying the final slip.
+slip.iohandler.filename = shearwave_slip.spatialdb
+
+# Database specifying peak slip rate.
+slip_rate.iohandler.filename = shearwave_sliprate.spatialdb
+
+# Database specifying time at which slip begins at each point.
+slip_time.iohandler.filename = shearwave_sliptime.spatialdb
+
+# ----------------------------------------------------------------------
+# PETSc
+# ----------------------------------------------------------------------
+[pylithapp.petsc]
+ksp_type = gmres
+pc_type = asm
+ksp_rtol = 1.0e-8
+ksp_max_it = 50
+ksp_gmres_restart = 10
+
+#ksp_monitor = true
+#ksp_view = true
+log_summary = true
+
+
+# ----------------------------------------------------------------------
+# output
+# ----------------------------------------------------------------------
+# We set three output manager parameters for each type of output.
+#   skip - Number of time steps to skip between output
+#   writer.filename - Root name for VTK file
+#   writer.time_format - Format of time stamp (decimal point is removed)
+
+# Give basename for VTK domain output of solution over domain.
+[pylithapp.problem.formulation.output.output]
+skip = 3
+writer.filename = output/shearwave.vtk
+writer.time_format = %05.2f
+
+# Give basename for VTK fault output.
+[pylithapp.timedependent.interfaces.fault.output]
+skip = 3
+writer.filename = output/shearwave-fault.vtk
+writer.time_format = %05.2f
+
+# Give basename for VTK output of state variables.
+[pylithapp.timedependent.materials.elastic.output]
+skip = 33
+writer.filename = output/shearwave-statevars.vtk
+writer.time_format = %05.2f
+
+# Averate state variables over cell
+cell_filter = pylith.meshio.CellFilterAvg

Added: short/3D/PyLith/trunk/examples/3d/bar_hex8/shearwave_slip.spatialdb
===================================================================
--- short/3D/PyLith/trunk/examples/3d/bar_hex8/shearwave_slip.spatialdb	                        (rev 0)
+++ short/3D/PyLith/trunk/examples/3d/bar_hex8/shearwave_slip.spatialdb	2008-03-31 06:38:16 UTC (rev 11652)
@@ -0,0 +1,25 @@
+#SPATIAL.ascii 1
+SimpleDB {
+  // number of values for final slip
+  num-values = 3
+
+  // Names and units of final slip values
+  value-names =  left-lateral-slip  reverse-slip  fault-opening
+  value-units =  m  m  m
+
+  // Number of locations where physical properties are given
+  // 1 location -> data is uniform -> data dimension is 0
+  num-locs = 1
+  data-dim = 0
+
+  // Problem is in 3-D
+  space-dim = 3
+
+  // Coordinate system (3-D with coordinates in meters)
+  cs-data = cartesian {
+    to-meters = 1.0
+    space-dim = 3
+  }
+}
+// Columns are x, y, z, left-lateral-slip, reverse-slip, fault-opening
+0.0  0.0  0.0   1.0  0.0  0.0

Added: short/3D/PyLith/trunk/examples/3d/bar_hex8/shearwave_sliprate.spatialdb
===================================================================
--- short/3D/PyLith/trunk/examples/3d/bar_hex8/shearwave_sliprate.spatialdb	                        (rev 0)
+++ short/3D/PyLith/trunk/examples/3d/bar_hex8/shearwave_sliprate.spatialdb	2008-03-31 06:38:16 UTC (rev 11652)
@@ -0,0 +1,27 @@
+#SPATIAL.ascii 1
+SimpleDB {
+  // number of values for peak slip rate
+  num-values = 1
+
+  // Name and units for peak slip rate
+  value-names =  slip-rate
+  value-units =  m/s
+
+  // Number of locations where physical properties are given
+  // 1 location -> data is uniform -> data dimension is 0
+  num-locs = 1
+
+  // Problem is in 3-D
+  data-dim = 0
+
+  // Problem is in 3-D
+  space-dim = 3
+
+  // Coordinate system (3-D with coordinates in meters)
+  cs-data = cartesian {
+    to-meters = 1.0
+    space-dim = 3
+  }
+}
+// Columns are x, y, z, slip-rate
+0.0  0.0  0.0    1.0

Added: short/3D/PyLith/trunk/examples/3d/bar_hex8/shearwave_sliptime.spatialdb
===================================================================
--- short/3D/PyLith/trunk/examples/3d/bar_hex8/shearwave_sliptime.spatialdb	                        (rev 0)
+++ short/3D/PyLith/trunk/examples/3d/bar_hex8/shearwave_sliptime.spatialdb	2008-03-31 06:38:16 UTC (rev 11652)
@@ -0,0 +1,25 @@
+#SPATIAL.ascii 1
+SimpleDB {
+  // number of values for slip initiation time
+  num-values = 1
+
+  // Names and units of slip initiation time
+  value-names =  slip-time
+  value-units =  s
+
+  // Number of locations where physical properties are given
+  // 1 location -> data is uniform -> data dimension is 0
+  num-locs = 1
+  data-dim = 0
+
+  // Problem is in 3-D
+  space-dim = 3
+
+  // Coordinate system (3-D with coordinates in meters)
+  cs-data = cartesian {
+    to-meters = 1.0
+    space-dim = 3
+  }
+}
+// Columns are x, y, z, slip-time
+0.0 0.0 0.0   0.1



More information about the cig-commits mailing list