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

Comparing trunk/OOPSE/libmdtools/StatWriter.cpp (file contents):
Revision 378 by mmeineke, Fri Mar 21 17:42:12 2003 UTC vs.
Revision 1207 by chrisfen, Thu May 27 20:06:38 2004 UTC

# Line 1 | Line 1
1 < #include <cstring>
1 > #define _LARGEFILE_SOURCE64
2 > #define _FILE_OFFSET_BITS 64
3 >
4 > #include <string.h>
5   #include <iostream>
6   #include <fstream>
7  
# Line 15 | Line 18 | StatWriter::StatWriter( SimInfo* the_entry_plug ){
18   #endif // is_mpi
19  
20      strcpy( outName, entry_plug->statusName );
21 <    
19 <    std::cerr << "Opening " << outName << " for stat\n";
21 >    strcpy( rawName, entry_plug->rawPotName );
22  
23 +    //std::cerr << "Opening " << outName << " for stat\n";
24 +
25      outFile.open(outName, ios::out | ios::trunc );
26      
27      if( !outFile ){
# Line 28 | Line 32 | StatWriter::StatWriter( SimInfo* the_entry_plug ){
32        painCave.isFatal = 1;
33        simError();
34      }
35 <    
35 >
36      //outFile.setf( ios::scientific );
37 <    outFile << "#time(fs)\ttot_E\tpotential\tkinetic\ttemperature\n";
37 >    outFile << "#time(fs)\ttot_E\tpotential\tkinetic\ttemperature\tpressure\tvolume\tconserved quantity\n";
38      
39 <
39 >    if (entry_plug->useThermInt) {
40 >      rawFile.open(rawName, ios::out | ios::trunc );
41 >      
42 >      if( !rawFile ){
43 >        
44 >        sprintf( painCave.errMsg,
45 >                 "Could not open \"%s\" for stat output.\n",
46 >                 rawName);
47 >        painCave.isFatal = 1;
48 >        simError();
49 >      }
50 >      
51 >      rawFile << "#time(fs)\tRaw Pot\t Raw Harm\n";
52 >    }
53  
54   #ifdef IS_MPI
55    }
# Line 52 | Line 69 | StatWriter::~StatWriter( ){
69   #endif // is_mpi
70  
71      outFile.close();
72 +    rawFile.close();
73      delete tStats;
74  
75   #ifdef IS_MPI
# Line 61 | Line 79 | void StatWriter::writeStat( double currentTime ){
79  
80   void StatWriter::writeStat( double currentTime ){
81  
82 <  double totE, potE, kinE, temp;
82 >  double totE, potE, kinE, temp, press, vol;
83 >  double conservedQuantity;
84  
85    totE = tStats->getTotalE();
86    potE = tStats->getPotential();
87    kinE = tStats->getKinetic();
88    temp = tStats->getTemperature();
89 <
89 >  press = tStats->getPressure();
90 >  vol = tStats->getVolume();
91 >  conservedQuantity = entry_plug->the_integrator->getConservedQuantity();
92   #ifdef IS_MPI
93    if(worldRank == 0 ){
94   #endif // is_mpi
# Line 78 | Line 99 | void StatWriter::writeStat( double currentTime ){
99        << totE << "\t"
100        << potE << "\t"
101        << kinE << "\t"
102 <      << temp << "\n";
102 >      << temp << "\t"
103 >      << press << "\t"
104 >      << vol << "\t"
105 >      << conservedQuantity << "\n";
106 >
107      outFile.flush();
108  
109   #ifdef IS_MPI
110    }
111   #endif // is_mpi
112   }
113 +
114 + void StatWriter::writeRaw( double currentTime ){
115 +
116 +  double rawPot, rawHarm;
117 +
118 +  rawPot = entry_plug->vRaw;
119 +  rawHarm = entry_plug->vHarm;
120 +
121 + #ifdef IS_MPI
122 +  if(worldRank == 0 ){
123 + #endif // is_mpi
124 +
125 +    rawFile.precision(8);
126 +    rawFile
127 +      << currentTime << "\t"
128 +      << rawPot << "\t"
129 +      << rawHarm << "\n";
130 +
131 +    rawFile.flush();
132 +
133 + #ifdef IS_MPI
134 +  }
135 + #endif // is_mpi
136 + }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines