[cig-commits] r7173 - in short/3D/PyLith/trunk: . libsrc/faults modulesrc/feassemble pylith/faults pylith/feassemble tests/1d/line2

brad at geodynamics.org brad at geodynamics.org
Tue Jun 12 14:02:27 PDT 2007


Author: brad
Date: 2007-06-12 14:02:27 -0700 (Tue, 12 Jun 2007)
New Revision: 7173

Added:
   short/3D/PyLith/trunk/tests/1d/line2/axialextension_disp.spatialdb
   short/3D/PyLith/trunk/tests/1d/line2/dislocation.cfg
   short/3D/PyLith/trunk/tests/1d/line2/dislocation_disp.spatialdb
   short/3D/PyLith/trunk/tests/1d/line2/dislocation_slip.spatialdb
   short/3D/PyLith/trunk/tests/1d/line2/dislocation_sliprate.spatialdb
   short/3D/PyLith/trunk/tests/1d/line2/dislocation_sliptime.spatialdb
Removed:
   short/3D/PyLith/trunk/tests/1d/line2/dispbc.spatialdb
Modified:
   short/3D/PyLith/trunk/TODO
   short/3D/PyLith/trunk/libsrc/faults/BruneSlipFn.cc
   short/3D/PyLith/trunk/libsrc/faults/FaultCohesiveDyn.cc
   short/3D/PyLith/trunk/modulesrc/feassemble/feassemble.pyxe.src
   short/3D/PyLith/trunk/pylith/faults/EqKinSrc.py
   short/3D/PyLith/trunk/pylith/faults/Fault.py
   short/3D/PyLith/trunk/pylith/faults/FaultCohesiveKin.py
   short/3D/PyLith/trunk/pylith/feassemble/FIATSimplex.py
   short/3D/PyLith/trunk/tests/1d/line2/Makefile.am
   short/3D/PyLith/trunk/tests/1d/line2/axialextension.cfg
   short/3D/PyLith/trunk/tests/1d/line2/bar.mesh
Log:
Started work on fault test for line2 cells. Fixed some trivial bugs in fault implementation and getting qudarature to work in 0-D.

Modified: short/3D/PyLith/trunk/TODO
===================================================================
--- short/3D/PyLith/trunk/TODO	2007-06-12 20:44:07 UTC (rev 7172)
+++ short/3D/PyLith/trunk/TODO	2007-06-12 21:02:27 UTC (rev 7173)
@@ -23,9 +23,6 @@
        (1) axial compression
        (2) shear
 
-3. Implement faults for kinematic source
-   a. Creation of cohesive cells
-
 5. Additional unit tests
   b. ElasticityExplicit and ElasticityImplicit
     i. multiple materials
@@ -38,9 +35,10 @@
 
   containers
     faults.odb
-    bc.odb
     materials.odb
 
+Check trapping of errors in reading spatialdata files.
+
 ======================================================================
 SECONDARY PRIORITIES
 ======================================================================

Modified: short/3D/PyLith/trunk/libsrc/faults/BruneSlipFn.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/faults/BruneSlipFn.cc	2007-06-12 20:44:07 UTC (rev 7172)
+++ short/3D/PyLith/trunk/libsrc/faults/BruneSlipFn.cc	2007-06-12 21:02:27 UTC (rev 7173)
@@ -54,7 +54,6 @@
   typedef std::set<Mesh::point_type>::const_iterator vert_iterator;  
 
   assert(!mesh.isNull());
-  assert(!faultMesh.isNull());
   assert(0 != cs);
   assert(0 != _dbFinalSlip);
   assert(0 != _dbSlipTime);

Modified: short/3D/PyLith/trunk/libsrc/faults/FaultCohesiveDyn.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/faults/FaultCohesiveDyn.cc	2007-06-12 20:44:07 UTC (rev 7172)
+++ short/3D/PyLith/trunk/libsrc/faults/FaultCohesiveDyn.cc	2007-06-12 21:02:27 UTC (rev 7173)
@@ -41,160 +41,7 @@
 					     const spatialdata::geocoords::CoordSys* cs,
 					     const double_array& upDir)
 { // initialize
-  assert(0 != _quadrature);
-  assert(0 != _faultMesh);
-  assert(!_faultMesh->isNull());
-  assert(0 != cs);
-  
-  if (3 != upDir.size())
-    throw std::runtime_error("Up direction for fault orientation must be "
-			     "a vector with 3 components.");
-
-#if 0
-  // Allocate section for orientation at quadrature points
-  ALE::Obj<real_section_type> orientation = 
-    new real_section_type((*_faultMesh)->comm(), (*_faultMesh)->debug());
-  assert(!orientation.isNull());
-  const int cellDim = (*_faultMesh)->getDimension();
-  const int spaceDim = cs->spaceDim();
-  const int orientationSize = cellDim*spaceDim;
-  orientation->setFiberDimension((*_faultMesh)->depthStratum(0), 
-				 orientationSize);
-  (*_faultMesh)->allocate(orientation);
-  
-  // Get section containing coordinates of vertices
-  const ALE::Obj<real_section_type>& coordinates = 
-    mesh->getRealSection("coordinates");
-  assert(!coordinates.isNull());
-
-  // Set orientation method
-  const int cellDim = _quadrature->cellDim();
-  const int spaceDim = _quadrature->spaceDim();
-  orient_fn_type orientFn;
-  switch (cellDim)
-    { // switch
-    case 1 :
-      orientFn = _orient1D;
-      break;
-    case 2 :
-      orientFn = _orient2D;
-      break;
-    case 3 :
-      orientFn = _orient3D;
-      break;
-    default :
-      assert(0);
-    } // switch
-
-  // Loop over cells, computing orientation at each vertex in cell
-  const ALE::Obj<sieve_type>& sieve = (*_faultMesh)->getSieve();
-  assert(!sieve.isNull());
-  const ALE::Obj<Mesh::label_sequence>& cells = 
-    (*_faultMesh)->heightStratum(0);
-  const Mesh::label_sequence::iterator cBegin = cells->begin();
-  const Mesh::label_sequence::iterator cEnd = cells->end();
-  double_array cellOrientation(_quadrature->numBasis()*orientationSize);
-  const int numVertices = _quadrature->numBasis();
-  for (Mesh::label_sequence::iterator c_iter=cBegin;
-       c_iter != cEnd;
-       ++c_iter) {
-    // Compute cell geometry at vertices
-    _quadrature->computeGeometryVert(*_faultMesh, coordinates, *c_iter);
-
-    const double_array& jacobian = _quadrature->jacobianVert();
-    const double_array& jacobianDet = _quadrature->jacobianDetVert();
-
-    // Compute weighted orientation of face at vertices (using geometry info)
-    orientFn(&cellOrientation, jacobian, jacobianDet, upDir, numVertices);
-
-    // Update orientation section for vertices in cell
-    const ALE::Obj<sieve_type::traits::coneSequence>& cone = 
-      sieve->cone(*c_iter);
-    assert(!cone.isNull());
-    const sieve_type::traits::coneSequence::iterator vBegin = cone->begin();
-    const sieve_type::traits::coneSequence::iterator vEnd = cone->end();
-    int index = 0;
-    for(sieve_type::traits::coneSequence::iterator v_iter=vBegin;
-	v_iter != vEnd;
-	++v_iter)
-      orientation->updatePoint(*v_iter, &cellOrientation[index]);
-      index += orientationSize;
-  } // for
-
-  // Assemble orientation information
-  //orientation->complete();
-
-  // Loop over vertices, make orientation information unit magnitude
-  const ALE::Obj<Mesh::label_sequence>& vertices = 
-    (*_faultMesh)->depthStratum(0);
-  const Mesh::label_sequence::iterator vBegin = vertices->begin();
-  const Mesh::label_sequence::iterator vEnd = vertices->end();
-  double_array vertexDir(orientationSize);
-  for (Mesh::label_sequence::iterator v_iter=vBegin;
-       v_iter != vEnd;
-       ++v_iter) {
-    const real_section_type::value_type* vertexOrient = 
-      orientation->restrictPoint(*v_iter);
-    
-    assert(cellDim*spaceDim == orientationSize);
-    for (int iDim=0, index=0; iDim < cellDim; ++iDim, index+=cellDim) {
-      double mag = 0;
-      for (int jDim=0; jDim < spaceDim; ++jDim)
-	mag *= vertexOrient[index*cellDim+jDim];
-      for (int jDim=0; jDim < cellDim; ++jDim)
-	vertexDir[index*cellDim+jDim] = vertexOrient[index*cellDim+jDim] / mag;
-    } // for
-    orientation->updatePoint(*v_iter, &vertexDir[0]);
-  } // for
-
-  // Create set of constraint vertices
-  std::set<Mesh::point_type> setVert;
-  for (Mesh::label_sequence::iterator c_iter=cBegin;
-       c_iter != cEnd;
-       ++c_iter) {
-    // Vertices for each cohesive cell are in groups of N.
-    // 0 to N-1: vertices on negative side of the fault
-    // N-1 to 2N-1: vertices on positive side of the fault
-    // 2N to 3N-1: vertices associated with constraint forces
-    const ALE::Obj<sieve_type::traits::coneSequence>& cone = 
-      sieve->cone(*c_iter);
-    assert(!cone.isNull());
-    const sieve_type::traits::coneSequence::iterator vBegin = cone->begin();
-    const sieve_type::traits::coneSequence::iterator vEnd = cone->end();
-    const int coneSize = cone->size();
-    assert(coneSize % 3 == 0);
-    sieve_type::traits::coneSequence::iterator v_iter = vBegin;
-    // Skip over non-constraint vertices
-    for (int i=0, numSkip=2*coneSize/3; i < numSkip; ++i)
-      ++v_iter;
-    // Add constraint vertices to set
-    for(int i=0, numConstraintVert = coneSize/3; 
-	i < numConstraintVert; 
-	++i, ++v_iter)
-      setVert.insert(*v_iter);
-  } // for
-
-  // Only store orientation information at constraint vertices
-  _orientation = 
-    new real_section_type((*_faultMesh)->comm(), (*_faultMesh)->debug());
-  assert(!_orientation.isNull());
-  const std::set<Mesh::point_type>::const_iterator cvBegin = 
-    _constraintVert.begin();
-  const std::set<Mesh::point_type>::const_iterator cvEnd = 
-    _constraintVert.end();
-  for (std::set<Mesh::point_type>::const_iterator v_iter=cvBegin;
-       v_iter != cvEnd;
-       ++v_iter)
-    _orientation->setFiberDimension(*v_iter, orientationSize);
-  (*_faultMesh)->allocate(_orientation);
-  for (std::set<Mesh::point_type>::const_iterator v_iter=cvBegin;
-       v_iter != cvEnd;
-       ++v_iter) {
-    const real_section_type::value_type* vertexOrient = 
-      orientation->restrictPoint(*v_iter);
-    _orientation->updatePoint(*v_iter, vertexOrient);
-  } // for
-#endif
+  throw std::logic_error("FaultCohesiveDyn::initialize() not implemented.");
 } // initialize
 
 // ----------------------------------------------------------------------
