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 572 by mmeineke, Wed Jul 2 21:26:55 2003 UTC vs.
Revision 1074 by tim, Mon Mar 1 20:01:50 2004 UTC

# Line 4 | Line 4
4   #include <iostream>
5   #include <fstream>
6  
7 < #include <cstring>
8 < #include <cstdio>
9 < #include <cstdlib>
7 > #include <string.h>
8 > #include <stdio.h>
9 > #include <stdlib.h>
10 > #include <unistd.h>
11 > #include <sys/types.h>
12 > #include <sys/stat.h>
13  
14 +
15   #include "Atom.hpp"
16   #include "SimInfo.hpp"
17   #include "Thermo.hpp"
18  
19   using namespace std;
20  
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 +
57   class DumpWriter{
58  
59   public:
# Line 21 | Line 61 | class DumpWriter{ (public)
61    ~DumpWriter();
62  
63    void writeDump( double currentTime );
64 <  void writeFinal( double finalTime );
64 >  void writeFinal( double currentTime);
65 >  void writeFrame( vector<ofstream*>& outFile, double finalTime );
66  
67 + #ifdef IS_MPI
68 +  void update();
69 + #endif
70 +
71   private:
72 +
73 + #ifdef IS_MPI
74 +  void sortByGlobalIndex();
75 + #endif
76 +
77    SimInfo* entry_plug;
78 <  ofstream outFile;
79 <  char outName[500];
78 >  ofstream dumpFile;
79 >
80 > #ifdef IS_MPI
81 >  vector<pair<int, int> > indexArray;
82 > #endif
83   };
84  
85   class StatWriter{
# Line 36 | Line 89 | class StatWriter{ (public)
89    ~StatWriter();
90  
91    void writeStat( double currentTime );
92 <  
92 >
93   private:
94 <  
94 >
95    SimInfo* entry_plug;
96    ofstream outFile;
97    char outName[500];
# Line 52 | Line 105 | class InitializeFromFile{ (public)
105    InitializeFromFile( char *in_name );
106    ~InitializeFromFile();
107  
108 <  void read_xyz( SimInfo* the_entry_plug );
109 <  
108 >  void readInit( SimInfo* the_entry_plug );
109 >
110   private:
111    char* parseDumpLine(char* line, int atomIndex);
112 +  char* parseCommentLine(char* line, SimInfo* entry_plug);
113    FILE *c_in_file;
114    char c_in_name[500];
115 <  SimInfo* entry_plug;
115 >  SimInfo* simnfo;
116   };
117  
118 + class DumpReader{
119  
120 + public:
121 +  DumpReader(const char *in_name );
122 +  ~DumpReader();
123  
124 +  int getNframes();
125 +  void scanFile( void );
126 +
127 +  void getNextFrame() {}
128 +  void readFrame(SimInfo* the_simnfo, int whichFrame);
129 +
130 + private:
131 +
132 +  void readSet( int whichFrame );
133 +  char* parseDumpLine(char* line, int atomIndex);
134 +  char* parseCommentLine(char* line, double &time, double boxMat[9] );
135 +  FILE *inFile;
136 +  char inName[500];
137 +  bool isScanned;
138 +  int nFrames;
139 +
140 +  FilePos** frameStart;
141 +  FilePos* headFP;
142 +
143 +  SimInfo *simnfo;
144 + };
145 +
146 +
147 +
148   #endif

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines