ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/mdtools/md_code/StatWriter.cpp
Revision: 184
Committed: Thu Nov 21 20:33:06 2002 UTC (21 years, 8 months ago) by mmeineke
File size: 1374 byte(s)
Log Message:
*** empty log message ***

File Contents

# User Rev Content
1 mmeineke 10 #include <cstring>
2     #include <iostream>
3     #include <fstream>
4    
5     #include "ReadWrite.hpp"
6 mmeineke 162 #include "simError.h"
7 mmeineke 10
8    
9     StatWriter::StatWriter( SimInfo* the_entry_plug ){
10    
11 mmeineke 184 #ifdef IS_MPI
12     if(worldRank == TESTWRITE ){
13     #endif // is_mpi
14    
15     entry_plug = the_entry_plug;
16 mmeineke 10
17 mmeineke 184 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     tStats = new Thermo( entry_plug );
36    
37     #ifdef IS_MPI
38 mmeineke 10 }
39 mmeineke 184 #endif // is_mpi
40 mmeineke 10 }
41    
42     StatWriter::~StatWriter( ){
43    
44 mmeineke 184 #ifdef IS_MPI
45     if(worldRank == TESTWRITE ){
46     #endif // is_mpi
47    
48     outFile.close();
49     delete tStats;
50    
51     #ifdef IS_MPI
52     }
53     #endif // is_mpi
54 mmeineke 10 }
55    
56     void StatWriter::writeStat( double currentTime ){
57    
58 mmeineke 184 #ifdef IS_MPI
59     if(worldRank == TESTWRITE ){
60     #endif // is_mpi
61    
62     outFile.precision(8);
63     outFile
64     << currentTime << "\t"
65     << tStats->getTotalE() << "\t"
66     << tStats->getPotential() << "\t"
67     << tStats->getKinetic() << "\t"
68     << tStats->getTemperature() << "\n";
69     outFile.flush();
70    
71     #ifdef IS_MPI
72     }
73     #endif // is_mpi
74 mmeineke 10 }