@@ -205,46 +52,7 @@
 				topology::FieldsManager* const fields,
 				const ALE::Obj<Mesh>& mesh)
 { // integrateResidual
-#if 0
-  // Subtract constraint forces (which are disp at the constraint
-  // DOF) to residual; contributions are at DOF of normal vertices (i and j)
-
-  const ALE::Obj<Mesh::label_sequence>& cells = 
-    (*_faultMesh)->heightStratum(0);
-  const Mesh::label_sequence::iterator cBegin = cells->begin();
-  const Mesh::label_sequence::iterator cEnd = cells->end();
-
-  // Allocate vector for cell values (if necessary)
-  _initCellVector();
-
-  // Loop over cohesive cells
-  const int numVertices = _quadrature->numBasis();
-  const int numConstraintVert = numVertices / 3;
-  assert(numVertices == numConstraintVert * 3);
-  for (Mesh::label_sequence::iterator c_iter=cBegin;
-       c_iter != cEnd;
-       ++c_iter) {
-    _resetCellVector();
-
-    // Get values at vertices (want constraint forces in disp vector)
-    const real_section_type::value_type* cellDisp = 
-      mesh->restrict(disp, *c_iter);
-
-    // Transfer constraint forces to cell's constribution to residual vector
-    for (int i=0; i < numConstraintVert; ++i) {
-      const double constraintForce = cellDisp[2*numConstraintVert+i];
-      _cellVector[                  i] = -constraintForce;
-      _cellVector[numConstraintVert+i] = -constraintForce;
-    } // for
-    PetscErrorCode err = 
-      PetscLogFlops(numConstraintVert*2);
-    if (err)
-      throw std::runtime_error("Logging PETSc flops failed.");
-
-    // Update residual
-    mesh->updateAdd(residual, *c_iter, _cellVector);
-  } // for
-#endif
+  throw std::logic_error("FaultCohesiveDyn::integrateResidual() not implemented.");
 } // integrateResidual
 
 // ----------------------------------------------------------------------
