ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE/libmdtools/ReadWrite.hpp
(Generate patch)

Comparing trunk/OOPSE/libmdtools/ReadWrite.hpp (file contents):
Revision 830 by gezelter, Tue Oct 28 16:20:28 2003 UTC vs.
Revision 1180 by chrisfen, Thu May 20 20:24:07 2004 UTC

# Line 1 | Line 1
1   #ifndef __READWRITE_H__
2   #define __READWRITE_H__
3 <
3 > #define _LARGEFILE_SOURCE64
4 > #define _FILE_OFFSET_BITS 64
5   #include <iostream>
6   #include <fstream>
7 <
7 > #include <string>
8   #include <string.h>
9   #include <stdio.h>
10   #include <stdlib.h>
# Line 15 | Line 16
16   #include "Atom.hpp"
17   #include "SimInfo.hpp"
18   #include "Thermo.hpp"
19 + #include "StuntDouble.hpp"
20  
21   using namespace std;
22  
21 class FilePos{
22  
23 public:
24  FilePos(){
25    myPos = NULL;
26    next = NULL;
27  }
28  FilePos( fpos_t* thePos ) {
29    myPos = thePos;
30    next = NULL;
31  }
32  ~FilePos(){
33    if( next  != NULL ) delete next;
34    if( myPos != NULL ) delete myPos;
35  }
36  
37  void add( fpos_t *thePos ){
38    if( next != NULL )
39      next->add( thePos );
40    else
41      next = new FilePos( thePos );
42  }
43  
44  FilePos &operator=(fpos_t *thePos){ myPos = thePos; return *this; }
45  
46  void setPos( fpos_t *thePos ){ myPos = thePos; }
47  fpos_t *getPos( void ){ return myPos; }
48  
49  FilePos* getNext( void ) { return next; }
50 private:
51  
52  fpos_t *myPos;
53  FilePos* next;
54  
55 };
56
23   class DumpWriter{
24  
25   public:
# Line 61 | Line 27 | class DumpWriter{ (public)
27    ~DumpWriter();
28  
29    void writeDump( double currentTime );
30 <  void writeFinal( double finalTime );
30 >  void writeFinal( double currentTime);
31 >  void writeFrame( vector<ofstream*>& outFile, double finalTime );
32  
33 + #ifdef IS_MPI
34 +  void update();
35 + #endif
36 +
37   private:
38 +
39 + #ifdef IS_MPI
40 +  void sortByGlobalIndex();
41 + #endif
42 +
43    SimInfo* entry_plug;
44 <  ofstream outFile;
45 <  char outName[500];
44 >  ofstream dumpFile;
45 >
46 > #ifdef IS_MPI
47 >  vector<pair<int, int> > indexArray;
48 > #endif
49   };
50  
51   class StatWriter{
# Line 76 | Line 55 | class StatWriter{ (public)
55    ~StatWriter();
56  
57    void writeStat( double currentTime );
58 <  
58 >  void writeRaw( double currentTime );
59 >
60   private:
61 <  
61 >
62    SimInfo* entry_plug;
63    ofstream outFile;
64 +  ofstream rawFile;
65    char outName[500];
66 +  char rawName[500];
67    Thermo* tStats;
68  
69   };
# Line 93 | Line 75 | class InitializeFromFile{ (public)
75    ~InitializeFromFile();
76  
77    void readInit( SimInfo* the_entry_plug );
78 <  
78 >
79   private:
80 <  char* parseDumpLine(char* line, int atomIndex);
81 <  char* parseBoxLine(char* line, double boxMat[9], double &time );
80 >  char* parseDumpLine(char* line, StuntDouble* sd);
81 >  char* parseCommentLine(char* line, SimInfo* entry_plug);
82    FILE *c_in_file;
83    char c_in_name[500];
84    SimInfo* simnfo;
# Line 105 | Line 87 | class DumpReader{ (public)
87   class DumpReader{
88  
89   public:
90 <  DumpReader( char *in_name );
90 >  DumpReader(const char *in_name );
91    ~DumpReader();
92  
93    int getNframes();
# Line 114 | Line 96 | class DumpReader{ (public)
96    void getNextFrame() {}
97    void readFrame(SimInfo* the_simnfo, int whichFrame);
98  
99 + #ifdef IS_MPI
100 +  void anonymousNodeDie( void );
101 +  void nodeZeroError( void );
102 + #endif
103   private:
104  
105    void readSet( int whichFrame );
106 <  char* parseDumpLine(char* line, int atomIndex);
107 <  char* parseCommentLine(char* line, double &time, double boxMat[9] );
106 >  char* parseDumpLine(char* readLine, StuntDouble* sd);
107 >  char* parseCommentLine(char* readLine, SimInfo* entry_plug);
108    FILE *inFile;
109 <  char inName[500];
109 >  string inFileName;
110    bool isScanned;
125  int nFrames;
126  
127  FilePos** frameStart;
128  FilePos* headFP;
111  
112 +  vector<fpos_t*> framePos;
113    SimInfo *simnfo;
114   };
115  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines