00001
00014 #ifndef H5_TOOLS_H
00015 #define H5_TOOLS_H
00016
00017 #include <string>
00018 #include "colarray/matrix.h"
00019 #include "colarray/vector.h"
00020 #include "tetmesh.h"
00021 #include "femaxmesh.h"
00022 #include "nedelecmesh.h"
00023
00024
00025 namespace Teuchos {
00026 class ParameterList;
00027 }
00028 class Epetra_MultiVector;
00029 class Epetra_SerialDenseVector;
00030
00034 void h5_create_empty_file(const std::string& file_name);
00035
00039 void h5_write_param_list(const std::string& file_name, const Teuchos::ParameterList& params);
00040
00046 void h5_read_param_list(const std::string& file_name, Teuchos::ParameterList& params);
00047
00053 void h5_write_eigenmodes(const std::string& file_name, const Epetra_MultiVector& Q, const Epetra_SerialDenseVector& lambda);
00054
00055 void h5_read_eigenmodes(const std::string& file_name,
00056 colarray::Matrix<double>& Q,
00057 colarray::ColumnVector<double>& lambda);
00058
00060 void h5_read_eigenmesh(const std::string& file_name);
00061
00063 void h5_write_eigenmesh(const std::string& file_name, const Epetra_Comm& comm, mesh::TetMesh* tetmesh);
00064
00066 void h5_write_eigenpoint(const std::string& file_name, const Epetra_Comm& comm, mesh::TetMesh* tetmesh);
00067
00078 void h5_write_eigenfield(const std::string& file_name, const Epetra_Comm& comm,
00079 mesh::TetMesh* tetmesh, NedelecMesh& nedelecmesh,
00080 const Epetra_MultiVector& Q, double* lambda);
00081
00083 void h5_write_eigenvalue(const std::string& file_name, const Epetra_Comm& comm,
00084 mesh::TetMesh* tetmesh, NedelecMesh& nedelecmesh,
00085 const Epetra_MultiVector& Q, double* lambda);
00086
00088 void h5_cartesian_sampling(const std::string& file_name, const Epetra_Comm& comm,
00089 mesh::TetMesh* tetmesh, NedelecMesh& nedelecmesh,
00090 const Epetra_MultiVector& Q, double* lambda,
00091 double xmin, double xmax, const int nx,
00092 double ymin, double ymax, const int ny,
00093 double zmin, double zmax, const int nz);
00094
00102 void h5_cartesian_sampling_write_hdf5(const Epetra_Comm& comm, const std::string& file_name, unsigned int nmode,
00103 std::vector<std::vector<std::vector<unsigned int> > >& exists,
00104 std::vector<std::vector<std::vector<std::vector<mesh::Vector3> > > >& efield,
00105 std::vector<std::vector<std::vector<std::vector<mesh::Vector3> > > >& hfield,
00106 double xmin, double xmax, const int nx,
00107 double ymin, double ymax, const int ny,
00108 double zmin, double zmax, const int nz);
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119 #endif