@@ -255,6 +63,7 @@
 				    topology::FieldsManager* const fields,
 				    const ALE::Obj<Mesh>& mesh)
 { // integrateJacobian
+  throw std::logic_error("FaultCohesiveDyn::integrateJacobian() not implemented.");
 } // integrateJacobian
   
 

Modified: short/3D/PyLith/trunk/modulesrc/feassemble/feassemble.pyxe.src
===================================================================
--- short/3D/PyLith/trunk/modulesrc/feassemble/feassemble.pyxe.src	2007-06-12 20:44:07 UTC (rev 7172)
+++ short/3D/PyLith/trunk/modulesrc/feassemble/feassemble.pyxe.src	2007-06-12 21:02:27 UTC (rev 7173)
@@ -526,9 +526,14 @@
       raise TypeError, \
             "Argument 'vertices' must be a contiguous, 2-D array " \
             "of type double."
-    if numBasis != vertices.shape[0] or cellDim != vertices.shape[1]:
-      raise TypeError, \
-            "Shape of argument 'vertices' must be (numBasis, cellDim)."
+    if cellDim > 0:
+      if numBasis != vertices.shape[0] or cellDim != vertices.shape[1]:
+        raise TypeError, \
+              "Shape of argument 'vertices' must be (numBasis, cellDim)."
+    else:
+      if 1 != vertices.shape[0] or 1 != vertices.shape[1]:
+        raise TypeError, \
+              "Shape of argument 'vertices' must be (1, 1) for 0-D cell."
 
     # basis
     basis = spatialdata.utils.simplearray.objAsSimpleArray(basis)
@@ -548,12 +553,19 @@
       raise TypeError, \
             "Argument 'basisDeriv' must be a contiguous, 3-D array " \
             "of type double."
-    if numQuadPts != basisDeriv.shape[0] or \
-           numBasis != basisDeriv.shape[1] or \
-           cellDim != basisDeriv.shape[2]:
-      raise TypeError, \
-            "Shape of argument 'basisDeriv' must be (numQuadPts, " \
-            "numBasis, cellDim)."
+    if cellDim > 0:
+      if numQuadPts != basisDeriv.shape[0] or \
+             numBasis != basisDeriv.shape[1] or \
+             cellDim != basisDeriv.shape[2]:
+        raise TypeError, \
+              "Shape of argument 'basisDeriv' must be (numQuadPts, " \
+              "numBasis, cellDim)."
+    else:
+      if 1 != basisDeriv.shape[0] or \
+             1 != basisDeriv.shape[1] or \
+             1 != basisDeriv.shape[2]:
+        raise TypeError, \
+              "Shape of argument 'basisDeriv' must be (1, 1, 1) for 0-D cell."
 
     # quadPts
     quadPts = spatialdata.utils.simplearray.objAsSimpleArray(quadPts)
@@ -562,9 +574,14 @@
       raise TypeError, \
             "Argument 'quadPts' must be a contiguous, 2-D array " \
             "of type double."
-    if numQuadPts != quadPts.shape[0] or cellDim != quadPts.shape[1]:
-      raise TypeError, \
-            "Shape of argument 'quadPts' must be (numQuadPts, cellDim)."
+    if cellDim > 0:
+      if numQuadPts != quadPts.shape[0] or cellDim != quadPts.shape[1]:
+        raise TypeError, \
+              "Shape of argument 'quadPts' must be (numQuadPts, cellDim)."
+    else:
+      if 1 != quadPts.shape[0] or 1 != quadPts.shape[1]:
+        raise TypeError, \
+              "Shape of argument 'quadPts' must be (1, 1) for 0-D cell."
 
     # quadWts
     quadWts = spatialdata.utils.simplearray.objAsSimpleArray(quadWts)

Modified: short/3D/PyLith/trunk/pylith/faults/EqKinSrc.py
===================================================================
--- short/3D/PyLith/trunk/pylith/faults/EqKinSrc.py	2007-06-12 20:44:07 UTC (rev 7172)
+++ short/3D/PyLith/trunk/pylith/faults/EqKinSrc.py	2007-06-12 21:02:27 UTC (rev 7173)
@@ -84,7 +84,7 @@
     Setup members using inventory.
     """
     Component._configure(self)
-    slipfn = self.inventory.slipfn
+    self.slipfn = self.inventory.slipfn
     return
 
   

Modified: short/3D/PyLith/trunk/pylith/faults/Fault.py
===================================================================
--- short/3D/PyLith/trunk/pylith/faults/Fault.py	2007-06-12 20:44:07 UTC (rev 7172)
+++ short/3D/PyLith/trunk/pylith/faults/Fault.py	2007-06-12 21:02:27 UTC (rev 7173)
@@ -30,7 +30,7 @@
   msg = "Up-direction must be a 3 component vector (list)."
   if not isinstance(value, list):
     raise ValueError(msg)
-  if 3 != len(list):
+  if 3 != len(value):
     raise ValueError(msg)
   try:
     nums = map(float, value)
@@ -63,7 +63,7 @@
     ## \b Properties
     ## @li \b id Fault identifier
     ## @li \b name Name of fault
-    ## @li \b up-dir Up-dip or up direction
+    ## @li \b up_dir Up-dip or up direction
     ##   (perpendicular to along-strike and not collinear with fault normal)
     ##
     ## \b Facilities
@@ -78,7 +78,7 @@
     label = pyre.inventory.str("label", default="")
     label.meta['tip'] = "Name of material."
 
-    upDir = pyre.inventory.list("up-dir", default=[0, 0, 1],
+    upDir = pyre.inventory.list("up_dir", default=[0, 0, 1],
                                 validator=validateUpDir)
     upDir.meta['tip'] = "Up-dip or up direction " \
                         "(perpendicular to along-strike and not collinear " \

Modified: short/3D/PyLith/trunk/pylith/faults/FaultCohesiveKin.py
===================================================================
--- short/3D/PyLith/trunk/pylith/faults/FaultCohesiveKin.py	2007-06-12 20:44:07 UTC (rev 7172)
+++ short/3D/PyLith/trunk/pylith/faults/FaultCohesiveKin.py	2007-06-12 21:02:27 UTC (rev 7173)
@@ -147,7 +147,7 @@
     Setup members using inventory.
     """
     FaultCohesive._configure(self)
