[cig-commits] r16027 - short/3D/PyLith/branches/pylith-friction/playpen/friction
surendra at geodynamics.org
surendra at geodynamics.org
Mon Nov 23 18:46:11 PST 2009
Author: surendra
Date: 2009-11-23 18:46:11 -0800 (Mon, 23 Nov 2009)
New Revision: 16027
Added:
short/3D/PyLith/branches/pylith-friction/playpen/friction/pylithapp.cfg
short/3D/PyLith/branches/pylith-friction/playpen/friction/twohex8-axialdisp.cfg
short/3D/PyLith/branches/pylith-friction/playpen/friction/twohex8-axialdisp.spatialdb
short/3D/PyLith/branches/pylith-friction/playpen/friction/twohex8-matprops.spatialdb
short/3D/PyLith/branches/pylith-friction/playpen/friction/twohex8.mesh
Modified:
short/3D/PyLith/branches/pylith-friction/playpen/friction/twoquad4-shear-neumannBC.cfg
Log:
Added 3-D friction example 'axial' test case
Added: short/3D/PyLith/branches/pylith-friction/playpen/friction/pylithapp.cfg
===================================================================
--- short/3D/PyLith/branches/pylith-friction/playpen/friction/pylithapp.cfg (rev 0)
+++ short/3D/PyLith/branches/pylith-friction/playpen/friction/pylithapp.cfg 2009-11-24 02:46:11 UTC (rev 16027)
@@ -0,0 +1,106 @@
+# -*- Python -*-
+
+# The settings in this file (pylithapp.cfg) will be read automatically
+# by pylith, as long as the file is placed in the run directory.
+
+# The settings in this file will override any settings in:
+# PREFIX/etc/pylithapp.cfg
+# $HOME/.pyre/pylithapp/pylithapp.cfg
+
+# The settings in this file will be overridden by any .cfg file given
+# on the command line or by any command line settings.
+
+[pylithapp]
+
+# ----------------------------------------------------------------------
+# journal
+# The settings below turn on journal info for the specified components.
+# If you want less output to stdout, you can turn these off.
+# ----------------------------------------------------------------------
+[pylithapp.journal.info]
+timedependent = 1
+explicit = 1
+implicit = 1
+petsc = 1
+solverlinear = 1
+meshioascii = 1
+homogeneous = 1
+implicitelasticity = 1
+quadrature3d = 1
+fiatsimplex = 1
+faultcohesivedyn = 1
+
+# ----------------------------------------------------------------------
+# mesh_generator
+# The settings below control the mesh generation (importing mesh info).
+# ----------------------------------------------------------------------
+# Turn on debugging output for mesh generation.
+[pylithapp.mesh_generator]
+debug = 1
+
+# This component specification means we are using PyLith ASCII format,
+# and we then specify the filename and number of space dimensions for
+# the mesh.
+[pylithapp.mesh_generator.reader]
+filename = twohex8.mesh
+coordsys.space_dim = 3
+
+# ----------------------------------------------------------------------
+# problem
+# Specify the problem settings.
+# This is a time-dependent problem, so we select this as our problem type.
+# We select a total time of 1 year, and a time step size of 0.1 year, so we
+# are performing 10 time steps plus the elastic solution.
+# The spatial dimension for this problem is 3.
+# ----------------------------------------------------------------------
+[pylithapp.timedependent]
+dimension = 3
+normalizer.length_scale = 1.0*m
+
+[pylithapp.timedependent.formulation.time_step]
+total_time = 1.0*year
+dt = 0.1*year
+
+# ----------------------------------------------------------------------
+# materials
+# Specify the material information for the problem.
+# ----------------------------------------------------------------------
+# Change the material type to linear Maxwell viscoelastic.
+[pylithapp.timedependent.materials]
+material = pylith.materials.ElasticIsotropic3D
+
+[pylithapp.timedependent.materials.material]
+
+# We give a label of 'elastic isotropic 3D material' to this material.
+label = Elastic isotropic 3D material
+
+# The cells associated with this material are given a material ID of 1
+# in the mesh file.
+id = 1
+
+# We define uniform material properties for this problem rather than
+# using a spatial database file.
+#db_properties = spatialdata.spatialdb.UniformDB
+#db_properties.values = [vp,vs,density,viscosity]
+#db_properties.data = [5773.502691896258*m/s,3333.333333333333*m/s,2700.0*kg/m**3,1.0e18*Pa*s]
+
+# If we instead wanted to used the 'twohex8-matprops.spatialdb' file to define
+# material properties we would comment out the three 'db' lines above
+# and uncomment the line below:
+ db.iohandler.filename = twohex8-matprops.spatialdb
+
+# We are doing 2D quadrature for a quad.
+quadrature.cell = pylith.feassemble.FIATLagrange
+quadrature.cell.dimension = 3
+
+# ----------------------------------------------------------------------
+# PETSc
+# We are using all of the default settings for PETSc except for
+# specifying the Jacobi preconditioner. Additional PETSc command-line
+# arguments may be found in the PETSc documentation.
+# ----------------------------------------------------------------------
+[pylithapp.petsc]
+pc_type = jacobi
+
+# start_in_debugger = true
+# debugger_timeout = 100
Added: short/3D/PyLith/branches/pylith-friction/playpen/friction/twohex8-axialdisp.cfg
===================================================================
--- short/3D/PyLith/branches/pylith-friction/playpen/friction/twohex8-axialdisp.cfg (rev 0)
+++ short/3D/PyLith/branches/pylith-friction/playpen/friction/twohex8-axialdisp.cfg 2009-11-24 02:46:11 UTC (rev 16027)
@@ -0,0 +1,218 @@
+# -*- Python -*-
+
+# The settings in this file (pylithapp.cfg) will be read automatically
+# by pylith, as long as the file is placed in the run directory.
+
+# The settings in this file will override any settings in:
+# PREFIX/etc/pylithapp.cfg
+# $HOME/.pyre/pylithapp/pylithapp.cfg
+
+# The settings in this file will be overridden by any .cfg file given
+# on the command line or by any command line settings.
+
+[pylithapp]
+
+# ----------------------------------------------------------------------
+# journal
+# ----------------------------------------------------------------------
+# The settings below turn on journal info for the specified components.
+# If you want less output to stdout, you can turn these off.
+[pylithapp.journal.info]
+timedependent = 1
+implicit = 1
+petsc = 1
+solvernonlinear = 1
+meshioascii = 1
+homogeneous = 1
+elasticityimplicit = 1
+fiatlagrange = 1
+quadrature1d = 1
+faultcohesivedyn = 1
+
+# ----------------------------------------------------------------------
+# mesh_generator
+# ----------------------------------------------------------------------
+# The settings below control the mesh generation (importing mesh info).
+# Turn on debugging output for mesh generation.
+[pylithapp.mesh_generator]
+debug = 0
+
+# This component specification means we are using PyLith ASCII format,
+# and we then specify the filename and number of space dimensions for
+# the mesh.
+[pylithapp.mesh_generator.reader]
+filename = twohex8.mesh
+coordsys.space_dim = 3
+
+# ----------------------------------------------------------------------
+# problem
+# ----------------------------------------------------------------------
+# Specify the problem settings.
+# This is a time-dependent problem, so we select this as our problem type.
+# We select a total time of 0 sec, and a time step size of 1 sec, so we
+# are performing a single time step.
+# The spatial dimension for this problem is 3.
+# For an implicit formulation (using implicit.cfg), we will perform 1
+# implicit time step from t = -1.0 to t = 0.0 (elastic solution step).
+[pylithapp.timedependent]
+dimension = 3
+normalizer.length_scale = 1.0*m
+formulation = pylith.problems.Implicit
+formulation.solver = pylith.problems.SolverNonlinear
+
+# Set bc to an array with 3 boundary conditions: 'x_neg', 'z_neg' and 'x_pos'.
+bc = [x_neg,z_neg,x_pos]
+bc.x_pos = pylith.bc.Neumann
+
+# Set interfaces to an array with 1 fault: 'fault'.
+interfaces = [fault]
+
+
+[pylithapp.timedependent.formulation.time_step]
+total_time = 0.0*s
+dt = 1.0*s
+
+
+# ----------------------------------------------------------------------
+# materials
+# ----------------------------------------------------------------------
+# Specify the material information for the problem.
+# The material type is isotropic elastic formulated for 3-D.
+[pylithapp.timedependent.materials]
+material = pylith.materials.ElasticIsotropic3D
+
+[pylithapp.timedependent.materials.material]
+
+# We give a label of 'Elastic isotropic 3D material' to this material.
+label = Elastic isotropic 3D material
+
+# The cells associated with this material are given a material ID of 0
+# in the mesh file.
+id = 1
+
+# The properties for this material are given in the spatial database file
+# 'twohex8-matprops.spatialdb'.
+db_properties.iohandler.filename = twohex8-matprops.spatialdb
+
+# Set cell type to quadrilateral (3-d Lagrange).
+quadrature.cell = pylith.feassemble.FIATLagrange
+quadrature.cell.dimension = 3
+
+# ----------------------------------------------------------------------
+# boundary conditions
+# ----------------------------------------------------------------------
+# Provide information on the boundary conditions.
+
+# Boundary conditions to be applied to the negative x-side of the mesh.
+[pylithapp.timedependent.bc.x_neg]
+
+# We are fixing the 0 (x) degree of freedom.
+bc_dof = [0]
+
+# The nodes associated with this boundary condition have the name
+# 'x_neg' in the mesh file.
+label = x_neg
+
+# Boundary conditions to be applied to the negative z-side of the mesh.
+[pylithapp.timedependent.bc.z_neg]
+
+# We are fixing the 2 (z) degree of freedom.
+bc_dof = [2]
+
+# The nodes associated with this boundary condition have the name
+# 'x_pos' in the mesh file.
+label = z_neg
+
+# Boundary conditions to be applied to the positive x-side of the mesh.
+[pylithapp.timedependent.bc.x_pos]
+
+# The nodes associated with this boundary condition have the name
+# 'x_pos' in the mesh file.
+label = x_pos
+
+db_initial = spatialdata.spatialdb.UniformDB
+db_initial.label = Neumann BC +x edge
+db_initial.values = [traction-shear-horiz,traction-shear-vert,traction-normal]
+db_initial.data = [0.0*MPa,0.0*MPa,-12000*MPa]
+
+# Set cell type to quadrilateral 2-d Lagrange).
+quadrature.cell = pylith.feassemble.FIATLagrange
+quadrature.cell.dimension = 2
+
+# ----------------------------------------------------------------------
+# faults
+# ----------------------------------------------------------------------
+# Provide information on the fault (interface).
+[pylithapp.timedependent.interfaces]
+
+fault = pylith.faults.FaultCohesiveDynL
+
+# Define fault properties.
+[pylithapp.timedependent.interfaces.fault]
+
+# The nodes associated with this fault have the name 'fault' in the mesh file.
+label = fault
+
+# 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.
+
+# The quadrature for a 3D fault is 2D with a linear shape.
+quadrature.cell = pylith.feassemble.FIATLagrange
+quadrature.cell.dimension = 2
+
+db_initial_tractions = spatialdata.spatialdb.UniformDB
+db_initial_tractions.label = "Initial fault tractions"
+db_initial_tractions.values = [traction-shear-leftlateral,traction-shear-updip,traction-normal]
+db_initial_tractions.data = [0.0*Pa,0.0*Pa, -10000.0*MPa]
+
+# ----------------------------------------------------------------------
+# PETSc
+# ----------------------------------------------------------------------
+# We are using all of the default settings for PETSc except for
+# specifying the block Jacobi preconditioner. Additional PETSc
+# command-line arguments may be found in the PETSc documentation.
+[pylithapp.petsc]
+ksp_rtol = 1.0e-8
+pc_type = asm
+# Change the preconditioner settings (must turn off
+# shift_positive_definite and turn on shift_nonzero).
+sub_pc_factor_shift_positive_definite = 0
+sub_pc_factor_shift_nonzero =
+
+ksp_monitor = true
+ksp_view = true
+#log_summary = true
+ksp_max_it = 100
+ksp_gmres_restart = 50
+#start_in_debugger = true
+
+snes_monitor = true
+snes_view = true
+ksp_converged_reason = true
+snes_converged_reason = true
+
+# ----------------------------------------------------------------------
+# output
+# ----------------------------------------------------------------------
+# Give basename for VTK domain output of solution over domain.
+[pylithapp.problem.formulation.output.output.writer]
+filename = twohex8-axial.vtk
+
+# Give basename for VTK fault output.
+[pylithapp.timedependent.interfaces.fault.output]
+writer.filename = twohex8-axial-fault.vtk
+vertex_info_fields = []
+vertex_data_fields = []
+
+# Give basename for VTK output of state variables.
+[pylithapp.timedependent.materials.material.output]
+cell_filter = pylith.meshio.CellFilterAvgMesh
+writer.filename = twohex8-axial-statevars.vtk
Added: short/3D/PyLith/branches/pylith-friction/playpen/friction/twohex8-axialdisp.spatialdb
===================================================================
--- short/3D/PyLith/branches/pylith-friction/playpen/friction/twohex8-axialdisp.spatialdb (rev 0)
+++ short/3D/PyLith/branches/pylith-friction/playpen/friction/twohex8-axialdisp.spatialdb 2009-11-24 02:46:11 UTC (rev 16027)
@@ -0,0 +1,44 @@
+#SPATIAL.ascii 1
+
+// This database is used to specify the boundary conditions for the axial
+// displacement example.
+
+// This follows the format for a Simple DB.
+SimpleDB {
+
+ // There are 3 values specified in the database, corresponding to the
+ // constraint values for the x, y, and z degrees of freedom.
+ num-values = 3
+ value-names = displacement-x displacement-y displacement-z
+
+ // The constraint values (displacements) have units of meters.
+ value-units = m m m
+
+ // The values are specified at 2 spatial locations.
+ num-locs = 2
+
+ // The dimension of the spatial distribution is 1, since data is being
+ // specified at points.
+ data-dim = 1
+
+ // The spatial dimension of the database is 3.
+ space-dim = 3
+
+ // We are specifying the data in a Cartesian coordinate system.
+ cs-data = cartesian {
+
+ // Our units are already in meters, so we can just multiply by one.
+ to-meters = 1.0
+
+ // We are using a 3D Cartesian coordinate system.
+ space-dim = 3
+ }
+}
+
+// This is where the data is specified.
+// As described in axialdisp.cfg, this database will be used to specify
+// data along edges.
+// The entries are:
+// X-coord, Y-coord, Z-coord, disp-x disp-y disp-z
+-1.0 0.0 0.0 -0.01 0.0 0.0
+ 1.0 0.0 0.0 0.01 0.0 0.0
Added: short/3D/PyLith/branches/pylith-friction/playpen/friction/twohex8-matprops.spatialdb
===================================================================
--- short/3D/PyLith/branches/pylith-friction/playpen/friction/twohex8-matprops.spatialdb (rev 0)
+++ short/3D/PyLith/branches/pylith-friction/playpen/friction/twohex8-matprops.spatialdb 2009-11-24 02:46:11 UTC (rev 16027)
@@ -0,0 +1,46 @@
+#SPATIAL.ascii 1
+
+// This database is used to specify the material properties for all of the
+// examples in this directory.
+
+// This follows the format for a Simple DB (the only type presently available).
+SimpleDB {
+
+ // There are 4 values specified in the database, corresponding to density,
+ // S-velocity, P-velocity, and viscosity (values for shear modulus and Lame's
+ // constant are computed from the density and seismic velocities).
+ num-values = 4
+ value-names = density vs vp viscosity
+
+ // These are the units used to specify density, vs, and vp.
+ value-units = kg/m**3 m/s m/s Pa*s
+
+ // Values are only specified at a single point since they are constant
+ // throughout the mesh.
+ num-locs = 1
+
+ // The dimension of the spatial distribution is 0, since it is constant
+ // throughout the mesh.
+ data-dim = 0
+
+ // The spatial dimension of the database is 3.
+ space-dim = 3
+
+ // We are specifying the data in a Cartesian coordinate system.
+ cs-data = cartesian {
+
+ // Our units are already in meters, so we can just multiply by one.
+ to-meters = 1.0
+
+ // We are using a 3D Cartesian coordinate system.
+ space-dim = 3
+ }
+}
+// This is where the data is specified.
+// We only need to specify a single point, since the properties are uniform.
+// The values given here will give a shear modulus and Lame's constant both
+// equal to 30 GPa (Poisson's ratio = 0.25).
+// The entries are:
+// X-coord, Y-coord, Z-coord, density, Vs, Vp viscosity.
+
+0.0 0.0 0.0 2700.0 3333.333333333333 5773.502691896258 1.0e18
Added: short/3D/PyLith/branches/pylith-friction/playpen/friction/twohex8.mesh
===================================================================
--- short/3D/PyLith/branches/pylith-friction/playpen/friction/twohex8.mesh (rev 0)
+++ short/3D/PyLith/branches/pylith-friction/playpen/friction/twohex8.mesh 2009-11-24 02:46:11 UTC (rev 16027)
@@ -0,0 +1,126 @@
+// Global mesh object.
+// This defines a brick-shaped mesh composed of two cubic elements.
+mesh = {
+
+ // This is a 3D mesh.is is a 3D mesh.
+ dimension = 3
+
+ // We are using zero-indexing (default) rather than one-indexing.
+ use-index-zero = true
+
+ // Describe the vertices (nodes) defining the mesh.
+ vertices = {
+
+ // The vertices are defined in a 3D coordinate system.
+ dimension = 3
+
+ // There are 12 vertices.
+ count = 12
+
+ // List the coordinates as:
+ // Vertex number (starting from zero), x-coord, y-coord, z-coord
+ // Use coordinate units that are consistent with the other units used.
+ coordinates = {
+ 0 -1.0 -0.5 -0.5
+ 1 -1.0 0.5 -0.5
+ 2 0.0 -0.5 -0.5
+ 3 0.0 0.5 -0.5
+ 4 1.0 -0.5 -0.5
+ 5 1.0 0.5 -0.5
+ 6 -1.0 -0.5 0.5
+ 7 -1.0 0.5 0.5
+ 8 0.0 -0.5 0.5
+ 9 0.0 0.5 0.5
+ 10 1.0 -0.5 0.5
+ 11 1.0 0.5 0.5
+ }
+ }
+
+ // Describe the cells (elements) composing the mesh.
+ cells = {
+
+ // There are 2 cells.
+ count = 2
+
+ // These are trilinear hexahedral cells, so there are 8 corners per cell.
+ num-corners = 8
+
+ // List the vertices composing each cell (see manual for ordering).
+ // List the information as:
+ // Cell number (starting from zero), vertex 0, vertex 1, etc.
+ simplices = {
+ 0 0 2 3 1 6 8 9 7
+ 1 2 4 5 3 8 10 11 9
+ }
+
+ // List the material ID's associated with each cell.
+ // Different ID's may be used to specify a different material type, or
+ // to use a different spatial database for each material ID.
+ // In this example, cells 0 and 1 both are associated with material ID 1.
+ material-ids = {
+ 0 1
+ 1 1
+ }
+ }
+
+ // Here we list different groups (cells or vertices) that we want to associate
+ // with a particular name (ID).
+
+ // This group of vertices may be used to define a fault.
+ // There are 4 vertices corresponding to indices 2, 3, 8, and 9.
+ group = {
+ name = fault
+ type = vertices
+ count = 4
+ indices = {
+ 2
+ 3
+ 8
+ 9
+ }
+ }
+
+ // This group of vertices may be used to specify boundary conditions.
+ // There are 4 vertices corresponding to indices 0, 1, 6, and 7.
+ group = {
+ name = x_neg
+ type = vertices
+ count = 4
+ indices = {
+ 0 1 6 7
+ }
+ }
+
+ // This group of vertices may be used to specify boundary conditions.
+ // There are 4 vertices corresponding to indices 4, 5, 10, and 11.
+ group = {
+ name = x_pos
+ type = vertices
+ count = 4
+ indices = {
+ 4 5 10 11
+ }
+ }
+
+ // This group of vertices may be used to specify boundary conditions.
+ // There are 6 vertices corresponding to indices 0, 2, 4, 6, 8, and 10.
+ group = {
+ name = y_neg
+ type = vertices
+ count = 6
+ indices = {
+ 0 2 4 6 8 10
+ }
+ }
+
+ // This group of vertices may be used to specify boundary conditions.
+ // There are 6 vertices corresponding to indices 0, 1, 2, 3, 4, and 5.
+ group = {
+ name = z_neg
+ type = vertices
+ count = 6
+ indices = {
+ 0 1 2 3 4 5
+ }
+ }
+}
Modified: short/3D/PyLith/branches/pylith-friction/playpen/friction/twoquad4-shear-neumannBC.cfg
===================================================================
--- short/3D/PyLith/branches/pylith-friction/playpen/friction/twoquad4-shear-neumannBC.cfg 2009-11-24 02:17:12 UTC (rev 16026)
+++ short/3D/PyLith/branches/pylith-friction/playpen/friction/twoquad4-shear-neumannBC.cfg 2009-11-24 02:46:11 UTC (rev 16027)
@@ -117,7 +117,7 @@
[pylithapp.timedependent.bc.x_pos_disp]
# We are fixing the 0 (x) degree of freedom.
-bc_dof = [0]
+bc_dof = [0,1]
# The nodes associated with this boundary condition have the name
# 'x_pos' in the mesh file.
More information about the CIG-COMMITS
mailing list