42 #ifndef EPETRAEXT_HDF5_H
43 #define EPETRAEXT_HDF5_H
45 #if defined(EpetraExt_SHOW_DEPRECATED_WARNINGS)
47 #warning "The EpetraExt package is deprecated"
52 #ifdef HAVE_EPETRAEXT_HDF5
351 void Create(
const std::string FileName);
354 void Open(
const std::string FileName,
int AccessType = H5F_ACC_RDWR);
366 H5Fflush(
file_id_, H5F_SCOPE_GLOBAL);
378 hid_t group_id = H5Gcreate(
file_id_, GroupName.c_str(), H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
383 bool IsContained(std::string Name, std::string GroupName =
"");
389 void Write(
const std::string& GroupName,
const std::string& DataSetName,
int data);
392 void Read(
const std::string& GroupName,
const std::string& DataSetName,
int& data);
395 void Write(
const std::string& GroupName,
const std::string& DataSetName,
double data);
398 void Read(
const std::string& GroupName,
const std::string& DataSetName,
double& data);
401 void Write(
const std::string& GroupName,
const std::string& DataSetName,
const std::string& data);
404 void Read(
const std::string& GroupName,
const std::string& DataSetName, std::string& data);
407 void Read(
const std::string& GroupName,
const std::string& DataSetName,
408 const hid_t type,
const int Length,
void* data);
411 void Write(
const std::string& GroupName,
const std::string& DataSetName,
412 const hid_t type,
const int Length,
418 H5Gset_comment(
file_id_, GroupName.c_str(), Comment.c_str());
422 void ReadComment(
const std::string& GroupName, std::string& Comment)
425 H5Gget_comment(
file_id_, GroupName.c_str(), 128, comment);
433 void Write(
const std::string& GroupName,
const std::string& DataSetName,
int MySize,
int GlobalSize, hid_t type,
const void* data);
436 void Read(
const std::string& GroupName,
const std::string& DataSetName,
437 int MySize,
int GlobalSize,
438 const hid_t type,
void* data);
451 int& NumGlobalElements,
463 int& NumGlobalElements,
464 int& NumGlobalPoints,
475 void Read(
const std::string& GroupName,
const Epetra_Map& DomainMap,
485 int& NumGlobalNonzeros,
486 int& NumGlobalDiagonals,
517 bool writeTranspose =
false,
const int& indexBase = 0);
523 bool writeTranspose =
false);
540 void Read(
const std::string& GroupName,
550 int& NumGlobalDiagonals,
602 void Write(
const std::string& GroupName,
const Handle& List);
605 void Read(
const std::string& GroupName,
Handle& List);
610 int& NumGlobalElements);
void ReadDoubleDistArrayProperties(const std::string &GroupName, int &GlobalLength, int &RowSize)
Read the global number of elements and type for a generic handle object.
void Write(const std::string &GroupName, const std::string &DataSetName, int data)
Write an integer in group GroupName using the given DataSetName.
void ReadHandleProperties(const std::string &GroupName, std::string &Type, int &NumGlobalElements)
Read the global number of elements and type for a generic handle object.
void ReadComment(const std::string &GroupName, std::string &Comment)
Read the string associated with group GroupName.
void ReadMapProperties(const std::string &GroupName, int &NumGlobalElements, int &IndexBase, int &NumProc)
Read basic properties of specified Epetra_Map.
void CreateGroup(const std::string &GroupName)
Create group GroupName.
bool IsContained(std::string Name, std::string GroupName="")
Return true if Name is contained in the database.
bool IsOpen() const
Return true if a file has already been opened using Open()/Create()
void Read(const std::string &GroupName, const std::string &DataSetName, int &data)
Read an integer from group /GroupName/DataSetName.
void WriteComment(const std::string &GroupName, std::string Comment)
Associate string Comment with group GroupName.
const Epetra_Comm & Comm() const
Returns a reference to this object's communicator.
const Epetra_Comm & Comm_
This object's communicator.
void ReadBlockMapProperties(const std::string &GroupName, int &NumGlobalElements, int &NumGlobalPoints, int &IndexBase, int &NumProc)
Read basic properties of specified Epetra_BlockMap.
void Flush()
Flush the content to the file.
void ReadIntVectorProperties(const std::string &GroupName, int &GlobalLength)
Read basic properties of specified Epetra_IntVector.
void ReadCrsGraphProperties(const std::string &GroupName, int &NumGlobalRows, int &NumGlobalCols, int &NumGlobalNonzeros, int &NumGlobalDiagonals, int &MaxNumIndices)
Read basic properties of specified Epetra_CrsGraph.
std::string FileName_
FileName currently open.
bool IsOpen_
If true, a file is currently open.
void Open(const std::string FileName, int AccessType=H5F_ACC_RDWR)
Open specified file with given access type.
class HDF5: A class for storing Epetra objects in parallel binary files
HDF5(const Epetra_Comm &Comm)
Constructor.
hid_t file_id_
file ID for HDF5.
void Close()
Close the file.
void Create(const std::string FileName)
Create a new file.
void ReadIntDistArrayProperties(const std::string &GroupName, int &GlobalLength, int &RowSize)
Read the global number of elements and type for a generic handle object.
void ReadCrsMatrixProperties(const std::string &GroupName, int &NumGlobalRows, int &NumGlobalCols, int &NumNonzeros, int &NumGlobalDiagonals, int &MaxNumEntries, double &NormOne, double &NormInf)
Read basic properties of specified Epetra_CrsMatrix.
void ReadMultiVectorProperties(const std::string &GroupName, int &GlobalLength, int &NumVectors)
Read basic properties of specified Epetra_MultiVector.
DistArray<T>: A class to store row-oriented multivectors of type T.