-    eqsrc = self.inventory.eqsrc
+    self.eqsrc = self.inventory.eqsrc
     return
 
   

Modified: short/3D/PyLith/trunk/pylith/feassemble/FIATSimplex.py
===================================================================
--- short/3D/PyLith/trunk/pylith/feassemble/FIATSimplex.py	2007-06-12 20:44:07 UTC (rev 7172)
+++ short/3D/PyLith/trunk/pylith/feassemble/FIATSimplex.py	2007-06-12 21:02:27 UTC (rev 7173)
@@ -117,10 +117,11 @@
       self.cellDim = 0
       self.numCorners = 1
       self.numQuadPts = 1
-      self.basis = numpy.array([1.0])
-      self.basisDeriv = numpy.array([1.0])
-      self.quadPts = numpy.array([0.0])
+      self.basis = numpy.array([[1.0]])
+      self.basisDeriv = numpy.array([[[1.0]]])
+      self.quadPts = numpy.array([[0.0]])
       self.quadWts = numpy.array([1.0])
+      self.vertices = numpy.array([[0.0]])
 
     self._info.line("Cell geometry: ")
     self._info.line(self.geometry)

Modified: short/3D/PyLith/trunk/tests/1d/line2/Makefile.am
===================================================================
--- short/3D/PyLith/trunk/tests/1d/line2/Makefile.am	2007-06-12 20:44:07 UTC (rev 7172)
+++ short/3D/PyLith/trunk/tests/1d/line2/Makefile.am	2007-06-12 21:02:27 UTC (rev 7173)
@@ -20,11 +20,17 @@
 noinst_DATA = \
 	bar.mesh \
 	axialextension.cfg \
-	dispbc.spatialdb \
+	axialextension_disp.spatialdb \
+	dislocation.cfg \
+	dislocation_disp.spatialdb \
+	dislocation_slip.spatialdb \
+	dislocation_sliprate.spatialdb \
+	dislocation_sliptime.spatialdb \
 	matprops.spatialdb
 
 noinst_TMP = \
-	output.vtk
+	axialextension.vtk \
+	dislocation.vtk
 
 
 TESTS_ENVIRONMENT = $(PYTHON)

Modified: short/3D/PyLith/trunk/tests/1d/line2/axialextension.cfg
===================================================================
--- short/3D/PyLith/trunk/tests/1d/line2/axialextension.cfg	2007-06-12 20:44:07 UTC (rev 7172)
+++ short/3D/PyLith/trunk/tests/1d/line2/axialextension.cfg	2007-06-12 21:02:27 UTC (rev 7173)
@@ -57,10 +57,16 @@
 id = 10
 label = end points
 db.label = Dirichlet BC
-db.iohandler.filename = dispbc.spatialdb
+db.iohandler.filename = axialextension_disp.spatialdb
 
 # ----------------------------------------------------------------------
 # PETSc
 # ----------------------------------------------------------------------
 [pylithapp.petsc]
 pc_type = jacobi
+
+# ----------------------------------------------------------------------
+# output
+# ----------------------------------------------------------------------
+[pylithapp.problem.formulation.output.output]
+filename = axialextension.vtk

Copied: short/3D/PyLith/trunk/tests/1d/line2/axialextension_disp.spatialdb (from rev 7165, short/3D/PyLith/trunk/tests/1d/line2/dispbc.spatialdb)

Modified: short/3D/PyLith/trunk/tests/1d/line2/bar.mesh
===================================================================
--- short/3D/PyLith/trunk/tests/1d/line2/bar.mesh	2007-06-12 20:44:07 UTC (rev 7172)
+++ short/3D/PyLith/trunk/tests/1d/line2/bar.mesh	2007-06-12 21:02:27 UTC (rev 7173)
@@ -28,12 +28,20 @@
     }
   }
   group = {
+    name = end points
     type = vertices
-    name = end points
     count = 2
     indices = {
       0
       4
     }
   }
+  group = {
+    name = fault
+    type = vertices
+    count = 1
+    indices = {
+      2
+    }
+  }
 }

Added: short/3D/PyLith/trunk/tests/1d/line2/dislocation.cfg
===================================================================
--- short/3D/PyLith/trunk/tests/1d/line2/dislocation.cfg	2007-06-12 20:44:07 UTC (rev 7172)
+++ short/3D/PyLith/trunk/tests/1d/line2/dislocation.cfg	2007-06-12 21:02:27 UTC (rev 7173)
@@ -0,0 +1,91 @@
+# -*- Python -*-
+[pylithapp]
+
+# ----------------------------------------------------------------------
+# journal
+# ----------------------------------------------------------------------
+[pylithapp.journal.info]
+timedependent = 1
+explicit = 1
+implicit = 1
+petsc = 1
+solverlinear = 1
+meshioascii = 1
+homogeneous = 1
+implicitelasticity = 1
+quadrature1d = 1
+fiatsimplex = 1
+
+# ----------------------------------------------------------------------
+# mesh_generator
+# ----------------------------------------------------------------------
+[pylithapp.mesh_generator]
+debug = 1
+
+[pylithapp.mesh_generator.importer]
+filename = bar.mesh
+coordsys.space_dim = 1
+
+# ----------------------------------------------------------------------
+# problem
+# ----------------------------------------------------------------------
+[pylithapp.timedependent]
+total_time = 0.0*s
+default_dt = 1.0*s
+dimension = 1
+formulation = pylith.problems.Implicit
+bc = pylith.bc.BCSingle
+interfaces = pylith.faults.SingleFault
+
+# ----------------------------------------------------------------------
+# materials
+# ----------------------------------------------------------------------
+[pylithapp.timedependent.materials]
+material = pylith.materials.ElasticStrain1D
+
+[pylithapp.timedependent.materials.material]
+label = elastic material
+id = 1
+db.iohandler.filename = matprops.spatialdb
+quadrature = pylith.feassemble.quadrature.Quadrature1D
+quadrature.cell.shape = line
+
+# ----------------------------------------------------------------------
+# boundary conditions
+# ----------------------------------------------------------------------
+[pylithapp.timedependent.bc.bc]
+fixed_dof = [0]
+id = 10
+label = end points
+db.label = Dirichlet BC
+db.iohandler.filename = dislocation_disp.spatialdb
+
+# ----------------------------------------------------------------------
+# faults
+# ----------------------------------------------------------------------
+[pylithapp.timedependent.interfaces]
+fault = pylith.faults.FaultCohesiveKin
+
+[pylithapp.timedependent.interfaces.fault]
+id = 20
+label = fault
+quadrature = pylith.feassemble.quadrature.Quadrature0D
+quadrature.cell.shape = point
+
+[pylithapp.timedependent.interfaces.fault.eq_src.slip_function]
+slip.iohandler.filename = dislocation_slip.spatialdb
+slip_rate.iohandler.filename = dislocation_sliprate.spatialdb
+slip_time.iohandler.filename = dislocation_sliptime.spatialdb
+
+
+# ----------------------------------------------------------------------
+# PETSc
+# ----------------------------------------------------------------------
+[pylithapp.petsc]
+pc_type = jacobi
+
+# ----------------------------------------------------------------------
+# output
+# ----------------------------------------------------------------------
+[pylithapp.problem.formulation.output.output]
+filename = dislocation.vtk

Added: short/3D/PyLith/trunk/tests/1d/line2/dislocation_disp.spatialdb
===================================================================
--- short/3D/PyLith/trunk/tests/1d/line2/dislocation_disp.spatialdb	2007-06-12 20:44:07 UTC (rev 7172)
+++ short/3D/PyLith/trunk/tests/1d/line2/dislocation_disp.spatialdb	2007-06-12 21:02:27 UTC (rev 7173)
@@ -0,0 +1,14 @@
+#SPATIAL.ascii 1
+SimpleDB {
+  num-values = 1
+  value-names =  dof-0
+  value-units =  m
+  num-locs = 1
+  data-dim = 0
+  space-dim = 1
+  cs-data = cartesian {
+    to-meters = 1.0
+    space-dim = 1
+  }
+}
+0.0   0.0

Added: short/3D/PyLith/trunk/tests/1d/line2/dislocation_slip.spatialdb
===================================================================
--- short/3D/PyLith/trunk/tests/1d/line2/dislocation_slip.spatialdb	2007-06-12 20:44:07 UTC (rev 7172)
+++ short/3D/PyLith/trunk/tests/1d/line2/dislocation_slip.spatialdb	2007-06-12 21:02:27 UTC (rev 7173)
@@ -0,0 +1,14 @@
+#SPATIAL.ascii 1
+SimpleDB {
+  num-values = 1
+  value-names =  slip
+  value-units =  m
+  num-locs = 1
+  data-dim = 0
+  space-dim = 1
+  cs-data = cartesian {
+    to-meters = 1.0
+    space-dim = 1
+  }
+}
+0.0   1.0

Added: short/3D/PyLith/trunk/tests/1d/line2/dislocation_sliprate.spatialdb
===================================================================
--- short/3D/PyLith/trunk/tests/1d/line2/dislocation_sliprate.spatialdb	2007-06-12 20:44:07 UTC (rev 7172)
+++ short/3D/PyLith/trunk/tests/1d/line2/dislocation_sliprate.spatialdb	2007-06-12 21:02:27 UTC (rev 7173)
@@ -0,0 +1,14 @@
+#SPATIAL.ascii 1
+SimpleDB {
+  num-values = 1
+  value-names =  slip-rate
+  value-units =  m/s
+  num-locs = 1
+  data-dim = 0
+  space-dim = 1
+  cs-data = cartesian {
+    to-meters = 1.0
+    space-dim = 1
+  }
+}
+0.0   1.0e+6

Added: short/3D/PyLith/trunk/tests/1d/line2/dislocation_sliptime.spatialdb
===================================================================
--- short/3D/PyLith/trunk/tests/1d/line2/dislocation_sliptime.spatialdb	2007-06-12 20:44:07 UTC (rev 7172)
+++ short/3D/PyLith/trunk/tests/1d/line2/dislocation_sliptime.spatialdb	2007-06-12 21:02:27 UTC (rev 7173)
@@ -0,0 +1,14 @@
+#SPATIAL.ascii 1
+SimpleDB {
+  num-values = 1
+  value-names =  slip-time
+  value-units =  s
+  num-locs = 1
+  data-dim = 0
+  space-dim = 1
+  cs-data = cartesian {
+    to-meters = 1.0
+    space-dim = 1
+  }
+}
+0.0   -1.0

Deleted: short/3D/PyLith/trunk/tests/1d/line2/dispbc.spatialdb
===================================================================
--- short/3D/PyLith/trunk/tests/1d/line2/dispbc.spatialdb	2007-06-12 20:44:07 UTC (rev 7172)
+++ short/3D/PyLith/trunk/tests/1d/line2/dispbc.spatialdb	2007-06-12 21:02:27 UTC (rev 7173)
@@ -1,15 +0,0 @@
-#SPATIAL.ascii 1
-SimpleDB {
-  num-values = 1
-  value-names =  dof-0
-  value-units =  m
-  num-locs = 2
-  data-dim = 1
-  space-dim = 1
-  cs-data = cartesian {
-    to-meters = 1.0
-    space-dim = 1
-  }
-}
-0.0   -0.2
-4.0   +0.2



More information about the cig-commits mailing list