[cig-commits] r11300 - in short/3D/PyLith/trunk/unittests/libtests/bc: . data

brad at geodynamics.org brad at geodynamics.org
Sat Mar 1 21:25:22 PST 2008


Author: brad
Date: 2008-03-01 21:25:22 -0800 (Sat, 01 Mar 2008)
New Revision: 11300

Added:
   short/3D/PyLith/trunk/unittests/libtests/bc/TestBoundaryMesh.cc
   short/3D/PyLith/trunk/unittests/libtests/bc/TestBoundaryMesh.hh
   short/3D/PyLith/trunk/unittests/libtests/bc/TestBoundaryMeshTri3.cc
   short/3D/PyLith/trunk/unittests/libtests/bc/TestBoundaryMeshTri3.hh
   short/3D/PyLith/trunk/unittests/libtests/bc/data/BoundaryMeshData.cc
   short/3D/PyLith/trunk/unittests/libtests/bc/data/BoundaryMeshData.hh
   short/3D/PyLith/trunk/unittests/libtests/bc/data/BoundaryMeshDataTri3.cc
   short/3D/PyLith/trunk/unittests/libtests/bc/data/BoundaryMeshDataTri3.hh
Modified:
   short/3D/PyLith/trunk/unittests/libtests/bc/Makefile.am
   short/3D/PyLith/trunk/unittests/libtests/bc/data/tri3.mesh
Log:
Started work on unit tests for submesh().

Modified: short/3D/PyLith/trunk/unittests/libtests/bc/Makefile.am
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/bc/Makefile.am	2008-03-02 05:24:22 UTC (rev 11299)
+++ short/3D/PyLith/trunk/unittests/libtests/bc/Makefile.am	2008-03-02 05:25:22 UTC (rev 11300)
@@ -28,6 +28,8 @@
 	TestAbsorbingDampersTet4.cc \
 	TestAbsorbingDampersHex8.cc \
 	TestBoundaryCondition.cc \
+	TestBoundaryMesh.cc \
+	TestBoundaryMeshTri3.cc \
 	TestDirichletBoundary.cc \
 	TestDirichletBoundaryTri3.cc \
 	TestDirichletBoundaryQuad4.cc \
@@ -60,6 +62,8 @@
 	TestAbsorbingDampersTet4.hh \
 	TestAbsorbingDampersHex8.hh \
 	TestBoundaryCondition.hh \
+	TestBoundaryMesh.hh \
+	TestBoundaryMeshTri3.hh \
 	TestDirichletBoundary.hh \
 	TestDirichletBoundaryTri3.hh \
 	TestDirichletBoundaryQuad4.hh \
@@ -91,6 +95,8 @@
 	data/AbsorbingDampersDataQuad4.cc \
 	data/AbsorbingDampersDataTet4.cc \
 	data/AbsorbingDampersDataHex8.cc \
+	data/BoundaryMeshData.cc \
+	data/BoundaryMeshDataTri3.cc \
 	data/DirichletData.cc \
 	data/DirichletDataLine2.cc \
 	data/DirichletDataLine2b.cc \
@@ -114,6 +120,8 @@
 	data/AbsorbingDampersDataQuad4.hh \
 	data/AbsorbingDampersDataTet4.hh \
 	data/AbsorbingDampersDataHex8.hh \
+	data/BoundaryMeshData.hh \
+	data/BoundaryMeshDataTri3.hh \
 	data/DirichletData.hh \
 	data/DirichletDataLine2.hh \
 	data/DirichletDataLine2b.hh \

Added: short/3D/PyLith/trunk/unittests/libtests/bc/TestBoundaryMesh.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/bc/TestBoundaryMesh.cc	                        (rev 0)
+++ short/3D/PyLith/trunk/unittests/libtests/bc/TestBoundaryMesh.cc	2008-03-02 05:25:22 UTC (rev 11300)
@@ -0,0 +1,170 @@
+// -*- C++ -*-
+//
+// ----------------------------------------------------------------------
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ----------------------------------------------------------------------
+//
+
+#include <portinfo>
+
+#include "TestBoundaryMesh.hh" // Implementation of class methods
+
+#include <Selection.hh> // USES submesh algorithms
+
+#include "data/BoundaryMeshData.hh" // USES BoundaryMeshData
+
+#include "pylith/meshio/MeshIOAscii.hh" // USES MeshIOAscii
+#include "pylith/faults/FaultCohesiveKin.hh" // USES FaultsCohesiveKin
+
+#include "pylith/utils/sievetypes.hh" // USES PETSc Mesh
+
+// ----------------------------------------------------------------------
+// Setup testing data.
+void
+pylith::bc::TestBoundaryMesh::setUp(void)
+{ // setUp
+  _data = 0;
+} // setUp
+
+// ----------------------------------------------------------------------
+// Tear down testing data.
+void
+pylith::bc::TestBoundaryMesh::tearDown(void)
+{ // tearDown
+  delete _data; _data = 0;
+} // tearDown
+
+// ----------------------------------------------------------------------
+// Test submesh() without fault.
+void
+pylith::bc::TestBoundaryMesh::testSubmesh(void)
+{ // testSubmesh
+  CPPUNIT_ASSERT(0 != _data);
+
+  ALE::Obj<Mesh> mesh;
+
+  meshio::MeshIOAscii iohandler;
+  iohandler.filename(_data->filename);
+  iohandler.read(&mesh);
+  CPPUNIT_ASSERT(!mesh.isNull());
+
+  const char* label = _data->bcLabel;
+  const ALE::Obj<Mesh>& subMesh = 
+    ALE::Selection<ALE::Mesh>::submesh(mesh, mesh->getIntSection(label));
+  CPPUNIT_ASSERT(!subMesh.isNull());
+
+  subMesh->view("SUBMESH WITHOUT FAULT");
+
+  const ALE::Obj<Mesh::label_sequence>& vertices = subMesh->depthStratum(0);
+  const Mesh::label_sequence::iterator verticesEnd = vertices->end();
+
+  CPPUNIT_ASSERT_EQUAL(_data->numVerticesNoFault, int(vertices->size()));
+
+  int ipt = 0;
+  for (Mesh::label_sequence::iterator v_iter=vertices->begin();
+       v_iter != verticesEnd;
+       ++v_iter, ++ipt)
+    CPPUNIT_ASSERT_EQUAL(_data->verticesNoFault[ipt], *v_iter);
+
+  const ALE::Obj<Mesh::label_sequence>& cells = subMesh->heightStratum(1);
+  const Mesh::label_sequence::iterator cellsEnd = cells->end();
+  const ALE::Obj<sieve_type>& sieve = subMesh->getSieve();
+  assert(!sieve.isNull());
+  typedef ALE::SieveAlg<Mesh> SieveAlg;
+
+  CPPUNIT_ASSERT_EQUAL(_data->numCells, int(cells->size()));
+
+  int icell = 0;
+  int index = 0;
+  for (Mesh::label_sequence::iterator c_iter=cells->begin();
+       c_iter != cellsEnd;
+       ++c_iter, ++icell) {
+    const int depth = 1;
+    const ALE::Obj<SieveAlg::coneArray>& cone = 
+      SieveAlg::nCone(subMesh, *c_iter, depth);
+    assert(!cone.isNull());
+    const SieveAlg::coneArray::iterator vEnd = cone->end();
+
+    CPPUNIT_ASSERT_EQUAL(_data->numCorners, int(cone->size()));
+
+    int ivertex = 0;
+    for(SieveAlg::coneArray::iterator v_iter=cone->begin();
+	v_iter != vEnd;
+	++v_iter, ++ivertex, ++index)
+      CPPUNIT_ASSERT_EQUAL(_data->cellsNoFault[index], *v_iter);
+  } // for
+} // testSubmesh
+
+// ----------------------------------------------------------------------
+// Test submesh() with fault.
+void
+pylith::bc::TestBoundaryMesh::testSubmeshFault(void)
+{ // testSubmeshFault
+  CPPUNIT_ASSERT(0 != _data);
+
+  ALE::Obj<Mesh> mesh;
+
+  meshio::MeshIOAscii iohandler;
+  iohandler.filename(_data->filename);
+  iohandler.read(&mesh);
+  CPPUNIT_ASSERT(!mesh.isNull());
+
+  faults::FaultCohesiveKin fault;
+  fault.label(_data->faultLabel);
+  fault.id(_data->faultId);
+  fault.adjustTopology(mesh);
+
+  const char* label = _data->bcLabel;
+  const ALE::Obj<Mesh>& subMesh = 
+    ALE::Selection<ALE::Mesh>::submesh(mesh, mesh->getIntSection(label));
+  CPPUNIT_ASSERT(!subMesh.isNull());
+
+  subMesh->view("SUBMESH WITH FAULT");
+
+  const ALE::Obj<Mesh::label_sequence>& vertices = subMesh->depthStratum(0);
+  const Mesh::label_sequence::iterator verticesEnd = vertices->end();
+
+  CPPUNIT_ASSERT_EQUAL(_data->numVerticesFault, int(vertices->size()));
+
+  int ipt = 0;
+  for (Mesh::label_sequence::iterator v_iter=vertices->begin();
+       v_iter != verticesEnd;
+       ++v_iter, ++ipt)
+    CPPUNIT_ASSERT_EQUAL(_data->verticesFault[ipt], *v_iter);
+    
+  const ALE::Obj<Mesh::label_sequence>& cells = subMesh->depthStratum(1);
+  const Mesh::label_sequence::iterator cellsEnd = cells->end();
+  const ALE::Obj<sieve_type>& sieve = subMesh->getSieve();
+  assert(!sieve.isNull());
+  const int depth = 1;
+  typedef ALE::SieveAlg<Mesh> SieveAlg;
+
+  CPPUNIT_ASSERT_EQUAL(_data->numCells, int(cells->size()));
+
+  int icell = 0;
+  int index = 0;
+  for (Mesh::label_sequence::iterator c_iter=cells->begin();
+       c_iter != cellsEnd;
+       ++c_iter, ++icell) {
+    const ALE::Obj<SieveAlg::coneArray>& cone = 
+      SieveAlg::nCone(subMesh, *c_iter, depth);
+    assert(!cone.isNull());
+    const SieveAlg::coneArray::iterator vEnd = cone->end();
+
+    CPPUNIT_ASSERT_EQUAL(_data->numCorners, int(cone->size()));
+
+    int ivertex = 0;
+    for(SieveAlg::coneArray::iterator v_iter=cone->begin();
+	v_iter != vEnd;
+	++v_iter, ++ivertex, ++index)
+      CPPUNIT_ASSERT_EQUAL(_data->cellsFault[index], *v_iter);
+  } // for
+} // testSubmeshFault
+
+
+// End of file 

