IFEM 90A354
HDF5Writer.h
Go to the documentation of this file.
1// $Id$
2//==============================================================================
12//==============================================================================
13
14#ifndef _HDF5_WRITER_H
15#define _HDF5_WRITER_H
16
17#include "DataExporter.h"
18#include "HDF5Base.h"
19
20class SIMbase;
21
22
29class HDF5Writer : public DataWriter, public HDF5Base
30{
31public:
36 HDF5Writer(const std::string& name, const ProcessAdm& adm,
37 bool append = false);
38
40 virtual ~HDF5Writer() {}
41
43 virtual int getLastTimeLevel();
44
47 virtual void openFile(int level);
48
51 virtual void closeFile(int level);
52
56 virtual void writeVector(int level, const DataEntry& entry);
57
68 virtual void writeSIM(int level, double time, const DataEntry& entry,
69 bool geometryUpdated, const std::string& prefix);
70
74 virtual void writeNodalForces(int level, const DataEntry& entry);
75
80 virtual void writeKnotspan(int level, const DataEntry& entry,
81 const std::string& prefix);
82
87 virtual void writeBasis(int level, const DataEntry& entry,
88 const std::string& prefix);
89
93 virtual bool writeTimeInfo(int level, double time);
94
98 virtual bool writeLog(const std::string& data, const std::string& name);
99
100#ifdef HAS_HDF5
101protected:
104 void addGroup(const std::string& path) const;
108 hid_t getGroup(const std::string& path, hid_t group = -1) const;
109
117 void writeArray(hid_t group, const std::string& name,
118 int patch, int len, const void* data, hid_t type);
119
127 void writeBasis(const SIMbase* SIM, const std::string& name,
128 int basis, int level, bool redundant = false,
129 bool l2g = false);
130
131private:
132 unsigned int m_flag;
133#endif
134};
135
136#endif
Administer and write data using DataWriters.
std::pair< std::string, DataExporter::FileEntry > DataEntry
Convenience type alias.
Definition DataExporter.h:149
Base class for interacting with HDF5 files.
Stores and reads data from a file.
Definition DataExporter.h:160
Base class for interacting with HDF5 files.
Definition HDF5Base.h:30
void closeFile()
Closes the HDF5 file.
Definition HDF5Base.C:81
Write data to a HDF5 file.
Definition HDF5Writer.h:30
virtual void writeVector(int level, const DataEntry &entry)
Writes a vector to file.
Definition HDF5Writer.C:188
virtual int getLastTimeLevel()
Returns the last time level stored in the HDF5 file.
Definition HDF5Writer.C:52
virtual bool writeTimeInfo(int level, double time)
Writes time stepping info to file.
Definition HDF5Writer.C:685
virtual ~HDF5Writer()
Empty destructor.
Definition HDF5Writer.h:40
virtual void writeKnotspan(int level, const DataEntry &entry, const std::string &prefix)
Writes knot span field to file.
Definition HDF5Writer.C:538
virtual void writeBasis(int level, const DataEntry &entry, const std::string &prefix)
Writes a basis to file.
Definition HDF5Writer.C:214
virtual void writeSIM(int level, double time, const DataEntry &entry, bool geometryUpdated, const std::string &prefix)
Writes data from a SIM to file.
Definition HDF5Writer.C:231
virtual void openFile(int level)
Opens the file at a given time level.
Definition HDF5Writer.C:79
virtual void writeNodalForces(int level, const DataEntry &entry)
Writes nodal forces to file.
Definition HDF5Writer.C:699
virtual bool writeLog(const std::string &data, const std::string &name)
Write a log to output file.
Definition HDF5Writer.C:736
Class for administration of MPI processes in IFEM library.
Definition ProcessAdm.h:33
Base class for NURBS-based FEM simulators.
Definition SIMbase.h:72
Simulation scope.
Definition ForceIntegrator.h:27