src/h5_tools.h

Go to the documentation of this file.
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 // forward declarations
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

Generated on Fri Oct 26 13:35:12 2007 for FEMAXX (Finite Element Maxwell Eigensolver) by  doxygen 1.4.7