Added: short/3D/PyLith/trunk/unittests/libtests/bc/TestBoundaryMesh.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/bc/TestBoundaryMesh.hh	                        (rev 0)
+++ short/3D/PyLith/trunk/unittests/libtests/bc/TestBoundaryMesh.hh	2008-03-02 05:25:22 UTC (rev 11300)
@@ -0,0 +1,64 @@
+// -*- C++ -*-
+//
+// ----------------------------------------------------------------------
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ----------------------------------------------------------------------
+//
+
+/**
+ * @file unittests/libtests/bc/TestBoundaryMesh.hh
+ *
+ * @brief C++ TestBoundaryMesh object.
+ *
+ * C++ unit testing for BoundaryMesh.
+ */
+
+#if !defined(pylith_bc_testboundarymesh_hh)
+#define pylith_bc_testboundarymesh_hh
+
+#include <cppunit/extensions/HelperMacros.h>
+
+/// Namespace for pylith package
+namespace pylith {
+  namespace bc {
+    class TestBoundaryMesh;
+
+    class BoundaryMeshData;
+  } // bc
+} // pylith
+
+/// C++ unit testing for BoundaryMesh.
+class pylith::bc::TestBoundaryMesh : public CppUnit::TestFixture
+{ // class TestBoundaryMesh
+
+  // PUBLIC METHODS /////////////////////////////////////////////////////
+public :
+
+  /// Setup testing data.
+  void setUp(void);
+
+  /// Tear down testing data.
+  void tearDown(void);
+
+  /// Test submesh() without fault.
+  void testSubmesh(void);
+
+  /// Test submesh() with fault().
+  void testSubmeshFault(void);
+
+  // PROTECTED MEMBERS //////////////////////////////////////////////////
+protected :
+
+  BoundaryMeshData* _data; ///< Data for testing
+
+}; // class TestBoundaryMesh
+
+#endif // pylith_bc_boundarymesh_hh
+
+
+// End of file 

Added: short/3D/PyLith/trunk/unittests/libtests/bc/TestBoundaryMeshTri3.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/bc/TestBoundaryMeshTri3.cc	                        (rev 0)
+++ short/3D/PyLith/trunk/unittests/libtests/bc/TestBoundaryMeshTri3.cc	2008-03-02 05:25:22 UTC (rev 11300)
@@ -0,0 +1,31 @@
+// -*- C++ -*-
+//
+// ----------------------------------------------------------------------
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ----------------------------------------------------------------------
+//
+
+#include <portinfo>
+
+#include "TestBoundaryMeshTri3.hh" // Implementation of class methods
+
+#include "data/BoundaryMeshDataTri3.hh" // USES BoundaryMeshDataTri3
+
+// ----------------------------------------------------------------------
+CPPUNIT_TEST_SUITE_REGISTRATION( pylith::bc::TestBoundaryMeshTri3 );
+
+// ----------------------------------------------------------------------
+// Setup testing data.
+void
+pylith::bc::TestBoundaryMeshTri3::setUp(void)
+{ // setUp
+  _data = new BoundaryMeshDataTri3();
+} // setUp
+
+
+// End of file 

Added: short/3D/PyLith/trunk/unittests/libtests/bc/TestBoundaryMeshTri3.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/bc/TestBoundaryMeshTri3.hh	                        (rev 0)
+++ short/3D/PyLith/trunk/unittests/libtests/bc/TestBoundaryMeshTri3.hh	2008-03-02 05:25:22 UTC (rev 11300)
@@ -0,0 +1,56 @@
+// -*- C++ -*-
+//
+// ----------------------------------------------------------------------
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ----------------------------------------------------------------------
+//
+
+/**
+ * @file unittests/libtests/bc/TestBoundaryMeshTri3.hh
+ *
+ * @brief C++ TestBoundaryMesh object.
+ *
+ * C++ unit testing of submesh() for mesh with 2-D tri cells.
+ */
+
+#if !defined(pylith_bc_testboundarymeshtri3_hh)
+#define pylith_bc_testboundarymeshtri3_hh
+
+#include "TestBoundaryMesh.hh" // ISA TestBoundaryMesh
+
+/// Namespace for pylith package
+namespace pylith {
+  namespace bc {
+    class TestBoundaryMeshTri3;
+  } // bc
+} // pylith
+
+/// C++ unit testing of submesh() for mesh with 2-D tri cells.
+class pylith::bc::TestBoundaryMeshTri3 : public TestBoundaryMesh
+{ // class TestBoundaryMesh
+
+  // CPPUNIT TEST SUITE /////////////////////////////////////////////////
+  CPPUNIT_TEST_SUITE(TestBoundaryMeshTri3);
+
+  CPPUNIT_TEST( testSubmesh );
+  CPPUNIT_TEST( testSubmeshFault );
+
+  CPPUNIT_TEST_SUITE_END();
+
+  // PUBLIC METHODS /////////////////////////////////////////////////////
+public :
+
+  /// Setup testing data.
+  void setUp(void);
+
+}; // class TestBoundaryMeshTri3
+
+#endif // pylith_bc_boundarymeshtri3_hh
+
+
+// End of file 

Added: short/3D/PyLith/trunk/unittests/libtests/bc/data/BoundaryMeshData.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/bc/data/BoundaryMeshData.cc	                        (rev 0)
+++ short/3D/PyLith/trunk/unittests/libtests/bc/data/BoundaryMeshData.cc	2008-03-02 05:25:22 UTC (rev 11300)
@@ -0,0 +1,36 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+#include "BoundaryMeshData.hh"
+
+// ----------------------------------------------------------------------
+// Constructor
+pylith::bc::BoundaryMeshData::BoundaryMeshData(void) :
+  filename(0),
+  bcLabel(0),
+  faultLabel(0),
+  faultId(0),
+  verticesNoFault(0),
+  cellsNoFault(0),
+  verticesFault(0),
+  cellsFault(0)
+{ // constructor
+} // constructor
+
+// ----------------------------------------------------------------------
+// Destructor
+pylith::bc::BoundaryMeshData::~BoundaryMeshData(void)
+{ // destructor
+} // destructor
+
+
+// End of file

Added: short/3D/PyLith/trunk/unittests/libtests/bc/data/BoundaryMeshData.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/bc/data/BoundaryMeshData.hh	                        (rev 0)
+++ short/3D/PyLith/trunk/unittests/libtests/bc/data/BoundaryMeshData.hh	2008-03-02 05:25:22 UTC (rev 11300)
@@ -0,0 +1,64 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+#if !defined(pylith_bc_boundarymeshdata_hh)
+#define pylith_bc_boundarymeshdata_hh
+
+namespace pylith {
+  namespace bc {
+     class BoundaryMeshData;
+  } // pylith
+} // bc
+
+class pylith::bc::BoundaryMeshData
+{
+
+// PUBLIC METHODS ///////////////////////////////////////////////////////
+public :
+  
+  /// Constructor
+  BoundaryMeshData(void);
+
+  /// Destructor
+  ~BoundaryMeshData(void);
+
+// PUBLIC MEMBERS ///////////////////////////////////////////////////////
+public:
+
+  char* filename; ///< Name of file with input mesh.
+  char* bcLabel; ///< Name of group of vertices for bc.
+  char* faultLabel; ///< Name of group of vertices for fault.
+  int faultId; ///< Material identifier for fault.
+
+  int numCorners; ///< Number of vertices in cells of boundary mesh.
+  int numCells; ///< Number of cells in boundary mesh.
+
+  /// @name Boundary mesh without fault.
+  //@{
+  int numVerticesNoFault; ///< Number of vertices.
+  int* verticesNoFault; ///< Array of vertex labels.
+  int* cellsNoFault; ///< Array of vertex labels for cells.
+  //@}
+
+  /// @name Boundary mesh without fault.
+  //@{
+  int numVerticesFault; ///< Number of vertices.
+  int* verticesFault; ///< Array of vertex labels.
+  int* cellsFault; ///< Array of vertex labels for cells.
+  //@}
+
+};
+
+#endif // pylith_bc_boundarymeshdata_hh
+
+
+// End of file

Added: short/3D/PyLith/trunk/unittests/libtests/bc/data/BoundaryMeshDataTri3.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/bc/data/BoundaryMeshDataTri3.cc	                        (rev 0)
+++ short/3D/PyLith/trunk/unittests/libtests/bc/data/BoundaryMeshDataTri3.cc	2008-03-02 05:25:22 UTC (rev 11300)
@@ -0,0 +1,66 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+#include "BoundaryMeshDataTri3.hh"
+
+const char* pylith::bc::BoundaryMeshDataTri3::_filename = "data/tri3.mesh";
+
+const char* pylith::bc::BoundaryMeshDataTri3::_bcLabel = "bc";
+
+const char* pylith::bc::BoundaryMeshDataTri3::_faultLabel = "fault";
+const int pylith::bc::BoundaryMeshDataTri3::_faultId = 100;
+
+const int pylith::bc::BoundaryMeshDataTri3::_numCorners = 2;
+const int pylith::bc::BoundaryMeshDataTri3::_numCells = 1;
+
+const int pylith::bc::BoundaryMeshDataTri3::_numVerticesNoFault = 2;
+const int pylith::bc::BoundaryMeshDataTri3::_verticesNoFault[] = {
+  3, 5
+};
+const int pylith::bc::BoundaryMeshDataTri3::_cellsNoFault[] = {
+  3, 5
+};
+
+const int pylith::bc::BoundaryMeshDataTri3::_numVerticesFault = 3;
+const int pylith::bc::BoundaryMeshDataTri3::_verticesFault[] = {
+  3, 5, 6
+};
+const int pylith::bc::BoundaryMeshDataTri3::_cellsFault[] = {
+  3, 5
+};
+
+pylith::bc::BoundaryMeshDataTri3::BoundaryMeshDataTri3(void)
+{ // constructor
+  filename = const_cast<char*>(_filename);
+
+  bcLabel = const_cast<char*>(_bcLabel);
+
+  faultLabel = const_cast<char*>(_faultLabel);
+  faultId = _faultId;
+
+  numCorners = _numCorners;
+  numCells = _numCells;
+
+  numVerticesNoFault = _numVerticesNoFault;
+  verticesNoFault = const_cast<int*>(_verticesNoFault);
+  cellsNoFault = const_cast<int*>(_cellsNoFault);
+
+  numVerticesFault = _numVerticesFault;
+  verticesFault = const_cast<int*>(_verticesFault);
+  cellsFault = const_cast<int*>(_cellsFault);
+} // constructor
+
+pylith::bc::BoundaryMeshDataTri3::~BoundaryMeshDataTri3(void)
+{}
+
+
+// End of file

Added: short/3D/PyLith/trunk/unittests/libtests/bc/data/BoundaryMeshDataTri3.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/bc/data/BoundaryMeshDataTri3.hh	                        (rev 0)
+++ short/3D/PyLith/trunk/unittests/libtests/bc/data/BoundaryMeshDataTri3.hh	2008-03-02 05:25:22 UTC (rev 11300)
@@ -0,0 +1,59 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+#if !defined(pylith_bc_boundarymeshdatatri3_hh)
+#define pylith_bc_boundarymeshdatatri3_hh
+
+#include "BoundaryMeshData.hh"
+
+namespace pylith {
+  namespace bc {
+     class BoundaryMeshDataTri3;
+  } // pylith
+} // bc
+
+class pylith::bc::BoundaryMeshDataTri3 : public BoundaryMeshData
+{
+
+public: 
+
+  /// Constructor
+  BoundaryMeshDataTri3(void);
+
+  /// Destructor
+  ~BoundaryMeshDataTri3(void);
+
+private:
+
+  static const char* _filename;
+
+  static const char* _bcLabel;
+
+  static const char* _faultLabel;
+  static const int _faultId;
+
+  static const int _numCorners;
+  static const int _numCells;
+
+  static const int _numVerticesNoFault;
+  static const int _verticesNoFault[];
+  static const int _cellsNoFault[];
+
+  static const int _numVerticesFault;
+  static const int _verticesFault[];
+  static const int _cellsFault[];
+
+};
+
+#endif // pylith_bc_boundarymeshdatatri3_hh
+
+// End of file

Modified: short/3D/PyLith/trunk/unittests/libtests/bc/data/tri3.mesh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/bc/data/tri3.mesh	2008-03-02 05:24:22 UTC (rev 11299)
+++ short/3D/PyLith/trunk/unittests/libtests/bc/data/tri3.mesh	2008-03-02 05:25:22 UTC (rev 11300)
@@ -42,6 +42,14 @@
     }
   }
   group = {
+    name = fault
+    type = vertices
+    count = 2
+    indices = {
+      1  2
+    }
+  }
+  group = {
     name = bc
     type = vertices
     count = 2



More information about the cig-commits mailing list