Chaste Release::3.1
|
#include <Hdf5DataReader.hpp>
Public Member Functions | |
Hdf5DataReader (const std::string &rDirectory, const std::string &rBaseName, bool makeAbsolute=true) | |
Hdf5DataReader (const FileFinder &rDirectory, const std::string &rBaseName) | |
std::vector< double > | GetVariableOverTime (const std::string &rVariableName, unsigned nodeIndex) |
std::vector< std::vector < double > > | GetVariableOverTimeOverMultipleNodes (const std::string &rVariableName, unsigned lowerIndex, unsigned upperIndex) |
void | GetVariableOverNodes (Vec data, const std::string &rVariableName, unsigned timestep=0) |
std::vector< double > | GetUnlimitedDimensionValues () |
unsigned | GetNumberOfRows () |
std::vector< std::string > | GetVariableNames () |
std::string | GetUnit (const std::string &rVariableName) |
bool | IsDataComplete () |
std::vector< unsigned > | GetIncompleteNodeMap () |
void | Close () |
~Hdf5DataReader () | |
Private Member Functions | |
void | CommonConstructor (const FileFinder &rDirectory, const std::string &rBaseName) |
Private Attributes | |
std::string | mDirectory |
std::string | mBaseName |
hid_t | mFileId |
hid_t | mVariablesDatasetId |
unsigned | mVariablesDatasetRank |
hsize_t | mVariablesDatasetSizes [MAX_DATASET_RANK] |
bool | mIsUnlimitedDimensionSet |
hid_t | mTimeDatasetId |
hsize_t | mNumberTimesteps |
std::vector< std::string > | mVariableNames |
std::map< std::string, unsigned > | mVariableToColumnIndex |
std::map< std::string, std::string > | mVariableToUnit |
bool | mIsDataComplete |
std::vector< unsigned > | mIncompleteNodeIndices |
bool | mClosed |
Static Private Attributes | |
static const unsigned | MAX_DATASET_RANK = 3 |
A concrete HDF5 data reader class.
Definition at line 56 of file Hdf5DataReader.hpp.
Hdf5DataReader::Hdf5DataReader | ( | const std::string & | rDirectory, |
const std::string & | rBaseName, | ||
bool | makeAbsolute = true |
||
) |
Read data from the given files into memory.
rDirectory | The directory the files are stored in |
rBaseName | The base name of the files to read (i.e. without the extensions) |
makeAbsolute | Whether to convert directory to an absolute path using the OutputFileHandler (defaults to true) |
Definition at line 44 of file Hdf5DataReader.cpp.
References RelativeTo::Absolute, RelativeTo::ChasteTestOutput, and CommonConstructor().
Hdf5DataReader::Hdf5DataReader | ( | const FileFinder & | rDirectory, |
const std::string & | rBaseName | ||
) |
Alternative constructor taking a FileFinder to specify the directory.
rDirectory | The directory the files are stored in |
rBaseName | The base name of the files to read (i.e. without the extensions) |
Definition at line 66 of file Hdf5DataReader.cpp.
References CommonConstructor().
Hdf5DataReader::~Hdf5DataReader | ( | ) |
void Hdf5DataReader::Close | ( | ) |
Close any open files.
Definition at line 425 of file Hdf5DataReader.cpp.
References mClosed, mFileId, mIsUnlimitedDimensionSet, mTimeDatasetId, and mVariablesDatasetId.
Referenced by ~Hdf5DataReader().
void Hdf5DataReader::CommonConstructor | ( | const FileFinder & | rDirectory, |
const std::string & | rBaseName | ||
) | [private] |
Contains functionality common to both constructors.
rDirectory | The directory the files are stored in |
rBaseName | The base name of the files to read (i.e. without the extensions) |
Definition at line 77 of file Hdf5DataReader.cpp.
References RelativeTo::Absolute, EXCEPTION, FileFinder::Exists(), FileFinder::GetAbsolutePath(), FileFinder::IsDir(), MAX_DATASET_RANK, mBaseName, mDirectory, mFileId, mIncompleteNodeIndices, mIsDataComplete, mIsUnlimitedDimensionSet, mNumberTimesteps, mTimeDatasetId, mVariableNames, mVariablesDatasetId, mVariablesDatasetRank, mVariablesDatasetSizes, mVariableToColumnIndex, and mVariableToUnit.
Referenced by Hdf5DataReader().
std::vector< unsigned > Hdf5DataReader::GetIncompleteNodeMap | ( | ) |
Get method for mIncompleteNodeIndices.
Definition at line 464 of file Hdf5DataReader.cpp.
References mIncompleteNodeIndices.
unsigned Hdf5DataReader::GetNumberOfRows | ( | ) |
Get the number of rows in the data file.
Definition at line 444 of file Hdf5DataReader.cpp.
References mVariablesDatasetSizes.
Referenced by AbstractHdf5Converter< ELEMENT_DIM, SPACE_DIM >::AbstractHdf5Converter(), Hdf5ToTxtConverter< ELEMENT_DIM, SPACE_DIM >::Hdf5ToTxtConverter(), Hdf5ToVtkConverter< ELEMENT_DIM, SPACE_DIM >::Hdf5ToVtkConverter(), PostProcessingWriter< ELEMENT_DIM, SPACE_DIM >::PostProcessingWriter(), and PseudoEcgCalculator< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::PseudoEcgCalculator().
std::string Hdf5DataReader::GetUnit | ( | const std::string & | rVariableName | ) |
Get the units in which a given variable is measured.
rVariableName | name of a variable in the data file |
Definition at line 454 of file Hdf5DataReader.cpp.
References mVariableToUnit.
std::vector< double > Hdf5DataReader::GetUnlimitedDimensionValues | ( | ) |
Get the unlimited dimension values.
Definition at line 398 of file Hdf5DataReader.cpp.
References mIsUnlimitedDimensionSet, mNumberTimesteps, and mTimeDatasetId.
Referenced by AbstractHdf5Converter< ELEMENT_DIM, SPACE_DIM >::AbstractHdf5Converter(), AbstractConvergenceTester< CELL, CARDIAC_PROBLEM, DIM, PROBLEM_DIM >::Converge(), Hdf5ToTxtConverter< ELEMENT_DIM, SPACE_DIM >::Hdf5ToTxtConverter(), Hdf5ToVtkConverter< ELEMENT_DIM, SPACE_DIM >::Hdf5ToVtkConverter(), AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::InitialiseWriter(), and VoltageInterpolaterOntoMechanicsMesh< DIM >::VoltageInterpolaterOntoMechanicsMesh().
std::vector< std::string > Hdf5DataReader::GetVariableNames | ( | ) |
Get the variable names.
Definition at line 449 of file Hdf5DataReader.cpp.
References mVariableNames.
Referenced by AbstractHdf5Converter< ELEMENT_DIM, SPACE_DIM >::AbstractHdf5Converter(), Hdf5ToCmguiConverter< ELEMENT_DIM, SPACE_DIM >::Hdf5ToCmguiConverter(), Hdf5ToMeshalyzerConverter< ELEMENT_DIM, SPACE_DIM >::Hdf5ToMeshalyzerConverter(), Hdf5ToTxtConverter< ELEMENT_DIM, SPACE_DIM >::Hdf5ToTxtConverter(), and Hdf5ToVtkConverter< ELEMENT_DIM, SPACE_DIM >::Hdf5ToVtkConverter().
void Hdf5DataReader::GetVariableOverNodes | ( | Vec | data, |
const std::string & | rVariableName, | ||
unsigned | timestep = 0 |
||
) |
Get the values of a given variable at each node at a given time step.
data | PETSc vec to hold the data |
rVariableName | name of a variable in the data file |
timestep | the time step for which the data is obtained (defaults to 0) |
Definition at line 339 of file Hdf5DataReader.cpp.
References EXCEPTION, mIsDataComplete, mIsUnlimitedDimensionSet, mNumberTimesteps, mVariablesDatasetId, mVariablesDatasetSizes, and mVariableToColumnIndex.
Referenced by Hdf5ToTxtConverter< ELEMENT_DIM, SPACE_DIM >::Hdf5ToTxtConverter(), Hdf5ToVtkConverter< ELEMENT_DIM, SPACE_DIM >::Hdf5ToVtkConverter(), ExtendedBidomainProblem< DIM >::load(), AbstractCardiacProblem< DIM, DIM, 1 >::load(), and VoltageInterpolaterOntoMechanicsMesh< DIM >::VoltageInterpolaterOntoMechanicsMesh().
std::vector< double > Hdf5DataReader::GetVariableOverTime | ( | const std::string & | rVariableName, |
unsigned | nodeIndex | ||
) |
Get the values of a given variable at each time step at a given node.
rVariableName | name of a variable in the data file |
nodeIndex | the index of the node for which the data is obtained |
Definition at line 215 of file Hdf5DataReader.cpp.
References EXCEPTION, mIncompleteNodeIndices, mIsDataComplete, mIsUnlimitedDimensionSet, mVariablesDatasetId, mVariablesDatasetSizes, and mVariableToColumnIndex.
Referenced by PropagationPropertiesCalculator::CalculateAllConductionVelocities(), PropagationPropertiesCalculator::CalculateConductionVelocity(), AbstractConvergenceTester< CELL, CARDIAC_PROBLEM, DIM, PROBLEM_DIM >::Converge(), PseudoEcgCalculator< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::PseudoEcgCalculator(), and PropagationPropertiesCalculator::rGetCachedVoltages().
std::vector< std::vector< double > > Hdf5DataReader::GetVariableOverTimeOverMultipleNodes | ( | const std::string & | rVariableName, |
unsigned | lowerIndex, | ||
unsigned | upperIndex | ||
) |
Get the values of a given variable at each time step over multiple nodes.
rVariableName | name of a variable in the data file |
lowerIndex | the index of the lower node for which the data is obtained |
upperIndex | one past the index of the upper node for which the data is obtained |
Definition at line 273 of file Hdf5DataReader.cpp.
References EXCEPTION, mIsDataComplete, mIsUnlimitedDimensionSet, mVariablesDatasetId, mVariablesDatasetSizes, and mVariableToColumnIndex.
Referenced by PropagationPropertiesCalculator::CalculateAllActionPotentialDurationsForNodeRange().
bool Hdf5DataReader::IsDataComplete | ( | ) |
Get method for mIsDataComplete.
Definition at line 459 of file Hdf5DataReader.cpp.
References mIsDataComplete.
const unsigned Hdf5DataReader::MAX_DATASET_RANK = 3 [static, private] |
Defined in HDF5 writer too.
Definition at line 60 of file Hdf5DataReader.hpp.
Referenced by CommonConstructor().
std::string Hdf5DataReader::mBaseName [private] |
The base name for the output data files.
Definition at line 63 of file Hdf5DataReader.hpp.
Referenced by CommonConstructor().
bool Hdf5DataReader::mClosed [private] |
Whether we've already closed the file.
Definition at line 82 of file Hdf5DataReader.hpp.
Referenced by Close().
std::string Hdf5DataReader::mDirectory [private] |
Directory output files will be stored in (absolute path).
Definition at line 62 of file Hdf5DataReader.hpp.
Referenced by CommonConstructor().
hid_t Hdf5DataReader::mFileId [private] |
The data file ID.
Definition at line 65 of file Hdf5DataReader.hpp.
Referenced by Close(), and CommonConstructor().
std::vector<unsigned> Hdf5DataReader::mIncompleteNodeIndices [private] |
Vector of node indices for which the data file does not contain data.
Definition at line 80 of file Hdf5DataReader.hpp.
Referenced by CommonConstructor(), GetIncompleteNodeMap(), and GetVariableOverTime().
bool Hdf5DataReader::mIsDataComplete [private] |
Whether the data file is complete.
Definition at line 79 of file Hdf5DataReader.hpp.
Referenced by CommonConstructor(), GetVariableOverNodes(), GetVariableOverTime(), GetVariableOverTimeOverMultipleNodes(), and IsDataComplete().
bool Hdf5DataReader::mIsUnlimitedDimensionSet [private] |
Is the unlimited dimension set
Definition at line 71 of file Hdf5DataReader.hpp.
Referenced by Close(), CommonConstructor(), GetUnlimitedDimensionValues(), GetVariableOverNodes(), GetVariableOverTime(), and GetVariableOverTimeOverMultipleNodes().
hsize_t Hdf5DataReader::mNumberTimesteps [private] |
The number of time steps recorded in the data file.
Definition at line 73 of file Hdf5DataReader.hpp.
Referenced by CommonConstructor(), GetUnlimitedDimensionValues(), and GetVariableOverNodes().
hid_t Hdf5DataReader::mTimeDatasetId [private] |
The time data set ID.
Definition at line 72 of file Hdf5DataReader.hpp.
Referenced by Close(), CommonConstructor(), and GetUnlimitedDimensionValues().
std::vector<std::string> Hdf5DataReader::mVariableNames [private] |
The variable names.
Definition at line 75 of file Hdf5DataReader.hpp.
Referenced by CommonConstructor(), and GetVariableNames().
hid_t Hdf5DataReader::mVariablesDatasetId [private] |
The variables data set ID.
Definition at line 67 of file Hdf5DataReader.hpp.
Referenced by Close(), CommonConstructor(), GetVariableOverNodes(), GetVariableOverTime(), and GetVariableOverTimeOverMultipleNodes().
The rank of the variables data set.
Definition at line 68 of file Hdf5DataReader.hpp.
Referenced by CommonConstructor().
hsize_t Hdf5DataReader::mVariablesDatasetSizes[MAX_DATASET_RANK] [private] |
The sizes of each variable data set.
Definition at line 69 of file Hdf5DataReader.hpp.
Referenced by CommonConstructor(), GetNumberOfRows(), GetVariableOverNodes(), GetVariableOverTime(), and GetVariableOverTimeOverMultipleNodes().
std::map<std::string, unsigned> Hdf5DataReader::mVariableToColumnIndex [private] |
Map between variable names and data column numbers.
Definition at line 76 of file Hdf5DataReader.hpp.
Referenced by CommonConstructor(), GetVariableOverNodes(), GetVariableOverTime(), and GetVariableOverTimeOverMultipleNodes().
std::map<std::string, std::string> Hdf5DataReader::mVariableToUnit [private] |
Map between variable names and variable units.
Definition at line 77 of file Hdf5DataReader.hpp.
Referenced by CommonConstructor(), and GetUnit().