[cig-commits] r8152 - in short/3D/PyLith/trunk: doc/userguide doc/userguide/boundaryconditions libsrc/bc libsrc/materials unittests/libtests/bc unittests/libtests/bc/data

brad at geodynamics.org brad at geodynamics.org
Thu Oct 18 17:29:49 PDT 2007


Author: brad
Date: 2007-10-18 17:29:48 -0700 (Thu, 18 Oct 2007)
New Revision: 8152

Added:
   short/3D/PyLith/trunk/unittests/libtests/bc/TestAbsorbingDampersLine2.cc
   short/3D/PyLith/trunk/unittests/libtests/bc/TestAbsorbingDampersLine2.hh
   short/3D/PyLith/trunk/unittests/libtests/bc/data/AbsorbingDampersDataLine2.cc
   short/3D/PyLith/trunk/unittests/libtests/bc/data/AbsorbingDampersDataLine2.hh
   short/3D/PyLith/trunk/unittests/libtests/bc/data/elasticstrain1d.spatialdb
Removed:
   short/3D/PyLith/trunk/unittests/libtests/bc/data/AbsorbingDampersData1D.cc
   short/3D/PyLith/trunk/unittests/libtests/bc/data/AbsorbingDampersData1D.hh
Modified:
   short/3D/PyLith/trunk/doc/userguide/boundaryconditions/boundaryconditions.lyx
   short/3D/PyLith/trunk/doc/userguide/userguide.lyx
   short/3D/PyLith/trunk/libsrc/bc/AbsorbingDampers.cc
   short/3D/PyLith/trunk/libsrc/bc/BoundaryCondition.hh
   short/3D/PyLith/trunk/libsrc/materials/Material.cc
   short/3D/PyLith/trunk/unittests/libtests/bc/Makefile.am
   short/3D/PyLith/trunk/unittests/libtests/bc/TestAbsorbingDampers.cc
   short/3D/PyLith/trunk/unittests/libtests/bc/data/AbsorbingDampersData.cc
   short/3D/PyLith/trunk/unittests/libtests/bc/data/AbsorbingDampersData.hh
   short/3D/PyLith/trunk/unittests/libtests/bc/data/Makefile.am
Log:
Worked on absorbing dampers implementation and documentation.

Modified: short/3D/PyLith/trunk/doc/userguide/boundaryconditions/boundaryconditions.lyx
===================================================================
--- short/3D/PyLith/trunk/doc/userguide/boundaryconditions/boundaryconditions.lyx	2007-10-19 00:28:55 UTC (rev 8151)
+++ short/3D/PyLith/trunk/doc/userguide/boundaryconditions/boundaryconditions.lyx	2007-10-19 00:29:48 UTC (rev 8152)
@@ -1,17 +1,25 @@
-#LyX 1.4.3 created this file. For more info see http://www.lyx.org/
-\lyxformat 245
+#LyX 1.5.2 created this file. For more info see http://www.lyx.org/
+\lyxformat 276
 \begin_document
 \begin_header
 \textclass book
 \language english
 \inputencoding auto
-\fontscheme default
+\font_roman default
+\font_sans default
+\font_typewriter default
+\font_default_family default
+\font_sc false
+\font_osf false
+\font_sf_scale 100
+\font_tt_scale 100
 \graphics default
 \paperfontsize default
 \spacing single
 \papersize default
 \use_geometry true
 \use_amsmath 1
+\use_esint 0
 \cite_engine basic
 \use_bibtopic false
 \paperorientation portrait
@@ -29,12 +37,14 @@
 \paperpagestyle default
 \tracking_changes false
 \output_changes false
+\author "" 
 \end_header
 
 \begin_body
 
 \begin_layout Chapter
-\begin_inset LatexCommand \label{cha:boundary:interface:conditions}
+\begin_inset LatexCommand label
+name "cha:boundary:interface:conditions"
 
 \end_inset
 
