[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