00001 #include <iostream> 00002 #include "mpi.h" 00003 #include "HDF5ParallelReader.h" 00004 #include "pbe.h" 00005 00006 using namespace std; 00007 00008 int main (int argc, char **argv) { 00009 00010 #ifdef __GNUC__ 00011 std::set_terminate (__gnu_cxx::__verbose_terminate_handler); 00012 #endif 00013 00014 MPI_Comm comm; 00015 int mpi_rank; 00016 char* inputFile; 00017 char* outputFile; 00018 00019 MPI_Init(&argc, &argv); 00020 comm = MPI_COMM_WORLD; 00021 MPI_Comm_rank(comm, &mpi_rank); 00022 00023 00024 if (argc == 2) { 00025 inputFile = argv[1]; 00026 } else if (argc == 3) { 00027 inputFile = argv[1]; 00028 outputFile = argv[2]; 00029 } else { 00030 if (mpi_rank == 0) 00031 cout << "Usage: hdf5_parallel_read inputfile.h5 [outputfile.vtk]" << endl; 00032 return 0; 00033 } 00034 00035 TetMeshBuilder* builder = new TetMeshBuilder(comm); 00036 HDF5ParallelReader* reader = new HDF5ParallelReader(inputFile, builder, comm); 00037 00038 reader->read(); 00039 00040 if (argc == 3) 00041 reader->export_dist(outputFile); 00042 00043 MPI_Finalize(); 00044 00045 return 0; 00046 }