ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE/libmdtools/StatWriter.cpp
Revision: 377
Committed: Fri Mar 21 17:42:12 2003 UTC (21 years, 3 months ago) by mmeineke
Original Path: branches/mmeineke/OOPSE/libmdtools/StatWriter.cpp
File size: 1540 byte(s)
Log Message:
New OOPSE Tree

File Contents

# User Rev Content
1 mmeineke 377 #include <cstring>
2     #include <iostream>
3     #include <fstream>
4    
5     #include "ReadWrite.hpp"
6     #include "simError.h"
7    
8    
9     StatWriter::StatWriter( SimInfo* the_entry_plug ){
10    
11     entry_plug = the_entry_plug;
12    
13     #ifdef IS_MPI
14     if(worldRank == 0 ){
15     #endif // is_mpi
16    
17     strcpy( outName, entry_plug->statusName );
18    
19     std::cerr << "Opening " << outName << " for stat\n";
20    
21     outFile.open(outName, ios::out | ios::trunc );
22    
23     if( !outFile ){
24    
25     sprintf( painCave.errMsg,
26     "Could not open \"%s\" for stat output.\n",
27     outName);
28     painCave.isFatal = 1;
29     simError();
30     }
31    
32     //outFile.setf( ios::scientific );
33     outFile << "#time(fs)\ttot_E\tpotential\tkinetic\ttemperature\n";
34    
35    
36    
37     #ifdef IS_MPI
38     }
39    
40     sprintf( checkPointMsg,
41     "Sucessfully opened output file for stating.\n");
42     MPIcheckPoint();
43     #endif // is_mpi
44    
45     tStats = new Thermo( entry_plug );
46     }
47    
48     StatWriter::~StatWriter( ){
49    
50     #ifdef IS_MPI
51     if(worldRank == 0 ){
52     #endif // is_mpi
53    
54     outFile.close();
55     delete tStats;
56    
57     #ifdef IS_MPI
58     }
59     #endif // is_mpi
60     }
61    
62     void StatWriter::writeStat( double currentTime ){
63    
64     double totE, potE, kinE, temp;
65    
66     totE = tStats->getTotalE();
67     potE = tStats->getPotential();
68     kinE = tStats->getKinetic();
69     temp = tStats->getTemperature();
70    
71     #ifdef IS_MPI
72     if(worldRank == 0 ){
73     #endif // is_mpi
74    
75     outFile.precision(8);
76     outFile
77     << currentTime << "\t"
78     << totE << "\t"
79     << potE << "\t"
80     << kinE << "\t"
81     << temp << "\n";
82     outFile.flush();
83    
84     #ifdef IS_MPI
85     }
86     #endif // is_mpi
87     }