[cig-commits] r16029 - in short/3D/PyLith/branches/pylith-friction: libsrc/faults playpen/friction

surendra at geodynamics.org surendra at geodynamics.org
Tue Nov 24 09:00:53 PST 2009


Author: surendra
Date: 2009-11-24 09:00:53 -0800 (Tue, 24 Nov 2009)
New Revision: 16029

Added:
   short/3D/PyLith/branches/pylith-friction/playpen/friction/twohex8-opening.cfg
   short/3D/PyLith/branches/pylith-friction/playpen/friction/twohex8-shear-DirichletBC.cfg
Modified:
   short/3D/PyLith/branches/pylith-friction/libsrc/faults/FaultCohesiveDynL.cc
   short/3D/PyLith/branches/pylith-friction/playpen/friction/twohex8-axial.cfg
Log:
Added 3-D friction examples for opening and shear cases

Modified: short/3D/PyLith/branches/pylith-friction/libsrc/faults/FaultCohesiveDynL.cc
===================================================================
--- short/3D/PyLith/branches/pylith-friction/libsrc/faults/FaultCohesiveDynL.cc	2009-11-24 04:03:04 UTC (rev 16028)
+++ short/3D/PyLith/branches/pylith-friction/libsrc/faults/FaultCohesiveDynL.cc	2009-11-24 17:00:53 UTC (rev 16029)
@@ -880,8 +880,8 @@
 	    tractionShearVertex = sqrt(pow(tractionTpdtVertex[1],2) +pow(tractionTpdtVertex[0],2));
 	    slipShearVertex = sqrt(pow(slipVertex[1],2)+pow(slipVertex[0],2));
 
