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

brad at geodynamics.org brad at geodynamics.org
Wed Jul 6 14:03:09 PDT 2011


Author: brad
Date: 2011-07-06 14:03:09 -0700 (Wed, 06 Jul 2011)
New Revision: 18702

Added:
   short/3D/PyLith/branches/v1.6-stable/examples/3d/hex8/spatialdb/loadcycle.timedb
   short/3D/PyLith/branches/v1.6-stable/examples/3d/hex8/step19.cfg
Modified:
   short/3D/PyLith/branches/v1.6-stable/TODO
   short/3D/PyLith/branches/v1.6-stable/examples/3d/hex8/Makefile.am
   short/3D/PyLith/branches/v1.6-stable/examples/3d/hex8/README
   short/3D/PyLith/branches/v1.6-stable/examples/3d/hex8/spatialdb/tractions_axial_pressure.spatialdb
Log:
Added examples/3d/hex8/step19 for time dependent Neumann BC.

Modified: short/3D/PyLith/branches/v1.6-stable/TODO
===================================================================
--- short/3D/PyLith/branches/v1.6-stable/TODO	2011-07-06 20:08:25 UTC (rev 18701)
+++ short/3D/PyLith/branches/v1.6-stable/TODO	2011-07-06 21:03:09 UTC (rev 18702)
@@ -3,7 +3,7 @@
 Examples
   3d/hex8
     step18 [need to add to manual]
-    step19
+    step19 [need to add to manual]
   2d/subduction
     updated geometry.jou file to use Id() [DONE]
   meshing/surf_nurbs

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 20:08:25 UTC (rev 18701)
+++ short/3D/PyLith/branches/v1.6-stable/examples/3d/hex8/Makefile.am	2011-07-06 21:03:09 UTC (rev 18702)
@@ -37,6 +37,7 @@
 	step16.cfg \
 	step17.cfg \
 	step18.cfg \
+	step19.cfg \
 	mesh/geometry.jou \
 	mesh/mesh_hex8_1000m.jou \
 	mesh/box_hex8_1000m.exo \
@@ -53,6 +54,7 @@
 	spatialdb/sliptime.spatialdb \
 	spatialdb/tractions_axial_shear.spatialdb \
 	spatialdb/tractions_axial_pressure.spatialdb \
+	spatialdb/loadcycle.timedb \
 	spatialdb/powerlaw/powerlaw_gendb.cfg \
 	spatialdb/powerlaw/powerlaw_params.spatialdb \
 	spatialdb/powerlaw/powerlaw_points.txt \

Modified: short/3D/PyLith/branches/v1.6-stable/examples/3d/hex8/README
===================================================================
--- short/3D/PyLith/branches/v1.6-stable/examples/3d/hex8/README	2011-07-06 20:08:25 UTC (rev 18701)
+++ short/3D/PyLith/branches/v1.6-stable/examples/3d/hex8/README	2011-07-06 21:03:09 UTC (rev 18702)
@@ -1,4 +1,4 @@
-The examples in this directory form a step-by-step sequence of 17 problems,
+The examples in this directory form a step-by-step sequence of 19 problems,
 each building on the one before (for the most part). All of the examples
 use the same mesh, which was created by Cubit.  The mesh is 6 km x 6 km x 4
 km with linear hexahedral cells that have edges 1.0 km long.
@@ -66,6 +66,8 @@
         Maxwell rheology (quasi-static)
 step17: Gravitational body forces + finite strain with generalized Maxwell
         rheology (quasi-static)
+step18: Axial traction surface load on top surface (static)
+step19: Time dependent axial traction surface load on top surface (quasi-static)
 
 ----------------------------------------
 mesh directory
@@ -142,6 +144,14 @@
   Spatial database defining axial and shear tractions for example
   step02.
 
+tractions_axial_pressure.spatialdb
+
+  Spatial database defining axial tractions for examples step18 and step19.
+
+loadcycle.timedb
+
+  Temporal database defining time variation of traction load for step19.
+
 powerlaw directory
 
   This directory contains files needed to generate power-law

Added: short/3D/PyLith/branches/v1.6-stable/examples/3d/hex8/spatialdb/loadcycle.timedb
===================================================================
--- short/3D/PyLith/branches/v1.6-stable/examples/3d/hex8/spatialdb/loadcycle.timedb	                        (rev 0)
+++ short/3D/PyLith/branches/v1.6-stable/examples/3d/hex8/spatialdb/loadcycle.timedb	2011-07-06 21:03:09 UTC (rev 18702)
@@ -0,0 +1,20 @@
+// -*- C++ -*- (tell Emacs to use C++ mode for syntax highlighting)
+//
+// This temporal database specifies the time history of loading. The
+// units are nondimensional corresponding to just a scaled version of
+// the spatial variation.
+//
+// The loading is piecewise linear with a linear increase to 1.0 and
+// then 1.5 followed by a symmetric decrease back to 0.0.
+//
+#TIME HISTORY ascii
+TimeHistory {
+  num-points = 6 // number of points in time history
+  time-units = year // units for time
+}
+  0.0  0.0
+100.0  1.0
+200.0  1.5
+300.0  1.0
+400.0  0.0
+999.9  0.0

Modified: 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	2011-07-06 20:08:25 UTC (rev 18701)
+++ short/3D/PyLith/branches/v1.6-stable/examples/3d/hex8/spatialdb/tractions_axial_pressure.spatialdb	2011-07-06 21:03:09 UTC (rev 18702)
@@ -11,9 +11,9 @@
 
 #SPATIAL.ascii 1
 SimpleDB {
-  num-values = 3
-  value-names =  traction-shear-horiz traction-shear-vert traction-normal
-  value-units =  MPa MPa MPa
+  num-values = 4
+  value-names =  traction-shear-horiz traction-shear-vert traction-normal change-start-time
+  value-units =  MPa MPa MPa year
   num-locs = 5
   data-dim = 2 // locations on a surface
   space-dim = 3
@@ -29,8 +29,9 @@
 // (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
+// (7) Start time when used in time-dependent BC (year)
+-3.0  3.0  0.0    0.0  0.0    0.0  0.0
+ 3.0  3.0  0.0    0.0  0.0    0.0  0.0
+ 3.0 -3.0  0.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  0.0  -10.0  0.0

Added: short/3D/PyLith/branches/v1.6-stable/examples/3d/hex8/step19.cfg
===================================================================
--- short/3D/PyLith/branches/v1.6-stable/examples/3d/hex8/step19.cfg	                        (rev 0)
+++ short/3D/PyLith/branches/v1.6-stable/examples/3d/hex8/step19.cfg	2011-07-06 21:03:09 UTC (rev 18702)
@@ -0,0 +1,157 @@
+# -*- Python -*-
+[pylithapp]
+
+# ----------------------------------------------------------------------
+# PROBLEM DESCRIPTION
+# ----------------------------------------------------------------------
+
+#
+# This is a purely elastic quasi-static problem using time-dependent
+# Neumann (traction) boundary conditions. We apply normal tractions to
+# the top surface that increase and then decrease while applying
+# 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 step19.
+# The general parameters are specificed in the pylithapp.cfg
+# file which PyLith reads by default.
+#
+# To run the simulation:
+# pylith step19.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
+
+# Change the total simulation time to 700 years, and set the time
+# step to 10 years.
+[pylithapp.timedependent.implicit.time_step]
+total_time = 600.0*year
+dt = 20.0*year
+
+
+# ----------------------------------------------------------------------
+# 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_change = spatialdata.spatialdb.SimpleDB
+db_change.label = Amplitude of Neumann BC on +z
+db_change.iohandler.filename = spatialdb/tractions_axial_pressure.spatialdb
+# Use linear interpolation
+db_change.query_type = linear
+
+th_change = spatialdata.spatialdb.TimeHistory
+th_change.label = Time history for Neumann BC on +z
+th_change.filename = spatialdb/loadcycle.timedb
+
+output.cell_info_fields = [change-in-value,change-start-time]
+output.writer.filename = output/step19-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/step19.vtk
+time_constant = 1.0*year
+time_format = %04.0f
+
+# 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/step19-groundsurf.vtk
+writer.time_constant = 1.0*year
+writer.time_format = %04.0f
+
+# Give basename for VTK output of upper_crust state variables.
+[pylithapp.timedependent.materials.upper_crust.output]
+cell_filter = pylith.meshio.CellFilterAvgMesh
+writer.filename = output/step19-upper_crust.vtk
+writer.time_constant = 1.0*year
+writer.time_format = %04.0f
+
+# Give basename for VTK output of lower_crust state variables.
+[pylithapp.timedependent.materials.lower_crust.output]
+cell_filter = pylith.meshio.CellFilterAvgMesh
+writer.filename = output/step19-lower_crust.vtk
+writer.time_constant = 1.0*year
+writer.time_format = %04.0f



More information about the CIG-COMMITS mailing list