[cig-commits] r17245 - in short/3D/PyLith/trunk: . libsrc/meshio unittests/libtests/meshio

brad at geodynamics.org brad at geodynamics.org
Fri Oct 8 16:01:05 PDT 2010


Author: brad
Date: 2010-10-08 16:01:05 -0700 (Fri, 08 Oct 2010)
New Revision: 17245

Modified:
   short/3D/PyLith/trunk/TODO
   short/3D/PyLith/trunk/libsrc/meshio/DataWriterHDF5.cc
   short/3D/PyLith/trunk/libsrc/meshio/DataWriterHDF5.hh
   short/3D/PyLith/trunk/unittests/libtests/meshio/Makefile.am
   short/3D/PyLith/trunk/unittests/libtests/meshio/TestDataWriterHDF5Mesh.cc
   short/3D/PyLith/trunk/unittests/libtests/meshio/TestDataWriterHDF5Mesh.hh
Log:
A little work on DataWriterHDF5.

Modified: short/3D/PyLith/trunk/TODO
===================================================================
--- short/3D/PyLith/trunk/TODO	2010-10-08 17:25:52 UTC (rev 17244)
+++ short/3D/PyLith/trunk/TODO	2010-10-08 23:01:05 UTC (rev 17245)
@@ -2,18 +2,16 @@
 CURRENT ISSUES/PRIORITIES
 ======================================================================
 
-* Unform global refinement for tets with faults
-  tri3, level 2
-  hex8, level 2
+* Unform global refinement
+  tri3 and tet4, level 2 work in serial, sometimes crash in parallel
+
   quad4, level 2
+  hex8, level 2
   tet4, level 4
   tri3, level 4
   hex8, level 4
   quad4, level 4
 
-  C++ unit tests
-    
-    
   Python unit tests
     Can't test result (no cohesive cells in MeshIOAscii).
 

Modified: short/3D/PyLith/trunk/libsrc/meshio/DataWriterHDF5.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/meshio/DataWriterHDF5.cc	2010-10-08 17:25:52 UTC (rev 17244)
+++ short/3D/PyLith/trunk/libsrc/meshio/DataWriterHDF5.cc	2010-10-08 23:01:05 UTC (rev 17245)
@@ -75,7 +75,7 @@
   try {
     PetscErrorCode err = 0;
     
-    const std::string& filename = _hdf5Filename(t);
+    const std::string& filename = _hdf5Filename();
 
     err = PetscViewerCreate(mesh.comm(), &_viewer);
     CHECK_PETSC_ERROR(err);
@@ -217,13 +217,16 @@
 // Generate filename for HDF5 file.
 template<typename mesh_type, typename field_type>
 std::string
-pylith::meshio::DataWriterHDF5<mesh_type,field_type>::_hdf5Filename(const double t) const
+pylith::meshio::DataWriterHDF5<mesh_type,field_type>::_hdf5Filename(void) const
 { // _hdf5Filename
   std::ostringstream filename;
   const int indexExt = _filename.find(".h5");
   const int numTimeSteps = DataWriter<mesh_type, field_type>::_numTimeSteps;
-  if (0 == numTimeSteps)
+  if (0 == numTimeSteps) {
     filename << std::string(_filename, 0, indexExt) << "_info.h5";
+  } else {
+    filename << _filename;
+  } // if/else
 
   return std::string(filename.str());
 } // _hdf5Filename

Modified: short/3D/PyLith/trunk/libsrc/meshio/DataWriterHDF5.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/meshio/DataWriterHDF5.hh	2010-10-08 17:25:52 UTC (rev 17244)
+++ short/3D/PyLith/trunk/libsrc/meshio/DataWriterHDF5.hh	2010-10-08 23:01:05 UTC (rev 17245)
@@ -126,11 +126,8 @@
    */
   DataWriterHDF5(const DataWriterHDF5& w);
 
-  /** Generate filename for HDF5 file.
-   *
-   * @param t Time in seconds.
-   */
-  std::string _hdf5Filename(const double t) const;
+  /// Generate filename for HDF5 file.
+  std::string _hdf5Filename(void) const;
 
 // NOT IMPLEMENTED //////////////////////////////////////////////////////
 private :

Modified: short/3D/PyLith/trunk/unittests/libtests/meshio/Makefile.am
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/meshio/Makefile.am	2010-10-08 17:25:52 UTC (rev 17244)
+++ short/3D/PyLith/trunk/unittests/libtests/meshio/Makefile.am	2010-10-08 23:01:05 UTC (rev 17245)
@@ -60,6 +60,7 @@
 	TestDataWriterVTKSubMeshTet4.cc \
 	TestDataWriterVTKSubMeshHex8.cc \
 	TestDataWriterHDF5.cc \
+	TestDataWriterHDF5Mesh.cc \
 	TestOutputManager.cc \
 	TestOutputSolnSubset.cc \
 	TestDataWriterVTKFaultMesh.cc \
@@ -105,6 +106,7 @@
 	TestDataWriterVTKBCMeshTet4.hh \
 	TestDataWriterVTKBCMeshHex8.hh \
 	TestDataWriterHDF5.hh \
+	TestDataWriterHDF5Mesh.hh \
 	TestMeshIO.hh \
 	TestMeshIOAscii.hh \
 	TestMeshIOLagrit.hh \

Modified: short/3D/PyLith/trunk/unittests/libtests/meshio/TestDataWriterHDF5Mesh.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/meshio/TestDataWriterHDF5Mesh.cc	2010-10-08 17:25:52 UTC (rev 17244)
+++ short/3D/PyLith/trunk/unittests/libtests/meshio/TestDataWriterHDF5Mesh.cc	2010-10-08 23:01:05 UTC (rev 17245)
@@ -59,8 +59,6 @@
   DataWriterHDF5<topology::Mesh, MeshField> writer;
 
   CPPUNIT_ASSERT(0 == writer._viewer);
-  CPPUNIT_ASSERT(false == writer._wroteVertexHeader);
-  CPPUNIT_ASSERT(false == writer._wroteCellHeader);
 } // testConstructor
 
 // ----------------------------------------------------------------------
