ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE/libmdtools/ReadWrite.hpp
Revision: 837
Committed: Wed Oct 29 00:19:10 2003 UTC (20 years, 8 months ago) by tim
File size: 2241 byte(s)
Log Message:
add chi and eta to the comment line of dump file.

File Contents

# Content
1 #ifndef __READWRITE_H__
2 #define __READWRITE_H__
3
4 #include <iostream>
5 #include <fstream>
6
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:
60 DumpWriter( SimInfo* the_entry_plug );
61 ~DumpWriter();
62
63 void writeDump( double currentTime );
64 void writeFinal( double finalTime );
65
66 private:
67 SimInfo* entry_plug;
68 ofstream outFile;
69 char outName[500];
70 };
71
72 class StatWriter{
73
74 public:
75 StatWriter( SimInfo* the_entry_plug );
76 ~StatWriter();
77
78 void writeStat( double currentTime );
79
80 private:
81
82 SimInfo* entry_plug;
83 ofstream outFile;
84 char outName[500];
85 Thermo* tStats;
86
87 };
88
89 class InitializeFromFile{
90
91 public:
92 InitializeFromFile( char *in_name );
93 ~InitializeFromFile();
94
95 void readInit( SimInfo* the_entry_plug );
96
97 private:
98 char* parseDumpLine(char* line, int atomIndex);
99 char* parseCommentLine(char* line, SimInfo* entry_plug);
100 FILE *c_in_file;
101 char c_in_name[500];
102 SimInfo* simnfo;
103 };
104
105 class DumpReader{
106
107 public:
108 DumpReader( char *in_name );
109 ~DumpReader();
110
111 int getNframes();
112 void scanFile( void );
113
114 void getNextFrame() {}
115 void readFrame(SimInfo* the_simnfo, int whichFrame);
116
117 private:
118
119 void readSet( int whichFrame );
120 char* parseDumpLine(char* line, int atomIndex);
121 char* parseCommentLine(char* line, double &time, double boxMat[9] );
122 FILE *inFile;
123 char inName[500];
124 bool isScanned;
125 int nFrames;
126
127 FilePos** frameStart;
128 FilePos* headFP;
129
130 SimInfo *simnfo;
131 };
132
133
134
135 #endif