Class HDF5Output

Nested Relationships

Inheritance Relationships

Base Type

Class Documentation

class HDF5Output : public Output

Output to HDF5 Format.

HDF5 structure:

HDF5 "FILENAME.h5" {
GROUP "/" {
DATASET "OUTPUTTYPE" {
  DATATYPE  H5T_COMPOUND {
  ...
 }
 DATASPACE  SIMPLE { ( 1 ) / ( H5S_UNLIMITED ) }
 DATA {
  ...
 }
  ATTRIBUTE "Version" {
  DATATYPE  H5T_STRING {
      STRSIZE 100;
      STRPAD H5T_STR_NULLTERM;
      CSET H5T_CSET_ASCII;
      CTYPE H5T_C_S1;
      }
  DATASPACE  SCALAR
  DATA { (0): "VERSION" }
 }
} } }

Public Types

enum OutputColumn

Values:

TrajectoryLengthColumn
ColumnDensityColumn
RedshiftColumn
CurrentIdColumn
CurrentEnergyColumn
CurrentPositionColumn
CurrentDirectionColumn
SourceIdColumn
SourceEnergyColumn
SourcePositionColumn
SourceDirectionColumn
CreatedIdColumn
CreatedEnergyColumn
CreatedPositionColumn
CreatedDirectionColumn
SerialNumberColumn
WeightColumn
enum OutputType

Values:

Trajectory1D
Trajectory3D
Event1D
Event3D
Everything

Public Functions

HDF5Output()
HDF5Output(const std::string &filename)
HDF5Output(const std::string &filename, OutputType outputtype)
~HDF5Output()
void process(Candidate *candidate) const
herr_t insertStringAttribute(const std::string &key, const std::string &value)
herr_t insertDoubleAttribute(const std::string &key, const double &value)
std::string getDescription() const
void setFlushLimit(unsigned int N)

Force flush after N events. In long running applications with scarse output this can be set to 1 or 0 to avoid data corruption. In applications with frequent output this should be set to a high number (default)

void open(const std::string &filename)
void close()
void flush() const
std::string OutputTypeName(OutputType outputtype)
void setEnergyScale(double scale)
void setLengthScale(double scale)
void setOutputType(OutputType outputtype)
void set(OutputColumn field, bool value)
void enableProperty(const std::string &property, const Variant &defaultValue, const std::string &comment = "")

Add a property to output. Default value is required to assign a type in the output.

void enable(OutputColumn field)
void disable(OutputColumn field)
void enableAll()
void disableAll()
void set1D(bool value)
size_t size() const
void process(ref_ptr<Candidate> candidate) const
void setDescription(const std::string &description)
size_t addReference() const
size_t removeReference() const
int removeReferenceNoDelete() const
size_t getReferenceCount() const

Public Members

const std::string outputName

Protected Functions

void modify()

Protected Attributes

double lengthScale
double energyScale
std::bitset<64> fields
std::vector<Property> properties
bool oneDimensional
size_t count
size_t _referenceCount