[cig-commits] r18700 - in short/3D/PyLith/branches/v1.6-stable/examples/3d/hex8: . spatialdb

brad at geodynamics.org brad at geodynamics.org
Wed Jul 6 13:06:34 PDT 2011


Author: brad
Date: 2011-07-06 13:06:33 -0700 (Wed, 06 Jul 2011)
New Revision: 18700

Added:
   short/3D/PyLith/branches/v1.6-stable/examples/3d/hex8/spatialdb/tractions_axial_pressure.spatialdb
   short/3D/PyLith/branches/v1.6-stable/examples/3d/hex8/step18.cfg
Modified:
   short/3D/PyLith/branches/v1.6-stable/examples/3d/hex8/Makefile.am
Log:
Added vertical traction surface load example (step18).

Modified: short/3D/PyLith/branches/v1.6-stable/examples/3d/hex8/Makefile.am
===================================================================
--- short/3D/PyLith/branches/v1.6-stable/examples/3d/hex8/Makefile.am	2011-07-06 19:29:23 UTC (rev 18699)
+++ short/3D/PyLith/branches/v1.6-stable/examples/3d/hex8/Makefile.am	2011-07-06 20:06:33 UTC (rev 18700)
@@ -36,6 +36,7 @@
 	step15.cfg \
 	step16.cfg \
 	step17.cfg \
+	step18.cfg \
 	mesh/geometry.jou \
 	mesh/mesh_hex8_1000m.jou \
 	mesh/box_hex8_1000m.exo \
@@ -51,6 +52,7 @@
 	spatialdb/sliprate_creep.spatialdb \
 	spatialdb/sliptime.spatialdb \
 	spatialdb/tractions_axial_shear.spatialdb \
+	spatialdb/tractions_axial_pressure.spatialdb \
 	spatialdb/powerlaw/powerlaw_gendb.cfg \
 	spatialdb/powerlaw/powerlaw_params.spatialdb \
 	spatialdb/powerlaw/powerlaw_points.txt \

Added: short/3D/PyLith/branches/v1.6-stable/examples/3d/hex8/spatialdb/tractions_axial_pressure.spatialdb
===================================================================
--- short/3D/PyLith/branches/v1.6-stable/examples/3d/hex8/spatialdb/tractions_axial_pressure.spatialdb	                        (rev 0)
+++ short/3D/PyLith/branches/v1.6-stable/examples/3d/hex8/spatialdb/tractions_axial_pressure.spatialdb	2011-07-06 20:06:33 UTC (rev 18700)
@@ -0,0 +1,36 @@
+// -*- C++ -*- (tell Emacs to use C++ mode for syntax highlighting)
+//
+// This spatial database specifies the distribution of the
+// tractions for Neumann boundary conditions associated
+// with a vertical surface load.
+//
+// The spatial distribution of the load is a value of 0.0 at the
+// corners of the domain and a negative vertical load of -10.0 MPa at
+// the center.
+//
+
+#SPATIAL.ascii 1
+SimpleDB {
+  num-values = 3
+  value-names =  traction-shear-horiz traction-shear-vert traction-normal
+  value-units =  MPa MPa MPa
+  num-locs = 5
+  data-dim = 2 // locations on a surface
+  space-dim = 3
+  cs-data = cartesian {
+    to-meters = 1.0e+3 // specify coordinates in km
+    space-dim = 3
+  }
+}
+// Columns are
+// (1) x coordinate (km)
+// (2) y coordinate (km)
+// (3) z coordinate (km)
+// (4) T-shear-horiz (MPa)
+// (5) T-shear-vert (MPa)
+// (6) T-normal (MPa)
+-3.0  3.0  0.0    0.0  0.0   0.0
+ 3.0  3.0  0.0    0.0  0.0   0.0
+ 3.0 -3.0  0.0    0.0  0.0   0.0
+-3.0 -3.0  0.0    0.0  0.0   0.0
+ 0.0  0.0  0.0    0.0  0.0  -10.0

Added: short/3D/PyLith/branches/v1.6-stable/examples/3d/hex8/step18.cfg
===================================================================
--- short/3D/PyLith/branches/v1.6-stable/examples/3d/hex8/step18.cfg	                        (rev 0)
+++ short/3D/PyLith/branches/v1.6-stable/examples/3d/hex8/step18.cfg	2011-07-06 20:06:33 UTC (rev 18700)
@@ -0,0 +1,137 @@
+# -*- Python -*-
+[pylithapp]
+
+# ----------------------------------------------------------------------
+# PROBLEM DESCRIPTION
+# ----------------------------------------------------------------------
+
+#
+# This is a purely elastic static problem using Neumann (traction)
+# boundary conditions. We apply normal tractions to the top surface
+# and roller (fixed normal but free lateral motion) boundary
+# conditions on the lateral sides and bottom surfaces.
+
+# ----------------------------------------------------------------------
+# RUNNING THE SIMULATON
+# ----------------------------------------------------------------------
+
+# This is not a self-contained simulation configuration file. This
+# file only specifies parameters specific to tutorial step18.
+# The general parameters are specificed in the pylithapp.cfg
+# file which PyLith reads by default.
+#
+# To run the simulation:
+# pylith step18.cfg
+#
+# Output will be directed to directory output.
+
+# ----------------------------------------------------------------------
+# problem
+# ----------------------------------------------------------------------
+[pylithapp.timedependent]
+# Set bc to an array of 6 boundary conditions (one for each side of the domain).
+bc = [x_pos,x_neg,y_pos,y_neg,z_neg,z_pos]
+
+[pylithapp.timedependent.implicit]
+# Set the output to an array of 2 output managers.
+# We will output the solution over the domain and the ground surface.
+output = [domain,subdomain]
+
+# Set subdomain component to OutputSolnSubset (subset of domain).
+output.subdomain = pylith.meshio.OutputSolnSubset
+
+# ----------------------------------------------------------------------
+# boundary conditions
+# ----------------------------------------------------------------------
+# Set the parameters for Dirichlet boundary conditions applied on the
+# +x, -x, +y, -y, and -z faces of the box, and the Neumann boundary
+# conditions applied on the +z face of the box.
+#
+# We fix the x DOF on the +x and -x faces, the y DOF on the +y and -y
+# faces, and the z DOF on the bottom (-z) face. We use the ZeroDispDB
+# (default) since we want zero displacements.
+#
+# We apply axial tractions on the +z face.
+
+# The label corresponds to the name of the nodeset in CUBIT.
+
+# +x face
+[pylithapp.timedependent.bc.x_pos]
+label = face_xpos
+bc_dof = [0]
+db_initial.label = Dirichlet BC on +x
+
+# -x face
+[pylithapp.timedependent.bc.x_neg]
+label = face_xneg
+bc_dof = [0]
+db_initial.label = Dirichlet BC on -x
+
+# +y face
+[pylithapp.timedependent.bc.y_pos]
+label = face_ypos
+bc_dof = [1]
+db_initial.label = Dirichlet BC on +y
+
+# -y face
+[pylithapp.timedependent.bc.y_neg]
+label = face_yneg
+bc_dof = [1]
+db_initial.label = Dirichlet BC on -y
+
+# -z face
+[pylithapp.timedependent.bc.z_neg]
+label = face_zneg
+bc_dof = [2]
+db_initial.label = Dirichlet BC on -z
+
+# +z face -- change bc type to Neumann
+[pylithapp.timedependent.bc]
+z_pos = pylith.bc.Neumann
+
+[pylithapp.timedependent.bc.z_pos]
+label = face_zpos
+
+db_initial = spatialdata.spatialdb.SimpleDB
+db_initial.label = Neumann BC on +z
+db_initial.iohandler.filename = spatialdb/tractions_axial_pressure.spatialdb
+# Use linear interpolation
+db_initial.query_type = linear
+
+output.cell_info_fields = [initial-value]
+output.writer.filename = output/step18-traction.vtk
+output.cell_filter = pylith.meshio.CellFilterAvgSubMesh
+
+# We must specify quadrature information for the cell faces.
+quadrature.cell = pylith.feassemble.FIATLagrange
+quadrature.cell.dimension = 2
+quadrature.cell.quad_order = 2
+
+# Because normal for +z surface is [0,0,1], the horizontal and
+# vertical shear directions are ambiguous. We provide a "fake" up
+# direction of [0,1,0] so that the horizontal shear direction ("up" x
+# normal) is [1,0,0] and the vertical shear direction (normal x horiz
+# shear dir) is [0,1,0].
+up_dir = [0,1,0]
+
+# ----------------------------------------------------------------------
+# output
+# ----------------------------------------------------------------------
+# Give basename for VTK domain output of solution over domain.
+[pylithapp.problem.formulation.output.domain.writer]
+filename = output/step18.vtk
+
+# Give basename for VTK domain output of solution over ground surface.
+[pylithapp.problem.formulation.output.subdomain]
+label = face_zpos ; Name of nodeset for subdomain
+writer.filename = output/step18-groundsurf.vtk
+
+# Give basename for VTK output of upper_crust state variables.
+[pylithapp.timedependent.materials.upper_crust.output]
+cell_filter = pylith.meshio.CellFilterAvgMesh
+writer.filename = output/step18-upper_crust.vtk
+
+# Give basename for VTK output of lower_crust state variables.
+[pylithapp.timedependent.materials.lower_crust.output]
+cell_filter = pylith.meshio.CellFilterAvgMesh
+writer.filename = output/step18-lower_crust.vtk



More information about the CIG-COMMITS mailing list