[cig-commits] r11421 - cs/benchmark/cigma/trunk/src

luis at geodynamics.org luis at geodynamics.org
Wed Mar 12 11:03:18 PDT 2008


Author: luis
Date: 2008-03-12 11:03:17 -0700 (Wed, 12 Mar 2008)
New Revision: 11421

Modified:
   cs/benchmark/cigma/trunk/src/HdfWriter.cpp
   cs/benchmark/cigma/trunk/src/HdfWriter.h
Log:
Fixes to HdfWriter


Modified: cs/benchmark/cigma/trunk/src/HdfWriter.cpp
===================================================================
--- cs/benchmark/cigma/trunk/src/HdfWriter.cpp	2008-03-12 18:03:16 UTC (rev 11420)
+++ cs/benchmark/cigma/trunk/src/HdfWriter.cpp	2008-03-12 18:03:17 UTC (rev 11421)
@@ -4,16 +4,17 @@
 #include "h5io.h"
 
 using namespace std;
+using namespace cigma;
 
 
 // ---------------------------------------------------------------------------
 
-cigma::HdfWriter::HdfWriter()
+HdfWriter::HdfWriter()
 {
     file_id = -1;
 }
 
-cigma::HdfWriter::~HdfWriter()
+HdfWriter::~HdfWriter()
 {
     close();
 }
@@ -21,28 +22,46 @@
 
 // ---------------------------------------------------------------------------
 
-void cigma::HdfWriter::
-open(std::string filename)
+int HdfWriter::open(string filename)
 {
-    file_id = h5io_file_open(filename.c_str(), "rw");
+    file_id = h5io_file_open(filename.c_str(), "rw+");
+
     if (file_id < 0)
     {
-        // XXX: throw exception
+        return -1;
     }
+    return 0;
 }
 
-void cigma::HdfWriter::
-close()
+void HdfWriter::close()
 {
+    herr_t status;
     if (file_id != -1)
     {
-        H5Fclose(file_id);
+        status = H5Fclose(file_id);
     }
+    file_id = -1;
 }
 
 
 // ---------------------------------------------------------------------------
 
+int HdfWriter::write_coordinates(const char *loc, double *coordinates, int nno, int nsd)
+{
+    int ierr;
+    ierr = h5io_dset_write2(file_id, loc, "coordinates array", H5T_NATIVE_DOUBLE, coordinates, nno, nsd);
+    return ierr;
+}
+
+int HdfWriter::write_connectivity(const char *loc, int *connectivity, int nel, int ndofs)
+{
+    int ierr;
+    ierr = h5io_dset_write2(file_id, loc, "connectivity array", H5T_NATIVE_INT, connectivity, nel, ndofs);
+    return ierr;
+}
+
+// ---------------------------------------------------------------------------
+
 void cigma::HdfWriter::
 write_field(FE_Field *field)
 {

Modified: cs/benchmark/cigma/trunk/src/HdfWriter.h
===================================================================
--- cs/benchmark/cigma/trunk/src/HdfWriter.h	2008-03-12 18:03:16 UTC (rev 11420)
+++ cs/benchmark/cigma/trunk/src/HdfWriter.h	2008-03-12 18:03:17 UTC (rev 11421)
@@ -19,10 +19,14 @@
 
 public:
     WriterType getType() { return HDF_WRITER; }
-    void open(std::string filename);
+    int open(std::string filename);
     void close();
 
 public:
+    int write_coordinates(const char *loc, double *coordinates, int nno, int nsd);
+    int write_connectivity(const char *loc, int *connectivity, int nel, int ndofs);
+
+public:
     void write_field(FE_Field *field);
 
 public:



More information about the cig-commits mailing list