-	    if (tractionTotalVertex < 0) {
-	      // if in compression
+	    if (tractionTotalVertex < 0 && 0 == slipVertex[2]) {
+	      // if in compression and no opening
 	      std::cout << "FAULT IN COMPRESSION" << std::endl;
 	      const double friction =
 		-muf * (tractionTotalVertex);

Modified: short/3D/PyLith/branches/pylith-friction/playpen/friction/twohex8-axial.cfg
===================================================================
--- short/3D/PyLith/branches/pylith-friction/playpen/friction/twohex8-axial.cfg	2009-11-24 04:03:04 UTC (rev 16028)
+++ short/3D/PyLith/branches/pylith-friction/playpen/friction/twohex8-axial.cfg	2009-11-24 17:00:53 UTC (rev 16029)
@@ -92,7 +92,7 @@
 bc_dof = [2]
 
 # The nodes associated with this boundary condition have the name
-# 'x_pos' in the mesh file.
+# 'z_pos' in the mesh file.
 label = z_neg_nofault
 
 # Boundary conditions to be applied to the positive x-side of the mesh.

Added: short/3D/PyLith/branches/pylith-friction/playpen/friction/twohex8-opening.cfg
===================================================================
--- short/3D/PyLith/branches/pylith-friction/playpen/friction/twohex8-opening.cfg	                        (rev 0)
+++ short/3D/PyLith/branches/pylith-friction/playpen/friction/twohex8-opening.cfg	2009-11-24 17:00:53 UTC (rev 16029)
@@ -0,0 +1,165 @@
+# -*- Python -*-
+[pylithapp]
+
+# ----------------------------------------------------------------------
+# journal
+# ----------------------------------------------------------------------
+[pylithapp.journal.info]
+timedependent = 1
+implicit = 1
+petsc = 1
+solvernonlinear = 1
+meshioascii = 1
+homogeneous = 1
+elasticityimplicit = 1
+fiatlagrange = 1
+quadrature3d = 1
+faultcohesivedyn = 1
+
+# ----------------------------------------------------------------------
+# mesh_generator
+# ----------------------------------------------------------------------
+[pylithapp.mesh_generator]
+debug = 0
+
+[pylithapp.mesh_generator.reader]
+filename = twohex8.mesh
+coordsys.space_dim = 3
+
+# ----------------------------------------------------------------------
+# problem
+# ----------------------------------------------------------------------
+[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 2 boundary conditions: 'x_neg' and 'x_pos'.
+bc = [x_neg,x_pos]
+bc.x_pos = pylith.bc.DirichletBoundary
+
+# 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
+# ----------------------------------------------------------------------
+[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
+
+db_properties.iohandler.filename = twohex8-matprops.spatialdb
+
+# We are doing 3D quadrature for a hex8.
+quadrature.cell = pylith.feassemble.FIATLagrange
+quadrature.cell.dimension = 3
+
+
+[pylithapp.timedependent.formulation.time_step]
+total_time = 0.0*s
+dt = 1.0*s
+
+# ----------------------------------------------------------------------
+# 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), 1 (y) and 2 (z) degrees of freedom.
+bc_dof = [0,1,2]
+
+# 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 positive x-side of the mesh.
+[pylithapp.timedependent.bc.x_pos]
+
+# We are prescribing the 0 (x) and fixing 1 (y), 2 (z) degrees of freedom.
+bc_dof = [0,1,2]
+
+# 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 = Dirichlet BC +x edge
+db_initial.values = [displacement-x,displacement-y,displacement-z]
+db_initial.data = [1.0*m,0.0*m,0.0*m]
+
+# ----------------------------------------------------------------------
+# faults
+# ----------------------------------------------------------------------
+[pylithapp.timedependent.interfaces]
+fault = pylith.faults.FaultCohesiveDynL
+
+[pylithapp.timedependent.interfaces.fault]
+
+# The nodes associated with this fault have the name 'fault' in the mesh file.
+label = fault
+
+# 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-opening.vtk
+
+# Give basename for VTK fault output.
+[pylithapp.timedependent.interfaces.fault.output]
+writer.filename = twohex8-opening-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-opening-statevars.vtk

Added: short/3D/PyLith/branches/pylith-friction/playpen/friction/twohex8-shear-DirichletBC.cfg
===================================================================
--- short/3D/PyLith/branches/pylith-friction/playpen/friction/twohex8-shear-DirichletBC.cfg	                        (rev 0)
+++ short/3D/PyLith/branches/pylith-friction/playpen/friction/twohex8-shear-DirichletBC.cfg	2009-11-24 17:00:53 UTC (rev 16029)
@@ -0,0 +1,165 @@
+# -*- Python -*-
+[pylithapp]
+
+# ----------------------------------------------------------------------
+# journal
+# ----------------------------------------------------------------------
+[pylithapp.journal.info]
+timedependent = 1
+implicit = 1
+petsc = 1
+solvernonlinear = 1
+meshioascii = 1
+homogeneous = 1
+elasticityimplicit = 1
+fiatlagrange = 1
+quadrature3d = 1
+faultcohesivedyn = 1
+
+# ----------------------------------------------------------------------
+# mesh_generator
+# ----------------------------------------------------------------------
+[pylithapp.mesh_generator]
+debug = 0
+
+[pylithapp.mesh_generator.reader]
+filename = twohex8.mesh
+coordsys.space_dim = 3
+
+# ----------------------------------------------------------------------
+# problem
+# ----------------------------------------------------------------------
+[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' and 'x_pos'.
+bc = [x_neg,x_pos]
+bc.x_pos = pylith.bc.DirichletBoundary
+
+# 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
+# ----------------------------------------------------------------------
+[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
+
+db_properties.iohandler.filename = twohex8-matprops.spatialdb
+
+# We are doing 3D quadrature for a hex8.
+quadrature.cell = pylith.feassemble.FIATLagrange
+quadrature.cell.dimension = 3
+
+
+[pylithapp.timedependent.formulation.time_step]
+total_time = 0.0*s
+dt = 1.0*s
+
+# ----------------------------------------------------------------------
+# 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), 1 (y) and 2 (z) degrees of freedom.
+bc_dof = [0,1,2]
+
+# 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 positive x-side of the mesh.
+[pylithapp.timedependent.bc.x_pos]
+
+# We are prescribing the 2 (z) and 1 (y) and fixing 0 (x) degrees of freedom.
+bc_dof = [0,1,2]
+
+# 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 = Dirichlet BC +x edge
+db_initial.values = [displacement-x,displacement-y,displacement-z]
+db_initial.data = [0.0*m,1.0*m,1.0*m]
+
+# ----------------------------------------------------------------------
+# faults
+# ----------------------------------------------------------------------
+[pylithapp.timedependent.interfaces]
+fault = pylith.faults.FaultCohesiveDynL
+
+[pylithapp.timedependent.interfaces.fault]
+
+# The nodes associated with this fault have the name 'fault' in the mesh file.
+label = fault
+
+# 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-shear-dirichletBC.vtk
+
+# Give basename for VTK fault output.
+[pylithapp.timedependent.interfaces.fault.output]
+writer.filename = twohex8-shear-dirichletBC-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-shear-dirichletBC-statevars.vtk



More information about the CIG-COMMITS mailing list