00001 #ifndef TEXTMESHREADER_H
00002 #define TEXTMESHREADER_H
00003
00004 #include "SundanceDefs.h"
00005
00006 #include "MeshReader.h"
00007
00008
00009 namespace Sundance
00010 {
00011
00012 using namespace TSF;
00013 using std::string;
00014
00015 using std::ostream;
00016
00017
00018
00019
00020
00021 class TextMeshReader : public MeshReaderBase
00022 {
00023 public:
00024 TextMeshReader(const string& filename, const MPIComm& comm) ;
00025
00026 virtual Mesh getMesh() const ;
00027 virtual Mesh gatherMesh(int numProcs) const ;
00028
00029 private:
00030 CellFactory cellFactoryFactory(const TSFArray<string>& tokens,
00031 int& labelIndex,
00032 int& globalIndex,
00033 int& ownerProcID) const ;
00034 void readCell(const TSFArray<string>& tokens, int nNodes,
00035 TSFArray<int>& nodes, int& labelIndex,
00036 int& globalIndex,
00037 int& ownerProcID) const ;
00038
00039 string filename_;
00040 int rank_;
00041 int nProc_;
00042 };
00043
00044
00045 }
00046 #endif