@@ -86,11 +84,7 @@
   DataWriterHDF5<topology::Mesh, MeshField> writer;
 
   writer.filename(_data->timestepFilename);
-  writer.timeFormat(_data->timeFormat);
 
-  CPPUNIT_ASSERT(false == writer._wroteVertexHeader);
-  CPPUNIT_ASSERT(false == writer._wroteCellHeader);
-
   const double t = _data->time;
   const int numTimeSteps = 1;
   if (0 == _data->cellsLabel) {
@@ -103,16 +97,10 @@
     writer.openTimeStep(t, *_mesh, label, id);
   } // else
 
-  CPPUNIT_ASSERT(false == writer._wroteVertexHeader);
-  CPPUNIT_ASSERT(false == writer._wroteCellHeader);
-
   writer.closeTimeStep();
   writer.close();
 
-  CPPUNIT_ASSERT(false == writer._wroteVertexHeader);
-  CPPUNIT_ASSERT(false == writer._wroteCellHeader);
-
-  checkFile(_data->timestepFilename, t, _data->timeFormat);
+  checkFile(_data->timestepFilename);
 } // testTimeStep
 
 // ----------------------------------------------------------------------
@@ -129,7 +117,6 @@
   _createVertexFields(&vertexFields);
 
   writer.filename(_data->vertexFilename);
-  writer.timeFormat(_data->timeFormat);
 
   const int nfields = _data->numVertexFields;
 
@@ -147,15 +134,11 @@
   for (int i=0; i < nfields; ++i) {
     MeshField& field = vertexFields.get(_data->vertexFieldsInfo[i].name);
     writer.writeVertexField(t, field, *_mesh);
-    CPPUNIT_ASSERT(writer._wroteVertexHeader);
-    CPPUNIT_ASSERT(false == writer._wroteCellHeader);
   } // for
   writer.closeTimeStep();
   writer.close();
-  CPPUNIT_ASSERT(false == writer._wroteVertexHeader);
-  CPPUNIT_ASSERT(false == writer._wroteCellHeader);
   
-  checkFile(_data->vertexFilename, t, _data->timeFormat);
+  checkFile(_data->vertexFilename);
 } // testWriteVertexField
 
 // ----------------------------------------------------------------------
@@ -172,7 +155,6 @@
   _createCellFields(&cellFields);
 
   writer.filename(_data->cellFilename);
-  writer.timeFormat(_data->timeFormat);
 
   const int nfields = _data->numCellFields;
 
@@ -184,8 +166,6 @@
     for (int i=0; i < nfields; ++i) {
       MeshField& field = cellFields.get(_data->cellFieldsInfo[i].name);
       writer.writeCellField(t, field);
-      CPPUNIT_ASSERT(false == writer._wroteVertexHeader);
-      CPPUNIT_ASSERT(writer._wroteCellHeader);
     } // for
   } else {
     const char* label = _data->cellsLabel;
@@ -195,16 +175,12 @@
     for (int i=0; i < nfields; ++i) {
       MeshField& field = cellFields.get(_data->cellFieldsInfo[i].name);
       writer.writeCellField(t, field, label, id);
-      CPPUNIT_ASSERT(false == writer._wroteVertexHeader);
-      CPPUNIT_ASSERT(writer._wroteCellHeader);
     } // for
   } // else
   writer.closeTimeStep();
   writer.close();
-  CPPUNIT_ASSERT(false == writer._wroteCellHeader);
-  CPPUNIT_ASSERT(false == writer._wroteCellHeader);
   
-  checkFile(_data->cellFilename, t, _data->timeFormat);
+  checkFile(_data->cellFilename);
 } // testWriteCellField
 
 // ----------------------------------------------------------------------
@@ -216,22 +192,17 @@
   // Append info to filename if number of time steps is 0.
   writer._numTimeSteps = 0;
   writer._filename = "output.h5";
-  CPPUNIT_ASSERT_EQUAL(std::string("output_info.h5"), writer._hdf5Filename(0.0));
+  CPPUNIT_ASSERT_EQUAL(std::string("output_info.h5"), writer._hdf5Filename());
 		       
-  // Use default normalization of 1.0, remove period from time stamp.
-  writer._numTimeSteps = 100;
-  writer._filename = "output.h5";
-  writer.timeFormat("%05.2f");
-  CPPUNIT_ASSERT_EQUAL(std::string("output_t0230.h5"), 
-		       writer._hdf5Filename(2.3));
+  writer._numTimeSteps = 5;
+  writer._filename = "output_abc.h5";
+  CPPUNIT_ASSERT_EQUAL(std::string("output_abc.h5"),
+		       writer._hdf5Filename());
   
-  // Use normalization of 20.0, remove period from time stamp.
-  writer._numTimeSteps = 100;
-  writer._filename = "output.h5";
-  writer.timeFormat("%05.2f");
-  writer.timeConstant(20.0);
-  CPPUNIT_ASSERT_EQUAL(std::string("output_t0250.h5"), 
-		       writer._hdf5Filename(50.0));
+  writer._numTimeSteps = 10;
+  writer._filename = "output_abcd.h5";
+  CPPUNIT_ASSERT_EQUAL(std::string("output_abcd.h5"), 
+		       writer._hdf5Filename());
 } // testHdf5Filename
 
 

Modified: short/3D/PyLith/trunk/unittests/libtests/meshio/TestDataWriterHDF5Mesh.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/meshio/TestDataWriterHDF5Mesh.hh	2010-10-08 17:25:52 UTC (rev 17244)
+++ short/3D/PyLith/trunk/unittests/libtests/meshio/TestDataWriterHDF5Mesh.hh	2010-10-08 23:01:05 UTC (rev 17245)
@@ -28,9 +28,8 @@
 #define pylith_meshio_testdatawriterhdf5mesh_hh
 
 #include "TestDataWriterHDF5.hh" // ISA TestDataWriterHDF5
+#include "TestDataWriterMesh.hh" // ISA TestDataWriterMesh
 
-#include "pylith/topology/topologyfwd.hh" // USES Mesh, Field
-
 #include <cppunit/extensions/HelperMacros.h>
 
 /// Namespace for pylith package



More information about the CIG-COMMITS mailing list