From 3614a287f4fecd0ff7a4731adaed5ba398278ca1 Mon Sep 17 00:00:00 2001 From: guj <jgu@lbl.gov> Date: Fri, 5 May 2017 13:31:02 -0700 Subject: [PATCH] revised for coding standard --- examples/hello/hdf5Writer/helloHDF5Writer.cpp | 36 ------ source/adios2/ADIOS.cpp | 2 +- source/adios2/engine/hdf5/HDF5Common.cpp | 114 +++--------------- source/adios2/engine/hdf5/HDF5Common.h | 23 ++-- source/adios2/engine/hdf5/HDF5ReaderP.cpp | 81 ++++++------- source/adios2/engine/hdf5/HDF5ReaderP.h | 9 +- source/adios2/engine/hdf5/HDF5WriterP.cpp | 62 +++++----- source/adios2/engine/hdf5/HDF5WriterP.h | 16 +-- 8 files changed, 102 insertions(+), 241 deletions(-) diff --git a/examples/hello/hdf5Writer/helloHDF5Writer.cpp b/examples/hello/hdf5Writer/helloHDF5Writer.cpp index 39e9c0759..1426b07b7 100644 --- a/examples/hello/hdf5Writer/helloHDF5Writer.cpp +++ b/examples/hello/hdf5Writer/helloHDF5Writer.cpp @@ -13,7 +13,6 @@ #define ADIOS_HAVE_PHDF5 // so hdf5 related items are loaded in ADIOS_CPP.h //#include "ADIOS_CPP.h" #include "adios2.h" -#include "adios2/engine/hdf5/HDF5ReaderP.h" int main(int argc, char *argv[]) { @@ -137,41 +136,6 @@ int main(int argc, char *argv[]) HDF5Writer->Advance(); } HDF5Writer->Close(); - -// now read out: -/* -HDF5Settings.SetEngine("HDF5Reader"); -std::cout<<"... Testing a copy of test.h5, [test1.h5] , b/c engine does not -decrease name count !! "<<std::endl; -auto HDF5Reader = adios.Open("test1.h5", "r", HDF5Settings); - -//int findts = HDF5Reader->getNumTimeSteps(); -//HDF5Reader->InquireVariableDouble("wrongMyDoubles", true); -HDF5Reader->InquireVariableDouble(ioMyDoubles.m_Name, true); -*/ - -#ifndef NEVER - adios::HDF5Common myReader; - myReader.H5_Init("test.h5", MPI_COMM_WORLD, false); - double values[15]; - ts = 0; - - while (ts < totalts) - { - // myReader.ReadMe(ioMyDoubles, values, H5T_NATIVE_DOUBLE); - myReader.H5_Advance(totalts); - ts++; - } - -#else -/* -adios::HDF5Reader myReader(adios, "test.h5", "r", MPI_COMM_WORLD, HDF5Settings); -double values[15]; - -myReader.ReadMe(ioMyDoubles, values, H5T_NATIVE_DOUBLE); -myReader.Close(); -*/ -#endif } catch (std::invalid_argument &e) { diff --git a/source/adios2/ADIOS.cpp b/source/adios2/ADIOS.cpp index 9ba7d2fe8..db91c88f3 100644 --- a/source/adios2/ADIOS.cpp +++ b/source/adios2/ADIOS.cpp @@ -197,7 +197,7 @@ std::shared_ptr<Engine> ADIOS::Open(const std::string &name, else if (type == "HDF5Reader") // -Junmin { //#if defined(ADIOS_HAVE_PHDF5) && defined(ADIOS_HAVE_MPI) -#ifdef ADIOS_HAVE_PHDF5 +#ifdef ADIOS_HAVE_HDF5 //#ifdef ADIOS_HAVE_MPI return std::make_shared<HDF5Reader>(*this, name, accessMode, mpiComm, method); diff --git a/source/adios2/engine/hdf5/HDF5Common.cpp b/source/adios2/engine/hdf5/HDF5Common.cpp index f4eeeb952..2b2e605ff 100644 --- a/source/adios2/engine/hdf5/HDF5Common.cpp +++ b/source/adios2/engine/hdf5/HDF5Common.cpp @@ -10,9 +10,9 @@ #include "HDF5Common.h" -#include <iostream> //needs to go away, this is just for demo purposes +#include <iostream> -//#include "adios2/ADIOSMPI.h" +#include "adios2/ADIOSMPI.h" namespace adios { @@ -22,21 +22,23 @@ namespace adios HDF5Common::HDF5Common() : m_WriteMode(false), m_Total_timestep(0), m_CurrentTimeStep(0) { - DefH5T_COMPLEX_FLOAT = H5Tcreate(H5T_COMPOUND, sizeof(std::complex<float>)); - H5Tinsert(DefH5T_COMPLEX_FLOAT, "freal", 0, H5T_NATIVE_FLOAT); - H5Tinsert(DefH5T_COMPLEX_FLOAT, "fimg", H5Tget_size(H5T_NATIVE_FLOAT), + m_DefH5T_COMPLEX_FLOAT = + H5Tcreate(H5T_COMPOUND, sizeof(std::complex<float>)); + H5Tinsert(m_DefH5T_COMPLEX_FLOAT, "freal", 0, H5T_NATIVE_FLOAT); + H5Tinsert(m_DefH5T_COMPLEX_FLOAT, "fimg", H5Tget_size(H5T_NATIVE_FLOAT), H5T_NATIVE_FLOAT); - DefH5T_COMPLEX_DOUBLE = + m_DefH5T_COMPLEX_DOUBLE = H5Tcreate(H5T_COMPOUND, sizeof(std::complex<double>)); - H5Tinsert(DefH5T_COMPLEX_DOUBLE, "dreal", 0, H5T_NATIVE_DOUBLE); - H5Tinsert(DefH5T_COMPLEX_DOUBLE, "dimg", H5Tget_size(H5T_NATIVE_DOUBLE), + H5Tinsert(m_DefH5T_COMPLEX_DOUBLE, "dreal", 0, H5T_NATIVE_DOUBLE); + H5Tinsert(m_DefH5T_COMPLEX_DOUBLE, "dimg", H5Tget_size(H5T_NATIVE_DOUBLE), H5T_NATIVE_DOUBLE); - DefH5T_COMPLEX_LongDOUBLE = + m_DefH5T_COMPLEX_LongDOUBLE = H5Tcreate(H5T_COMPOUND, sizeof(std::complex<long double>)); - H5Tinsert(DefH5T_COMPLEX_LongDOUBLE, "ldouble real", 0, H5T_NATIVE_LDOUBLE); - H5Tinsert(DefH5T_COMPLEX_LongDOUBLE, "ldouble img", + H5Tinsert(m_DefH5T_COMPLEX_LongDOUBLE, "ldouble real", 0, + H5T_NATIVE_LDOUBLE); + H5Tinsert(m_DefH5T_COMPLEX_LongDOUBLE, "ldouble img", H5Tget_size(H5T_NATIVE_LDOUBLE), H5T_NATIVE_LDOUBLE); } @@ -142,6 +144,11 @@ int HDF5Common::GetNumTimeSteps() void HDF5Common::H5_Close() { + if (m_File_id < 0) + { + return; + } + WriteTimeSteps(); if (m_Group_id >= 0) @@ -150,6 +157,8 @@ void HDF5Common::H5_Close() } H5Fclose(m_File_id); + m_File_id = -1; + m_Group_id = -1; } void HDF5Common::H5_Advance(int totalts) @@ -197,87 +206,4 @@ void HDF5Common::CheckWriteGroup() m_Group_id = H5Gcreate2(m_File_id, tsname.c_str(), H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); } - -#ifdef NEVER -template <class T> -void HDF5Common::ReadMe(Variable<T> &variable, T *data_array, hid_t h5type) -{ - hid_t datasetID = H5Dopen(m_Group_id, variable.m_Name.c_str(), H5P_DEFAULT); - - if (datasetID < 0) - { - return; - } - - hid_t filespace = H5Dget_space(datasetID); - - if (filespace < 0) - { - return; - } - - const int ndims = H5Sget_simple_extent_ndims(filespace); - hsize_t dims[ndims]; - H5Sget_simple_extent_dims(filespace, dims, NULL); - - // int dims_in = variable.m_GlobalDimensions.size(); - variable.m_GlobalDimensions.clear(); - for (int i = 0; i < ndims; i++) - { - variable.m_GlobalDimensions.push_back(dims[i]); - } - - std::vector<hsize_t> count, offset, stride; - - int elementsRead = 1; - for (int i = 0; i < ndims; i++) - { - if (variable.m_LocalDimensions.size() == ndims) - { - count.push_back(variable.m_LocalDimensions[i]); - elementsRead *= variable.m_LocalDimensions[i]; - } - else - { - count.push_back(variable.m_GlobalDimensions[i]); - elementsRead *= variable.m_GlobalDimensions[i]; - } - - if (variable.m_Offsets.size() == ndims) - { - offset.push_back(variable.m_Offsets[i]); - } - else - { - offset.push_back(0); - } - - stride.push_back(1); - } - - hid_t ret = H5Sselect_hyperslab(filespace, H5S_SELECT_SET, offset.data(), - stride.data(), count.data(), NULL); - if (ret < 0) - { - return; - } - - hid_t mem_dataspace = H5Screate_simple(ndims, count.data(), NULL); - - // T data_array[elementsRead]; - ret = H5Dread(datasetID, h5type, mem_dataspace, filespace, H5P_DEFAULT, - data_array); - - /* for (int i = 0; i < elementsRead; i++) - { - std::cout << "... ts " << m_CurrentTimeStep << ", " - << data_array[i] << std::endl; - } - */ - H5Sclose(mem_dataspace); - - H5Sclose(filespace); - H5Dclose(datasetID); -} -#endif } diff --git a/source/adios2/engine/hdf5/HDF5Common.h b/source/adios2/engine/hdf5/HDF5Common.h index aa2cd36d9..367bad64f 100644 --- a/source/adios2/engine/hdf5/HDF5Common.h +++ b/source/adios2/engine/hdf5/HDF5Common.h @@ -8,11 +8,11 @@ * Author: Junmin */ -#ifndef HDF5_COMMON_P_H_ -#define HDF5_COMMON_P_H_ +#ifndef ADIOS2_ENGINE_HDF5_HDF5COMMON_P_H_ +#define ADIOS2_ENGINE_HDF5_HDF5COMMON_P_H_ -//#include "adios2/ADIOSMPICommOnly.h" -#include "adios2/core/Engine.h" +#include "adios2.h" +#include "adios2/ADIOSMPICommOnly.h" #include <hdf5.h> @@ -25,12 +25,9 @@ class HDF5Common public: /** * Constructor for HDF5 file - * @param file name */ HDF5Common(); - // virtual ~HDF5Common(); - void H5_Init(const std::string name, MPI_Comm m_MPIComm, bool toWrite); void H5_Close(); void H5_Advance(int totalts); @@ -38,24 +35,18 @@ public: int GetNumTimeSteps(); void WriteTimeSteps(); - // template <class T> - // void ReadMe(Variable<T> &variable, T *data_array, hid_t h5type); - - // void ReadFromHDF5(const char* name, void* data_array); - hid_t m_Plist_id, m_File_id; hid_t m_Group_id; - hid_t DefH5T_COMPLEX_DOUBLE; - hid_t DefH5T_COMPLEX_FLOAT; - hid_t DefH5T_COMPLEX_LongDOUBLE; + hid_t m_DefH5T_COMPLEX_DOUBLE; + hid_t m_DefH5T_COMPLEX_FLOAT; + hid_t m_DefH5T_COMPLEX_LongDOUBLE; int m_CurrentTimeStep; void CheckWriteGroup(); private: - // void H5_AdvanceWrite(); bool m_WriteMode; int m_Total_timestep; }; diff --git a/source/adios2/engine/hdf5/HDF5ReaderP.cpp b/source/adios2/engine/hdf5/HDF5ReaderP.cpp index 1d7102f23..8f3cb8f4d 100644 --- a/source/adios2/engine/hdf5/HDF5ReaderP.cpp +++ b/source/adios2/engine/hdf5/HDF5ReaderP.cpp @@ -20,13 +20,12 @@ HDF5Reader::HDF5Reader(ADIOS &adios, const std::string name, const Method &method) : Engine(adios, "HDF5Reader", name, accessMode, mpiComm, method, " HDF5Reader constructor (or call to ADIOS Open).\n") + { Init(); - MPI_Comm_rank(mpiComm, &_mpi_rank); - MPI_Comm_size(mpiComm, &_mpi_size); } -HDF5Reader::~HDF5Reader() {} +HDF5Reader::~HDF5Reader() { Close(); } bool HDF5Reader::isValid() { @@ -34,7 +33,7 @@ bool HDF5Reader::isValid() { return false; } - if (_H5File.m_File_id >= 0) + if (m_H5File.m_File_id >= 0) { return true; } @@ -48,142 +47,142 @@ void HDF5Reader::Init() ", in call to ADIOS Open or HDF5Reader constructor\n"); } - _H5File.H5_Init(m_Name, m_MPIComm, false); - _H5File.GetNumTimeSteps(); + m_H5File.H5_Init(m_Name, m_MPIComm, false); + m_H5File.GetNumTimeSteps(); } Variable<void> *HDF5Reader::InquireVariable(const std::string &variableName, const bool readIn) { std::cout << "Not implemented: HDF5Reader::InquireVariable()" << std::endl; - return NULL; + return nullptr; } Variable<char> *HDF5Reader::InquireVariableChar(const std::string &variableName, const bool readIn) { - return NULL; + return nullptr; } Variable<unsigned char> * HDF5Reader::InquireVariableUChar(const std::string &variableName, const bool readIn) { - return NULL; + return nullptr; } Variable<short> * HDF5Reader::InquireVariableShort(const std::string &variableName, const bool readIn) { - return NULL; + return nullptr; } Variable<unsigned short> * HDF5Reader::InquireVariableUShort(const std::string &variableName, const bool readIn) { - return NULL; + return nullptr; } Variable<int> *HDF5Reader::InquireVariableInt(const std::string &variableName, const bool) { - return NULL; + return nullptr; } Variable<unsigned int> * HDF5Reader::InquireVariableUInt(const std::string &variableName, const bool) { - return NULL; + return nullptr; } Variable<long int> * HDF5Reader::InquireVariableLInt(const std::string &variableName, const bool) { - return NULL; + return nullptr; } Variable<unsigned long int> * HDF5Reader::InquireVariableULInt(const std::string &variableName, const bool) { - return NULL; + return nullptr; } Variable<long long int> * HDF5Reader::InquireVariableLLInt(const std::string &variableName, const bool) { - return NULL; + return nullptr; } Variable<unsigned long long int> * HDF5Reader::InquireVariableULLInt(const std::string &variableName, const bool) { - return NULL; + return nullptr; } Variable<float> * HDF5Reader::InquireVariableFloat(const std::string &variableName, const bool) { - return NULL; + return nullptr; } Variable<double> * HDF5Reader::InquireVariableDouble(const std::string &variableName, const bool) { - if (_mpi_rank == 0) + if (m_RankMPI == 0) { std::cout << " ... reading var: " << variableName << std::endl; } - int totalts = _H5File.GetNumTimeSteps(); + int totalts = m_H5File.GetNumTimeSteps(); - if (_mpi_rank == 0) + if (m_RankMPI == 0) { std::cout << " ... I saw total timesteps: " << totalts << std::endl; } - return NULL; + return nullptr; } Variable<long double> * HDF5Reader::InquireVariableLDouble(const std::string &variableName, const bool) { - return NULL; + return nullptr; } Variable<std::complex<float>> * HDF5Reader::InquireVariableCFloat(const std::string &variableName, const bool) { - return NULL; + return nullptr; } Variable<std::complex<double>> * HDF5Reader::InquireVariableCDouble(const std::string &variableName, const bool) { - return NULL; + return nullptr; } Variable<std::complex<long double>> * HDF5Reader::InquireVariableCLDouble(const std::string &variableName, const bool) { - return NULL; + return nullptr; } VariableCompound * HDF5Reader::InquireVariableCompound(const std::string &variableName, const bool readIn) { - return NULL; + return nullptr; } template <class T> void HDF5Reader::UseHDFRead(const std::string &variableName, T *values, - hid_t h5type) + hid_t h5Type) { hid_t datasetID = - H5Dopen(_H5File.m_Group_id, variableName.c_str(), H5P_DEFAULT); - if (_mpi_rank == 0) + H5Dopen(m_H5File.m_Group_id, variableName.c_str(), H5P_DEFAULT); + if (m_RankMPI == 0) { std::cout << " opened to read: " << variableName << std::endl; } @@ -212,12 +211,12 @@ void HDF5Reader::UseHDFRead(const std::string &variableName, T *values, totalElements *= dims[i]; } - start[0] = _mpi_rank * dims[0] / _mpi_size; - count[0] = dims[0] / _mpi_size; - if (_mpi_rank == _mpi_size - 1) + start[0] = m_RankMPI * dims[0] / m_SizeMPI; + count[0] = dims[0] / m_SizeMPI; + if (m_RankMPI == m_SizeMPI - 1) { - count[0] = dims[0] - count[0] * (_mpi_size - 1); - std::cout << " rank = " << _mpi_rank << ", count=" << count[0] + count[0] = dims[0] - count[0] * (m_SizeMPI - 1); + std::cout << " rank = " << m_RankMPI << ", count=" << count[0] << std::endl; } @@ -237,12 +236,12 @@ void HDF5Reader::UseHDFRead(const std::string &variableName, T *values, } T data_array[elementsRead]; - ret = H5Dread(datasetID, h5type, mem_dataspace, filespace, H5P_DEFAULT, + ret = H5Dread(datasetID, h5Type, mem_dataspace, filespace, H5P_DEFAULT, data_array); for (int i = 0; i < elementsRead; i++) { - std::cout << "... rank " << _mpi_rank << " , " << data_array[i] + std::cout << "... rank " << m_RankMPI << " , " << data_array[i] << std::endl; } @@ -252,12 +251,12 @@ void HDF5Reader::UseHDFRead(const std::string &variableName, T *values, H5Dclose(datasetID); } -void HDF5Reader::Advance(float timeout_sec) +void HDF5Reader::Advance(float timeoutSec) { - int totalts = _H5File.GetNumTimeSteps(); - _H5File.H5_Advance(totalts); + int totalts = m_H5File.GetNumTimeSteps(); + m_H5File.H5_Advance(totalts); } -void HDF5Reader::Close(const int transportIndex) { _H5File.H5_Close(); } +void HDF5Reader::Close(const int transportIndex) { m_H5File.H5_Close(); } } // end namespace adios diff --git a/source/adios2/engine/hdf5/HDF5ReaderP.h b/source/adios2/engine/hdf5/HDF5ReaderP.h index 7b05ba221..70c71137b 100644 --- a/source/adios2/engine/hdf5/HDF5ReaderP.h +++ b/source/adios2/engine/hdf5/HDF5ReaderP.h @@ -106,23 +106,20 @@ public: VariableCompound *InquireVariableCompound(const std::string &variableName, const bool readIn = true); - void Advance(float timeout_sec = 0.0); + void Advance(float timeoutSecc = 0.0); void Close(const int transportIndex = -1); template <typename T> - void UseHDFRead(const std::string &variableName, T *values, hid_t h5type); + void UseHDFRead(const std::string &variableName, T *values, hid_t h5Type); /* template <class T> void ReadMe(Variable<T> &variable, T *values, hid_t h5type); */ private: - HDF5Common _H5File; + HDF5Common m_H5File; void Init(); - - int _mpi_rank; - int _mpi_size; }; }; #endif /* ADIOS2_ENGINE_HDF5_HDF5READERP_H_ */ diff --git a/source/adios2/engine/hdf5/HDF5WriterP.cpp b/source/adios2/engine/hdf5/HDF5WriterP.cpp index a77f78a4a..ec1278e13 100644 --- a/source/adios2/engine/hdf5/HDF5WriterP.cpp +++ b/source/adios2/engine/hdf5/HDF5WriterP.cpp @@ -28,7 +28,7 @@ HDF5Writer::HDF5Writer(ADIOS &adios, const std::string name, Init(); } -HDF5Writer::~HDF5Writer() {} +HDF5Writer::~HDF5Writer() { Close(); } void HDF5Writer::Init() { @@ -40,7 +40,7 @@ void HDF5Writer::Init() ", in call to ADIOS Open or HDF5Writer constructor\n"); } - _H5File.H5_Init(m_Name, m_MPIComm, true); + m_H5File.H5_Init(m_Name, m_MPIComm, true); } void HDF5Writer::Write(Variable<char> &variable, const char *values) @@ -118,19 +118,19 @@ void HDF5Writer::Write(Variable<long double> &variable, void HDF5Writer::Write(Variable<std::complex<float>> &variable, const std::complex<float> *values) { - UseHDFWrite(variable, values, _H5File.DefH5T_COMPLEX_FLOAT); + UseHDFWrite(variable, values, m_H5File.m_DefH5T_COMPLEX_FLOAT); } void HDF5Writer::Write(Variable<std::complex<double>> &variable, const std::complex<double> *values) { - UseHDFWrite(variable, values, _H5File.DefH5T_COMPLEX_DOUBLE); + UseHDFWrite(variable, values, m_H5File.m_DefH5T_COMPLEX_DOUBLE); } void HDF5Writer::Write(Variable<std::complex<long double>> &variable, const std::complex<long double> *values) { - UseHDFWrite(variable, values, _H5File.DefH5T_COMPLEX_LongDOUBLE); + UseHDFWrite(variable, values, m_H5File.m_DefH5T_COMPLEX_LongDOUBLE); } // String version @@ -222,24 +222,24 @@ void HDF5Writer::Write(const std::string variableName, const std::complex<float> *values) { UseHDFWrite(m_ADIOS.GetVariable<std::complex<float>>(variableName), values, - _H5File.DefH5T_COMPLEX_FLOAT); + m_H5File.m_DefH5T_COMPLEX_FLOAT); } void HDF5Writer::Write(const std::string variableName, const std::complex<double> *values) { UseHDFWrite(m_ADIOS.GetVariable<std::complex<double>>(variableName), values, - _H5File.DefH5T_COMPLEX_DOUBLE); + m_H5File.m_DefH5T_COMPLEX_DOUBLE); } void HDF5Writer::Write(const std::string variableName, const std::complex<long double> *values) { UseHDFWrite(m_ADIOS.GetVariable<std::complex<long double>>(variableName), - values, _H5File.DefH5T_COMPLEX_LongDOUBLE); + values, m_H5File.m_DefH5T_COMPLEX_LongDOUBLE); } -void HDF5Writer::Advance(float timeout_sec) { _H5File.H5_Advance(0); } +void HDF5Writer::Advance(float timeoutSec) { m_H5File.H5_Advance(0); } void HDF5Writer::Close(const int transportIndex) { @@ -247,26 +247,26 @@ void HDF5Writer::Close(const int transportIndex) //void* hi = H5Iobject_verify(H5S_SCALAR, H5I_DATASPACE); hid_t s = H5Screate(H5S_SCALAR); - //hid_t attr = H5Acreate(_H5File.m_Group_id, "NumTimeSteps", + //hid_t attr = H5Acreate(m_H5File.m_Group_id, "NumTimeSteps", H5T_NATIVE_UINT, s, H5P_DEFAULT, H5P_DEFAULT); - hid_t attr = H5Acreate(_H5File.m_File_id, "NumTimeSteps", H5T_NATIVE_UINT, + hid_t attr = H5Acreate(m_H5File.m_File_id, "NumTimeSteps", H5T_NATIVE_UINT, s, H5P_DEFAULT, H5P_DEFAULT); - uint totalts = _H5File.m_CurrentTimeStep+1; + uint totalts = m_H5File.m_CurrentTimeStep+1; H5Awrite(attr,H5T_NATIVE_UINT,&totalts); H5Sclose(s); H5Aclose(attr); */ - _H5File.H5_Close(); + m_H5File.H5_Close(); } template <class T> void HDF5Writer::UseHDFWrite(Variable<T> &variable, const T *values, hid_t h5type) { - _H5File.CheckWriteGroup(); + m_H5File.CheckWriteGroup(); // here comes your magic at Writing now variable.m_UserValues has the data // passed by the user // set variable @@ -308,30 +308,29 @@ void HDF5Writer::UseHDFWrite(Variable<T> &variable, const T *values, } } - hid_t _filespace = H5Screate_simple(dimSize, dimsf.data(), NULL); + hid_t fileSpace = H5Screate_simple(dimSize, dimsf.data(), NULL); - hid_t _dset_id = - H5Dcreate(_H5File.m_Group_id, variable.m_Name.c_str(), h5type, - _filespace, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); - // H5Sclose(_filespace); + hid_t dsetID = + H5Dcreate(m_H5File.m_Group_id, variable.m_Name.c_str(), h5type, + fileSpace, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + // H5Sclose(fileSpace); - hid_t _memspace = H5Screate_simple(dimSize, count.data(), NULL); + hid_t memSpace = H5Screate_simple(dimSize, count.data(), NULL); // Select hyperslab - _filespace = H5Dget_space(_dset_id); - H5Sselect_hyperslab(_filespace, H5S_SELECT_SET, offset.data(), NULL, + fileSpace = H5Dget_space(dsetID); + H5Sselect_hyperslab(fileSpace, H5S_SELECT_SET, offset.data(), NULL, count.data(), NULL); // Create property list for collective dataset write. - hid_t _plist_id = H5Pcreate(H5P_DATASET_XFER); + hid_t plistID = H5Pcreate(H5P_DATASET_XFER); #ifdef ADIOS2_HAVE_MPI - H5Pset_dxpl_mpio(_plist_id, H5FD_MPIO_COLLECTIVE); + H5Pset_dxpl_mpio(plistID, H5FD_MPIO_COLLECTIVE); #endif herr_t status; - status = - H5Dwrite(_dset_id, h5type, _memspace, _filespace, _plist_id, values); + status = H5Dwrite(dsetID, h5type, memSpace, fileSpace, plistID, values); if (status < 0) { @@ -339,13 +338,10 @@ void HDF5Writer::UseHDFWrite(Variable<T> &variable, const T *values, std::cerr << " Write failed. " << std::endl; } - // std::cout << " ==> User is responsible for freeing the data " << - // std::endl; - - H5Dclose(_dset_id); - H5Sclose(_filespace); - H5Sclose(_memspace); - H5Pclose(_plist_id); + H5Dclose(dsetID); + H5Sclose(fileSpace); + H5Sclose(memSpace); + H5Pclose(plistID); } } // end namespace adios diff --git a/source/adios2/engine/hdf5/HDF5WriterP.h b/source/adios2/engine/hdf5/HDF5WriterP.h index 3141cca75..f915e9ccb 100644 --- a/source/adios2/engine/hdf5/HDF5WriterP.h +++ b/source/adios2/engine/hdf5/HDF5WriterP.h @@ -85,7 +85,7 @@ public: void Write(const std::string variableName, const std::complex<long double> *values); - void Advance(float timeout_sec = 0.0); + void Advance(float timeoutSec = 0.0); void Close(const int transportIndex = -1); @@ -95,20 +95,8 @@ private: void Init(); - HDF5Common _H5File; + HDF5Common m_H5File; - /* - hid_t _plist_id, _file_id, _dset_id; - hid_t _memspace, _filespace; - - hid_t _group_id; - - hid_t DefH5T_COMPLEX_DOUBLE; - hid_t DefH5T_COMPLEX_FLOAT; - hid_t DefH5T_COMPLEX_LongDOUBLE; - - int _currentTimeStep; - */ template <class T> void UseHDFWrite(Variable<T> &variable, const T *values, hid_t h5type); }; -- GitLab