@@ -87,7 +97,8 @@
  generator.
  For meshes specified using the PyLith mesh ASCII format, the sets of vertices
  are specified using groups (see Appendix 
-\begin_inset LatexCommand \ref{sec:MeshIOAscii}
+\begin_inset LatexCommand ref
+reference "sec:MeshIOAscii"
 
 \end_inset
 
@@ -115,7 +126,8 @@
  container is not yet available.
  However, we supply containers for one, two, four, and six boundary conditions.
  Table 
-\begin_inset LatexCommand \ref{tab:bc:containers}
+\begin_inset LatexCommand ref
+reference "tab:bc:containers"
 
 \end_inset
 
@@ -333,9 +345,13 @@
 
 \end_layout
 
-\begin_layout Caption
-\begin_inset LatexCommand \label{tab:bc:containers}
+\begin_layout Standard
+\begin_inset Caption
 
+\begin_layout Standard
+\begin_inset LatexCommand label
+name "tab:bc:containers"
+
 \end_inset
 
 Predefined boundary condition containers.
@@ -346,6 +362,11 @@
 
 \end_layout
 
+\end_inset
+
+
+\end_layout
+
 \begin_layout Section
 Dirichlet Boundary Conditions
 \end_layout
@@ -442,7 +463,8 @@
 face A,'' the spatial database query should use the nearest point algorithm,
  and motion in the z-direction is constrained.
  See Appendix 
-\begin_inset LatexCommand \ref{sec:Spatialdata:SimpleIOAscii}
+\begin_inset LatexCommand ref
+reference "sec:Spatialdata:SimpleIOAscii"
 
 \end_inset
 
@@ -497,8 +519,11 @@
 \begin_layout Standard
 
 \series bold
-Value in 
+Value in
+\series default
+ 
 \family typewriter
+\series bold
 fixed_dof
 \end_layout
 
@@ -589,7 +614,10 @@
 
 \end_layout
 
-\begin_layout Caption
+\begin_layout Standard
+\begin_inset Caption
+
+\begin_layout Standard
 Values in spatial database used as parameters in the elastic material constituti
 ve models.
 \end_layout
@@ -599,6 +627,11 @@
 
 \end_layout
 
+\end_inset
+
+
+\end_layout
+
 \begin_layout Section
 Neumann Boundary Conditions
 \end_layout
@@ -617,8 +650,9 @@
  of a boundary by placing simple dashpots on the boundary.
  Normally incident dilatational and shear waves are perfectly absorbed.
  Waves incident at other angles are only partially absorbed.
- This boundary condition is simpler than a perfectly matched layer boundary
- condition but does not perform quite as well, especially for surface waves.
+ This boundary condition is simpler than a perfectly matched layer (PML)
+ boundary condition but does not perform quite as well, especially for surface
+ waves.
  If the waves arriving at the absorbing boundary are relatively small in
  amplitude compared to the amplitudes of primary interest, this boundary
  condition gives reasonable results.
@@ -668,11 +702,11 @@
 \end_inset
 
  is the direction normal to the boundary, 
-\begin_inset Formula $s_{h}$
+\begin_inset Formula $\overrightarrow{s}_{h}$
 \end_inset
 
  is the horizontal direction tangent to the boundary, and 
-\begin_inset Formula $s_{v}$
+\begin_inset Formula $\overrightarrow{s}_{v}$
 \end_inset
 
 is the vertical direction tangent to the boundary, the tractions on the
@@ -686,7 +720,7 @@
 
 In the case of a horizontal boundary, we can define an auxilliary direction
  in order to assign unique tangential directions.
- For a linear elastic material, 
+ For a linear elastic isotropic material, 
 \begin_inset Formula $\sigma_{ij}=\lambda\epsilon_{kk}\delta_{ij}+2\mu\epsilon_{ij},$
 \end_inset
 
@@ -716,9 +750,10 @@
 
 \end_inset
 
-so that our expressions for the tractions becomes
+so that our expressions for the tractions become
 \begin_inset Formula \begin{gather}
-T_{s_{h}}=-\frac{\mu}{c}\left(\frac{\partial u_{s_{h}}^{t}(t-\frac{\vec{x}}{c})}{\partial t}+\frac{\partial u_{n}^{t}(t-\frac{\vec{x}}{c})}{\partial t}\right).\end{gather}
+T_{s_{h}}=-\frac{\mu}{c}\left(\frac{\partial u_{s_{h}}^{t}(t-\frac{\vec{x}}{c})}{\partial t}+\frac{\partial u_{n}^{t}(t-\frac{\vec{x}}{c})}{\partial t}\right),\\
+T_{s_{v}}=-\frac{\mu}{c}\left(\frac{\partial u_{s_{v}}^{t}(t-\frac{\vec{x}}{c})}{\partial t}+\frac{\partial u_{n}^{t}(t-\frac{\vec{x}}{c})}{\partial t}\right).\end{gather}
 
 \end_inset
 
@@ -749,14 +784,16 @@
 \begin_inset Formula $u_{n}=u_{s_{h}}=0$
 \end_inset
 
-, where 
+, with 
 \begin_inset Formula $c=v_{s}$
 \end_inset
 
  in both cases.
  This leads to the following expressions for the tractions:
 \begin_inset Formula \begin{gather}
-T_{s_{h}}=-\rho v_{s}\frac{\partial u_{s_{h}}^{t}(t-\frac{\vec{x}}{c})}{\partial t}\end{gather}
+T_{s_{h}}=-\rho v_{s}\frac{\partial u_{s_{h}}^{t}(t-\frac{\vec{x}}{c})}{\partial t}\\
+T_{s_{v}}=-\rho v_{s}\frac{\partial u_{v}^{t}(t-\frac{\vec{x}}{c})}{\partial t}\\
+T_{n}=-\rho v_{p}\frac{\partial u_{n}^{t}(t-\frac{\vec{x}}{c})}{\partial t}\end{gather}
 
 \end_inset
 
@@ -850,7 +887,7 @@
  reverse-slip, and fault opening.
  The current release of PyLith supports kinematic (prescribed) slip.
  Support for fault constitutive models for frictional interface conditions
- will be supported in a future release (Fall 2007).
+ will be supported in a future release (Winter 2007).
 \end_layout
 
 \begin_layout Subsection
@@ -860,7 +897,8 @@
 \begin_layout Standard
 Slip corresponds to relative motion across a fault surface.
  Figure 
-\begin_inset LatexCommand \ref{fig:fault:orientation}
+\begin_inset LatexCommand ref
+reference "fig:fault:orientation"
 
 \end_inset
 
@@ -871,7 +909,8 @@
  angles over potentially complex, nonplanar fault surfaces.
  Instead, the user specifies fault parameters in terms of lateral motion,
  reverse motion, and fault opening as shown in Figure 
-\begin_inset LatexCommand \ref{fig:fault:slip:motions}
+\begin_inset LatexCommand ref
+reference "fig:fault:slip:motions"
 
 \end_inset
 
@@ -897,7 +936,10 @@
 
 \end_layout
 
-\begin_layout Caption
+\begin_layout Standard
+\begin_inset Caption
+
+\begin_layout Standard
 Orientation of a fault surface in 3D, where 
 \begin_inset Formula $\phi$
 \end_inset
@@ -912,7 +954,8 @@
 
  the rake angle.
  
-\begin_inset LatexCommand \label{fig:fault:orientation}
+\begin_inset LatexCommand label
+name "fig:fault:orientation"
 
 \end_inset
 
@@ -924,6 +967,11 @@
 
 \end_layout
 
+\end_inset
+
+
+\end_layout
+
 \begin_layout Standard
 \noindent
 \align center
@@ -943,11 +991,15 @@
 
 \end_layout
 
-\begin_layout Caption
+\begin_layout Standard
+\begin_inset Caption
+
+\begin_layout Standard
 Sign conventions associated with fault slip.
  Positive values are associated with left-lateral, reverse, and fault opening
  motions.
-\begin_inset LatexCommand \label{fig:fault:slip:motions}
+\begin_inset LatexCommand label
+name "fig:fault:slip:motions"
 
 \end_inset
 
@@ -959,6 +1011,11 @@
 
 \end_layout
 
+\end_inset
+
+
+\end_layout
+
 \begin_layout Subsection
 Fault Surface Container
 \end_layout
@@ -1087,9 +1144,13 @@
 
 \end_layout
 
-\begin_layout Caption
-\begin_inset LatexCommand \label{tab:fault:containers}
+\begin_layout Standard
+\begin_inset Caption
 
+\begin_layout Standard
+\begin_inset LatexCommand label
+name "tab:fault:containers"
+
 \end_inset
 
 Predefined fault surface containers.
@@ -1100,6 +1161,11 @@
 
 \end_layout
 
+\end_inset
+
+
+\end_layout
+
 \begin_layout Subsection
 Fault Implementation
 \end_layout
@@ -1113,7 +1179,8 @@
  on the two sides of the fault.
  PyLith automatically adds cohesive cells for each fault surface.
  Figure 
-\begin_inset LatexCommand \ref{fig:fault:cohesive:quad4}
+\begin_inset LatexCommand ref
+reference "fig:fault:cohesive:quad4"
 
 \end_inset
 
@@ -1140,12 +1207,16 @@
 
 \end_layout
 
-\begin_layout Caption
+\begin_layout Standard
+\begin_inset Caption
+
+\begin_layout Standard
 Example of cohesive cell inserted into a mesh of two quadrilateral cells.
  The zero thickness cohesive cell (shown with dashed lines) controls slip
  on the fault via the relative motion between vertices 3 and 7 and 2 and
  6.
-\begin_inset LatexCommand \label{fig:fault:cohesive:quad4}
+\begin_inset LatexCommand label
+name "fig:fault:cohesive:quad4"
 
 \end_inset
 
@@ -1157,6 +1228,11 @@
 
 \end_layout
 
+\end_inset
+
+
+\end_layout
+
 \begin_layout Subsection
 Fault Parameters
 \end_layout
@@ -1169,9 +1245,9 @@
 id This is an integer identifier for the fault surface.
  It is used to specify the 
 \family typewriter
-material-id 
+material-id
 \family default
-of the cohesive cells in the mesh.
+ of the cohesive cells in the mesh.
  Material identifiers must be unique so this value cannot be the same as
  any of the material models or any other fault.
 \end_layout
@@ -1394,7 +1470,8 @@
  each point where the parameters for the slip time function may vary over
  the fault surface.
  We use an integral of Brune's far-field time function 
-\begin_inset LatexCommand \cite{Brune:1970}
+\begin_inset LatexCommand cite
+key "Brune:1970"
 
 \end_inset
 
@@ -1723,7 +1800,10 @@
 
 \end_layout
 
-\begin_layout Caption
+\begin_layout Standard
+\begin_inset Caption
+
+\begin_layout Standard
 Values in spatial database used as parameters in the elastic material constituti
 ve models.
 \end_layout
@@ -1733,5 +1813,10 @@
 
 \end_layout
 
+\end_inset
+
+
+\end_layout
+
 \end_body
 \end_document

Modified: short/3D/PyLith/trunk/doc/userguide/userguide.lyx
===================================================================
--- short/3D/PyLith/trunk/doc/userguide/userguide.lyx	2007-10-19 00:28:55 UTC (rev 8151)
+++ short/3D/PyLith/trunk/doc/userguide/userguide.lyx	2007-10-19 00:29:48 UTC (rev 8152)
@@ -1,4 +1,4 @@
-#LyX 1.5.1 created this file. For more info see http://www.lyx.org/
+#LyX 1.5.2 created this file. For more info see http://www.lyx.org/
 \lyxformat 276
 \begin_document
 \begin_header
@@ -45,6 +45,7 @@
 \tracking_changes false
 \output_changes false
 \author "" 
+\author "" 
 \end_header
 
 \begin_body

Modified: short/3D/PyLith/trunk/libsrc/bc/AbsorbingDampers.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/bc/AbsorbingDampers.cc	2007-10-19 00:28:55 UTC (rev 8151)
+++ short/3D/PyLith/trunk/libsrc/bc/AbsorbingDampers.cc	2007-10-19 00:29:48 UTC (rev 8152)
@@ -66,6 +66,8 @@
     throw std::runtime_error(msg.str());
   } // if
 
+  //_boundaryMesh->view("ABSORBING BOUNDARY MESH");
+
   // check compatibility of quadrature and boundary mesh
   if (_quadrature->cellDim() != _boundaryMesh->getDimension()) {
     std::ostringstream msg;
@@ -78,18 +80,18 @@
   } // if
   const int numCorners = _quadrature->numBasis();
 
-  // Get 'surface' cells (1 dimension lower than top-level cells)
   const ALE::Obj<ALE::Mesh::label_sequence>& cells = 
-    _boundaryMesh->heightStratum(1);
+    _boundaryMesh->heightStratum(0);
   assert(!cells.isNull());
   const Mesh::label_sequence::iterator cellsBegin = cells->begin();
   const Mesh::label_sequence::iterator cellsEnd = cells->end();
-  const ALE::Obj<sieve_type>& sieve = mesh->getSieve();
+  const ALE::Obj<sieve_type>& sieve = _boundaryMesh->getSieve();
   assert(!sieve.isNull());
   for (Mesh::label_sequence::iterator c_iter=cellsBegin;
        c_iter != cellsEnd;
        ++c_iter) {
-    const int cellNumCorners = sieve->nCone(*c_iter, mesh->depth())->size();
+    const int cellNumCorners = sieve->nCone(*c_iter, 
+					    _boundaryMesh->depth())->size();
     if (numCorners != cellNumCorners) {
       std::ostringstream msg;
       msg << "Quadrature is incompatible with cell for absorbing boundary "
@@ -108,10 +110,11 @@
   const int numQuadPts = _quadrature->numQuadPts();
   const int spaceDim = cs->spaceDim();
   const int fiberDim = spaceDim * numQuadPts;
-  _dampingConsts = new real_section_type(mesh->comm(), mesh->debug());
+  _dampingConsts = new real_section_type(_boundaryMesh->comm(), 
+					 _boundaryMesh->debug());
   assert(!_dampingConsts.isNull());
   _dampingConsts->setFiberDimension(cells, fiberDim);
-  mesh->allocate(_dampingConsts);
+  _boundaryMesh->allocate(_dampingConsts);
 
   // Containers for orientation information
   const int orientationSize = spaceDim*spaceDim;
@@ -125,7 +128,7 @@
   // open database with material property information
   _db->open();
   int numValues = 0;
-  if (cellDim > 1) {
+  if (cellDim > 0) {
     numValues = 3;
     const char* valueNames[] = { "density", "vp", "vs" };
     _db->queryVals(valueNames, numValues);
@@ -144,7 +147,7 @@
   double_array dampingConstsGlobal(fiberDim);
 
   const ALE::Obj<real_section_type>& coordinates =
-    mesh->getRealSection("coordinates");
+    _boundaryMesh->getRealSection("coordinates");
 
   for(Mesh::label_sequence::iterator c_iter = cells->begin();
       c_iter != cells->end();
@@ -172,7 +175,7 @@
 	dampingConstsLocal[index+iDim] = queryData[0]*queryData[2];
 
       // Compute normal/tangential orientation
-      mesh->restrict(coordinates, *c_iter, 
+      _boundaryMesh->restrict(coordinates, *c_iter, 
 		     &cellVertices[0], cellVertices.size());
       memcpy(&quadPtRef[0], &quadPtsRef[index], spaceDim*sizeof(double));
       cellGeometry.jacobian(&jacobian, &jacobianDet, cellVertices, quadPtRef);
@@ -184,7 +187,7 @@
 	  dampingConstsGlobal[iDim] += 
 	    dampingConstsLocal[jDim]*orientation[iDim*spaceDim+jDim];
     } // for
-    mesh->update(_dampingConsts, *c_iter, &dampingConstsGlobal[0]);
+    _dampingConsts->updatePoint(*c_iter, &dampingConstsGlobal[0]);
   } // for
 
   _db->close();
@@ -215,7 +218,7 @@
 
   // Get sections
   const ALE::Obj<real_section_type>& coordinates = 
-    mesh->getRealSection("coordinates");
+    _boundaryMesh->getRealSection("coordinates");
   assert(!coordinates.isNull());
   const ALE::Obj<real_section_type>& dispTpdt = fields->getHistoryItem(0);
   const ALE::Obj<real_section_type>& dispTmdt = fields->getHistoryItem(2);
@@ -308,7 +311,7 @@
 
   // Get sections
   const ALE::Obj<real_section_type>& coordinates = 
-    mesh->getRealSection("coordinates");
+    _boundaryMesh->getRealSection("coordinates");
   assert(!coordinates.isNull());
   const ALE::Obj<real_section_type>& dispT = fields->getHistoryItem(1);
   assert(!dispT.isNull());

Modified: short/3D/PyLith/trunk/libsrc/bc/BoundaryCondition.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/bc/BoundaryCondition.hh	2007-10-19 00:28:55 UTC (rev 8151)
+++ short/3D/PyLith/trunk/libsrc/bc/BoundaryCondition.hh	2007-10-19 00:29:48 UTC (rev 8152)
@@ -113,7 +113,7 @@
 protected :
 
   int _id; ///< BoundaryCondition identifier
-  std::string _label; ///< Label of fault
+  std::string _label; ///< Label of boundary condition
   spatialdata::spatialdb::SpatialDB* _db; ///< Spatial database w/parameters
 
 }; // class BoundaryCondition

Modified: short/3D/PyLith/trunk/libsrc/materials/Material.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/materials/Material.cc	2007-10-19 00:28:55 UTC (rev 8151)
+++ short/3D/PyLith/trunk/libsrc/materials/Material.cc	2007-10-19 00:29:48 UTC (rev 8152)
@@ -197,7 +197,6 @@
     } // for
     // Insert cell contribution into fields
     for (int iParam=0; iParam < numParams; ++iParam)
-      //mesh->update(paramSections[iParam], *cellIter, &cellData[iParam][0]);
       paramSections[iParam]->updatePoint(*cellIter, &cellData[iParam][0]);
   } // for
 

Modified: short/3D/PyLith/trunk/unittests/libtests/bc/Makefile.am
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/bc/Makefile.am	2007-10-19 00:28:55 UTC (rev 8151)
+++ short/3D/PyLith/trunk/unittests/libtests/bc/Makefile.am	2007-10-19 00:29:48 UTC (rev 8152)
@@ -22,6 +22,7 @@
 # Primary source files
 testbc_SOURCES = \
 	TestAbsorbingDampers.cc \
+	TestAbsorbingDampersLine2.cc \
 	TestBoundaryCondition.cc \
 	TestDirichlet.cc \
 	TestDirichletLine2.cc \
@@ -38,6 +39,7 @@
 
 noinst_HEADERS = \
 	TestAbsorbingDampers.hh \
+	TestAbsorbingDampersLine2.hh \
 	TestBoundaryCondition.hh \
 	TestDirichlet.hh \
 	TestDirichletLine2.hh \
@@ -54,7 +56,7 @@
 # Source files associated with testing data
 testbc_SOURCES += \
 	data/AbsorbingDampersData.cc \
-	data/AbsorbingDampersData1D.cc \
+	data/AbsorbingDampersDataLine2.cc \
 	data/DirichletData.cc \
 	data/DirichletDataLine2.cc \
 	data/DirichletDataLine2b.cc \
@@ -69,7 +71,7 @@
 
 noinst_HEADERS += \
 	data/AbsorbingDampersData.hh \
-	data/AbsorbingDampersData1D.hh \
+	data/AbsorbingDampersDataLine2.hh \
 	data/DirichletData.hh \
 	data/DirichletDataLine2.hh \
 	data/DirichletDataLine2b.hh \

Modified: short/3D/PyLith/trunk/unittests/libtests/bc/TestAbsorbingDampers.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/bc/TestAbsorbingDampers.cc	2007-10-19 00:28:55 UTC (rev 8151)
+++ short/3D/PyLith/trunk/unittests/libtests/bc/TestAbsorbingDampers.cc	2007-10-19 00:29:48 UTC (rev 8152)
@@ -27,7 +27,7 @@
 #include "spatialdata/spatialdb/SimpleDB.hh" // USES SimpleDB
 #include "spatialdata/spatialdb/SimpleIOAscii.hh" // USES SimpleIOAscii
 
-#include <stdexcept> // TEMPORARY
+#include <stdexcept> // USES std::runtime_error
 
 // ----------------------------------------------------------------------
 CPPUNIT_TEST_SUITE_REGISTRATION( pylith::bc::TestAbsorbingDampers );
@@ -69,10 +69,51 @@
   _initialize(&mesh, &bc, &fields);
 
   CPPUNIT_ASSERT(0 != _data);
+  
+  const ALE::Obj<Mesh>& boundaryMesh = bc._boundaryMesh;
 
-  const int numCells = mesh->heightStratum(0)->size();
+  // Check boundary mesh
+  CPPUNIT_ASSERT(!boundaryMesh.isNull());
 
-  // ADD STUFF HERE
+  const int cellDim = boundaryMesh->getDimension();
+  const ALE::Obj<sieve_type>& sieve = boundaryMesh->getSieve();
+  const ALE::Obj<Mesh::label_sequence>& cells = boundaryMesh->heightStratum(0);
+  const int numVertices = boundaryMesh->depthStratum(0)->size();
+  const int numCells = cells->size();
+
+  CPPUNIT_ASSERT_EQUAL(_data->cellDim, cellDim);
+  CPPUNIT_ASSERT_EQUAL(_data->numVertices, numVertices);
+  CPPUNIT_ASSERT_EQUAL(_data->numCells, numCells);
+
+  const int numCorners = sieve->nCone(*cells->begin(), 
+				      boundaryMesh->depth())->size();
+  CPPUNIT_ASSERT_EQUAL(_data->numCorners, numCorners);
+  int iCell = 0;
+  for(Mesh::label_sequence::iterator c_iter = cells->begin();
+      c_iter != cells->end();
+      ++c_iter) {
+    const ALE::Obj<sieve_type::traits::coneSequence>& cone = 
+      sieve->cone(*c_iter);
+    for(sieve_type::traits::coneSequence::iterator v_iter = cone->begin();
+	v_iter != cone->end();
+	++v_iter)
+      CPPUNIT_ASSERT_EQUAL(_data->cells[iCell++], *v_iter);
+  } // for
+
+  // Check damping constants
+  const int sizeE = _data->numCells * _data->numQuadPts * _data->spaceDim;
+  const double* valsE = _data->dampingConsts;
+
+  const int size = bc._dampingConsts->sizeWithBC();
+  const double* vals = bc._dampingConsts->restrict();
+
+  CPPUNIT_ASSERT_EQUAL(sizeE, size);
+  const double tolerance = 1.0e-06;
+  for (int i=0; i < size; ++i)
+    if (fabs(valsE[i]) > 1.0)
+      CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, vals[i]/valsE[i], tolerance);
+    else
+      CPPUNIT_ASSERT_DOUBLES_EQUAL(valsE[i], vals[i], tolerance);
 } // testInitialize
 
 // ----------------------------------------------------------------------
@@ -92,8 +133,11 @@
   const double t = 1.0;
   bc.integrateResidual(residual, t, &fields, mesh);
 
+  residual->view("RESIDUAL");
+
   const double* valsE = _data->valsResidual;
-  const int sizeE = _data->spaceDim * _data->numVertices;
+  const int totalNumVertices = mesh->depthStratum(0)->size();
+  const int sizeE = _data->spaceDim * totalNumVertices;
 
   const double* vals = residual->restrict();
   const int size = residual->sizeWithBC();
@@ -138,8 +182,9 @@
   CPPUNIT_ASSERT(0 == err);
 
   const double* valsE = _data->valsJacobian;
-  const int nrowsE = _data->numVertices * _data->spaceDim;
-  const int ncolsE = _data->numVertices * _data->spaceDim;
+  const int totalNumVertices = mesh->depthStratum(0)->size();
+  const int nrowsE = totalNumVertices * _data->spaceDim;
+  const int ncolsE = totalNumVertices * _data->spaceDim;
 
   int nrows = 0;
   int ncols = 0;

Added: short/3D/PyLith/trunk/unittests/libtests/bc/TestAbsorbingDampersLine2.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/bc/TestAbsorbingDampersLine2.cc	2007-10-19 00:28:55 UTC (rev 8151)
+++ short/3D/PyLith/trunk/unittests/libtests/bc/TestAbsorbingDampersLine2.cc	2007-10-19 00:29:48 UTC (rev 8152)
@@ -0,0 +1,38 @@
+// -*- C++ -*-
+//
+// ----------------------------------------------------------------------
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ----------------------------------------------------------------------
+//
+
+#include <portinfo>
+
+#include "TestAbsorbingDampersLine2.hh" // Implementation of class methods
+
+#include "data/AbsorbingDampersDataLine2.hh" // USES AbsorbingDampersDataLine2
+
+#include "pylith/feassemble/Quadrature0D.hh" // USES Quadrature1D
+#include "pylith/feassemble/GeometryPoint1D.hh" // USES GeometryPoint1D
+
+// ----------------------------------------------------------------------
+CPPUNIT_TEST_SUITE_REGISTRATION( pylith::bc::TestAbsorbingDampersLine2 );
+
+// ----------------------------------------------------------------------
+// Setup testing data.
+void
+pylith::bc::TestAbsorbingDampersLine2::setUp(void)
+{ // setUp
+  _data = new AbsorbingDampersDataLine2();
+  _quadrature = new feassemble::Quadrature0D();
+  CPPUNIT_ASSERT(0 != _quadrature);
+  feassemble::GeometryPoint1D geometry;
+  _quadrature->refGeometry(&geometry);
+} // setUp
+
+
+// End of file 

Added: short/3D/PyLith/trunk/unittests/libtests/bc/TestAbsorbingDampersLine2.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/bc/TestAbsorbingDampersLine2.hh	2007-10-19 00:28:55 UTC (rev 8151)
+++ short/3D/PyLith/trunk/unittests/libtests/bc/TestAbsorbingDampersLine2.hh	2007-10-19 00:29:48 UTC (rev 8152)
@@ -0,0 +1,55 @@
+// -*- C++ -*-
+//
+// ----------------------------------------------------------------------
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ----------------------------------------------------------------------
+//
+
+/**
+ * @file unittests/libtests/bc/TestAbsorbingDampersLine2.hh
+ *
+ * @brief C++ TestAbsorbingDampers object.
+ *
+ * C++ unit testing for AbsorbingDampers for mesh with 1-D line cells.
+ */
+
+#if !defined(pylith_bc_testabsorbingdampersline2_hh)
+#define pylith_bc_testabsorbingdampersline2_hh
+
+#include "TestAbsorbingDampers.hh" // ISA TestAbsorbingDampers
+
+/// Namespace for pylith package
+namespace pylith {
+  namespace bc {
+    class TestAbsorbingDampersLine2;
+  } // bc
+} // pylith
+
+/// C++ unit testing for AbsorbingDampers for mesh with 1-D line cells.
+class pylith::bc::TestAbsorbingDampersLine2 : public TestAbsorbingDampers
+{ // class TestAbsorbingDampers
+
+  // CPPUNIT TEST SUITE /////////////////////////////////////////////////
+  CPPUNIT_TEST_SUITE( TestAbsorbingDampersLine2 );
+  CPPUNIT_TEST( testInitialize );
+  CPPUNIT_TEST( testIntegrateResidual );
+  CPPUNIT_TEST( testIntegrateJacobian );
+  CPPUNIT_TEST_SUITE_END();
+
+  // PUBLIC METHODS /////////////////////////////////////////////////////
+public :
+
+  /// Setup testing data.
+  void setUp(void);
+
+}; // class TestAbsorbingDampersLine2
+
+#endif // pylith_bc_absorbingdampersline2_hh
+
+
+// End of file 

Modified: short/3D/PyLith/trunk/unittests/libtests/bc/data/AbsorbingDampersData.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/bc/data/AbsorbingDampersData.cc	2007-10-19 00:28:55 UTC (rev 8151)
+++ short/3D/PyLith/trunk/unittests/libtests/bc/data/AbsorbingDampersData.cc	2007-10-19 00:29:48 UTC (rev 8152)
@@ -16,13 +16,6 @@
 // Constructor
 pylith::bc::AbsorbingDampersData::AbsorbingDampersData(void) :
   meshFilename(0),
-  spaceDim(0),
-  cellDim(0),
-  numVertices(0),
-  numCells(0),
-  vertices(0),
-  cells(0),
-  verticesRef(0),
   numBasis(0),
   numQuadPts(0),
   quadPts(0),
@@ -30,10 +23,19 @@
   basis(0),
   basisDerivRef(0),
   spatialDBFilename(0),
+  id(0),
+  label(""),
   dt(0),
   fieldTpdt(0),
   fieldT(0),
   fieldTmdt(0),
+  spaceDim(0),
+  cellDim(0),
+  numVertices(0),
+  numCells(0),
+  numCorners(0),
+  cells(0),
+  dampingConsts(0),
   valsResidual(0),
   valsJacobian(0)
 { // constructor

Modified: short/3D/PyLith/trunk/unittests/libtests/bc/data/AbsorbingDampersData.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/bc/data/AbsorbingDampersData.hh	2007-10-19 00:28:55 UTC (rev 8151)
+++ short/3D/PyLith/trunk/unittests/libtests/bc/data/AbsorbingDampersData.hh	2007-10-19 00:29:48 UTC (rev 8152)
@@ -36,20 +36,9 @@
 
   char* meshFilename; ///< Name of file with input mesh
 
-  /// @name Boundary mesh information
-  //@{
-  int spaceDim; ///< Number of dimensions in vertex coordinates
-  int cellDim; ///< Number of dimensions associated with cell
-  int numVertices; ///< Number of vertices
-  int numCells; ///< Number of cells
-  double* vertices; ///< Coordinates of vertices
-  int* cells; ///< Indices of vertices in cells
-  double* verticesRef; ///< Coordinates of vertices in ref cell (dual basis)
-  //@}
-
   /// @name Quadrature information
   //@{
-  int numBasis; ///< Number of vertices in cell
+  int numBasis; ///< Number of basis functions for cell
   int numQuadPts; ///< Number of quadrature points
   double* quadPts; ///< Coordinates of quad pts in ref cell
   double* quadWts; ///< Weights of quadrature points
@@ -72,8 +61,19 @@
   double* fieldTmdt; ///< Input field at time t-dt.
   //@}
 
+  /// @name Boundary mesh information
+  //@{
+  int spaceDim; ///< Number of dimensions in vertex coordinates
+  int cellDim; ///< Number of dimensions associated with cell
+  int numVertices; ///< Number of vertices
+  int numCells; ///< Number of cells
+  int numCorners; ///< Number of vertices in cell
+  int* cells; ///< Indices of vertices in cells
+  //@}
+
   /// @name Calculated values.
   //@{
+  double* dampingConsts; ///< Expected values from initialization.
   double* valsResidual; ///< Expected values from residual calculation.
   double* valsJacobian; ///< Expected values from Jacobian calculation.
   //@}

Deleted: short/3D/PyLith/trunk/unittests/libtests/bc/data/AbsorbingDampersData1D.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/bc/data/AbsorbingDampersData1D.cc	2007-10-19 00:28:55 UTC (rev 8151)
+++ short/3D/PyLith/trunk/unittests/libtests/bc/data/AbsorbingDampersData1D.cc	2007-10-19 00:29:48 UTC (rev 8152)
@@ -1,121 +0,0 @@
-// -*- C++ -*-
-//
-// ======================================================================
-//
-//                           Brad T. Aagaard
-//                        U.S. Geological Survey
-//
-// {LicenseText}
-//
-// ======================================================================
-//
-
-#include "AbsorbingDampersData1D.hh"
-
-const char* pylith::bc::AbsorbingDampersData1D::_meshFilename = "data/meshBC1D.txt";
-
-const int pylith::bc::AbsorbingDampersData1D::_spaceDim = 1;
-
-const int pylith::bc::AbsorbingDampersData1D::_cellDim = 0;
-
-const int pylith::bc::AbsorbingDampersData1D::_numVertices = 2;
-
-const int pylith::bc::AbsorbingDampersData1D::_numCells = 1;
-
-const int pylith::bc::AbsorbingDampersData1D::_numBasis = 2;
-
-const int pylith::bc::AbsorbingDampersData1D::_numQuadPts = 1;
-
-const char* pylith::bc::AbsorbingDampersData1D::_spatialDBFilename = "data/elasticstrain1d.spatialdb";
-
-const double pylith::bc::AbsorbingDampersData1D::_dt =   1.00000000e-02;
-
-const double pylith::bc::AbsorbingDampersData1D::_vertices[] = {
- -2.50000000e-01,
-  2.00000000e+00,
-};
-
-const int pylith::bc::AbsorbingDampersData1D::_cells[] = {
-0,1,
-};
-
-const double pylith::bc::AbsorbingDampersData1D::_verticesRef[] = {
- -1.00000000e+00,
-  1.00000000e+00,
-};
-
-const double pylith::bc::AbsorbingDampersData1D::_quadPts[] = {
-  0.00000000e+00,
-};
-
-const double pylith::bc::AbsorbingDampersData1D::_quadWts[] = {
-  2.00000000e+00,
-};
-
-const double pylith::bc::AbsorbingDampersData1D::_basis[] = {
-  5.00000000e-01,
-  5.00000000e-01,
-};
-
-const double pylith::bc::AbsorbingDampersData1D::_basisDerivRef[] = {
- -5.00000000e-01,
-  5.00000000e-01,
-};
-
-const double pylith::bc::AbsorbingDampersData1D::_fieldTpdt[] = {
-  1.20000000e+00,
-  1.70000000e+00,
-};
-
-const double pylith::bc::AbsorbingDampersData1D::_fieldT[] = {
-  1.10000000e+00,
-  1.50000000e+00,
-};
-
-const double pylith::bc::AbsorbingDampersData1D::_fieldTmdt[] = {
-  1.00000000e+00,
-  1.30000000e+00,
-};
-
-const double pylith::bc::AbsorbingDampersData1D::_valsResidual[] = {
-  1.60000000e+10,
- -1.60000000e+10,
-};
-
-const double pylith::bc::AbsorbingDampersData1D::_valsJacobian[] = {
-  1.40625000e+07,
-  1.40625000e+07,
-  1.40625000e+07,
-  1.40625000e+07,
-};
-
-pylith::bc::AbsorbingDampersData1D::AbsorbingDampersData1D(void)
-{ // constructor
-  meshFilename = const_cast<char*>(_meshFilename);
-  spaceDim = _spaceDim;
-  cellDim = _cellDim;
-  numVertices = _numVertices;
-  numCells = _numCells;
-  numBasis = _numBasis;
-  numQuadPts = _numQuadPts;
-  spatialDBFilename = const_cast<char*>(_spatialDBFilename);
-  dt = _dt;
-  vertices = const_cast<double*>(_vertices);
-  cells = const_cast<int*>(_cells);
-  verticesRef = const_cast<double*>(_verticesRef);
-  quadPts = const_cast<double*>(_quadPts);
-  quadWts = const_cast<double*>(_quadWts);
-  basis = const_cast<double*>(_basis);
-  basisDerivRef = const_cast<double*>(_basisDerivRef);
-  fieldTpdt = const_cast<double*>(_fieldTpdt);
-  fieldT = const_cast<double*>(_fieldT);
-  fieldTmdt = const_cast<double*>(_fieldTmdt);
-  valsResidual = const_cast<double*>(_valsResidual);
-  valsJacobian = const_cast<double*>(_valsJacobian);
-} // constructor
-
-pylith::bc::AbsorbingDampersData1D::~AbsorbingDampersData1D(void)
-{}
-
-
-// End of file

Deleted: short/3D/PyLith/trunk/unittests/libtests/bc/data/AbsorbingDampersData1D.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/bc/data/AbsorbingDampersData1D.hh	2007-10-19 00:28:55 UTC (rev 8151)
+++ short/3D/PyLith/trunk/unittests/libtests/bc/data/AbsorbingDampersData1D.hh	2007-10-19 00:29:48 UTC (rev 8152)
@@ -1,83 +0,0 @@
-// -*- C++ -*-
-//
-// ======================================================================
-//
-//                           Brad T. Aagaard
-//                        U.S. Geological Survey
-//
-// {LicenseText}
-//
-// ======================================================================
-//
-
-#if !defined(pylith_bc_absorbingdampersdata1d_hh)
-#define pylith_bc_absorbingdampersdata1d_hh
-
-#include "AbsorbingDampersData.hh"
-
-namespace pylith {
-  namespace bc {
-     class AbsorbingDampersData1D;
-  } // pylith
-} // bc
-
-class pylith::bc::AbsorbingDampersData1D : public AbsorbingDampersData
-{
-
-public: 
-
-  /// Constructor
-  AbsorbingDampersData1D(void);
-
-  /// Destructor
-  ~AbsorbingDampersData1D(void);
-
-private:
-
-  static const char* _meshFilename;
-
-  static const int _spaceDim;
-
-  static const int _cellDim;
-
-  static const int _numVertices;
-
-  static const int _numCells;
-
-  static const int _numBasis;
-
-  static const int _numQuadPts;
-
-  static const char* _spatialDBFilename;
-
-  static const double _dt;
-
-  static const double _vertices[];
-
-  static const int _cells[];
-
-  static const double _verticesRef[];
-
-  static const double _quadPts[];
-
-  static const double _quadWts[];
-
-  static const double _basis[];
-
-  static const double _basisDerivRef[];
-
-  static const double _fieldTpdt[];
-
-  static const double _fieldT[];
-
-  static const double _fieldTmdt[];
-
-  static const double _valsResidual[];
-
-  static const double _valsJacobian[];
-
-};
-
-#endif // pylith_bc_absorbingdampersdata1d_hh
-
-// End of file

Copied: short/3D/PyLith/trunk/unittests/libtests/bc/data/AbsorbingDampersDataLine2.cc (from rev 8141, short/3D/PyLith/trunk/unittests/libtests/bc/data/AbsorbingDampersData1D.cc)
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/bc/data/AbsorbingDampersData1D.cc	2007-10-18 16:40:11 UTC (rev 8141)
+++ short/3D/PyLith/trunk/unittests/libtests/bc/data/AbsorbingDampersDataLine2.cc	2007-10-19 00:29:48 UTC (rev 8152)
@@ -0,0 +1,116 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+#include "AbsorbingDampersDataLine2.hh"
+
+const char* pylith::bc::AbsorbingDampersDataLine2::_meshFilename = 
+  "data/line2.mesh";
+
+const int pylith::bc::AbsorbingDampersDataLine2::_numBasis = 1;
+const int pylith::bc::AbsorbingDampersDataLine2::_numQuadPts = 1;
+const double pylith::bc::AbsorbingDampersDataLine2::_quadPts[] = {
+  0.0,
+};
+const double pylith::bc::AbsorbingDampersDataLine2::_quadWts[] = {
+  1.0,
+};
+const double pylith::bc::AbsorbingDampersDataLine2::_basis[] = {
+  1.0,
+};
+const double pylith::bc::AbsorbingDampersDataLine2::_basisDerivRef[] = {
+  1.0,
+};
+
+const char* pylith::bc::AbsorbingDampersDataLine2::_spatialDBFilename = "data/elasticstrain1d.spatialdb";
+const int pylith::bc::AbsorbingDampersDataLine2::_id = 2;
+const char* pylith::bc::AbsorbingDampersDataLine2::_label = "bc0";
+
+const double pylith::bc::AbsorbingDampersDataLine2::_dt =   1.00000000e-02;
+const double pylith::bc::AbsorbingDampersDataLine2::_fieldTpdt[] = {
+  1.20000000e+00,
+  1.20000000e+00,
+  1.70000000e+00,
+};
+const double pylith::bc::AbsorbingDampersDataLine2::_fieldT[] = {
+  1.10000000e+00,
+  1.10000000e+00,
+  1.50000000e+00,
+};
+const double pylith::bc::AbsorbingDampersDataLine2::_fieldTmdt[] = {
+  1.00000000e+00,
+  1.00000000e+00,
+  1.30000000e+00,
+};
+
+const int pylith::bc::AbsorbingDampersDataLine2::_spaceDim = 1;
+const int pylith::bc::AbsorbingDampersDataLine2::_cellDim = 0;
+const int pylith::bc::AbsorbingDampersDataLine2::_numVertices = 2;
+const int pylith::bc::AbsorbingDampersDataLine2::_numCells = 2;
+const int pylith::bc::AbsorbingDampersDataLine2::_numCorners = 1;
+const int pylith::bc::AbsorbingDampersDataLine2::_cells[] = {
+  2,
+  4,
+};
+
+
+const double pylith::bc::AbsorbingDampersDataLine2::_dampingConsts[] = {
+  2500.0*6000.0,
+  2500.0*6000.0,
+};
+const double pylith::bc::AbsorbingDampersDataLine2::_valsResidual[] = {
+  0.0,
+  0.0,
+  0.0,
+};
+const double pylith::bc::AbsorbingDampersDataLine2::_valsJacobian[] = {
+  0.0, 0.0, 0.0,
+  0.0, 0.0, 0.0,
+  0.0, 0.0, 0.0,
+};
+
+pylith::bc::AbsorbingDampersDataLine2::AbsorbingDampersDataLine2(void)
+{ // constructor
+  meshFilename = const_cast<char*>(_meshFilename);
+
+  numBasis = _numBasis;
+  numQuadPts = _numQuadPts;
+  quadPts = const_cast<double*>(_quadPts);
+  quadWts = const_cast<double*>(_quadWts);
+  basis = const_cast<double*>(_basis);
+  basisDerivRef = const_cast<double*>(_basisDerivRef);
+
+  spatialDBFilename = const_cast<char*>(_spatialDBFilename);
+  id = _id;
+  label = const_cast<char*>(_label);
+
+  dt = _dt;
+  fieldTpdt = const_cast<double*>(_fieldTpdt);
+  fieldT = const_cast<double*>(_fieldT);
+  fieldTmdt = const_cast<double*>(_fieldTmdt);
+
+  spaceDim = _spaceDim;
+  cellDim = _cellDim;
+  numVertices = _numVertices;
+  numCells = _numCells;
+  numCorners = _numCorners;
+  cells = const_cast<int*>(_cells);
+
+  dampingConsts = const_cast<double*>(_dampingConsts);
+  valsResidual = const_cast<double*>(_valsResidual);
+  valsJacobian = const_cast<double*>(_valsJacobian);
+} // constructor
+
+pylith::bc::AbsorbingDampersDataLine2::~AbsorbingDampersDataLine2(void)
+{}
+
+
+// End of file

Copied: short/3D/PyLith/trunk/unittests/libtests/bc/data/AbsorbingDampersDataLine2.hh (from rev 8141, short/3D/PyLith/trunk/unittests/libtests/bc/data/AbsorbingDampersData1D.hh)
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/bc/data/AbsorbingDampersData1D.hh	2007-10-18 16:40:11 UTC (rev 8141)
+++ short/3D/PyLith/trunk/unittests/libtests/bc/data/AbsorbingDampersDataLine2.hh	2007-10-19 00:29:48 UTC (rev 8152)
@@ -0,0 +1,70 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+#if !defined(pylith_bc_absorbingdampersdataline2_hh)
+#define pylith_bc_absorbingdampersdataline2_hh
+
+#include "AbsorbingDampersData.hh"
+
+namespace pylith {
+  namespace bc {
+     class AbsorbingDampersDataLine2;
+  } // pylith
+} // bc
+
+class pylith::bc::AbsorbingDampersDataLine2 : public AbsorbingDampersData
+{
+
+public: 
+
+  /// Constructor
+  AbsorbingDampersDataLine2(void);
+
+  /// Destructor
+  ~AbsorbingDampersDataLine2(void);
+
+private:
+
+  static const char* _meshFilename;
+
+  static const int _numBasis;
+  static const int _numQuadPts;
+  static const double _quadPts[];
+  static const double _quadWts[];
+  static const double _basis[];
+  static const double _basisDerivRef[];
+
+  static const char* _spatialDBFilename;
+  static const int _id;
+  static const char* _label;
+
+  static const double _dt;
+  static const double _fieldTpdt[];
+  static const double _fieldT[];
+  static const double _fieldTmdt[];
+
+  static const int _spaceDim;
+  static const int _cellDim;
+  static const int _numVertices;
+  static const int _numCells;
+  static const int _numCorners;
+  static const int _cells[];
+
+  static const double _dampingConsts[];
+  static const double _valsResidual[];
+  static const double _valsJacobian[];
+
+};
+
+#endif // pylith_bc_absorbingdampersdata1d_hh
+
+// End of file

Modified: short/3D/PyLith/trunk/unittests/libtests/bc/data/Makefile.am
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/bc/data/Makefile.am	2007-10-19 00:28:55 UTC (rev 8151)
+++ short/3D/PyLith/trunk/unittests/libtests/bc/data/Makefile.am	2007-10-19 00:29:48 UTC (rev 8152)
@@ -13,6 +13,7 @@
 noinst_DATA = \
 	line2.mesh \
 	line2.spatialdb \
+	elasticstrain1d.spatialdb \
 	tri3.mesh \
 	tri3.spatialdb \
 	tri3_b.spatialdb \

Added: short/3D/PyLith/trunk/unittests/libtests/bc/data/elasticstrain1d.spatialdb
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/bc/data/elasticstrain1d.spatialdb	2007-10-19 00:28:55 UTC (rev 8151)
+++ short/3D/PyLith/trunk/unittests/libtests/bc/data/elasticstrain1d.spatialdb	2007-10-19 00:29:48 UTC (rev 8152)
@@ -0,0 +1,14 @@
+#SPATIAL.ascii 1
+SimpleDB {
+  num-values = 3
+  value-names =  density vs vp
+  value-units =  kg/m^3  m/s  m/s
+  num-locs = 1
+  data-dim = 0
+  space-dim = 1
+  cs-data = cartesian {
+    to-meters = 1.0
+    space-dim = 1
+  }
+}
+0.0  2500.0  3464.1016151377544 6000.0



More information about the cig-commits mailing list