ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/mdtools/md_code/StatWriter.cpp
Revision: 261
Committed: Mon Feb 3 21:15:59 2003 UTC (21 years, 5 months ago) by chuckv
File size: 1540 byte(s)
Log Message:
We have working code today... MPI bug fixes to DumpWriter.

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 chuckv 261 entry_plug = the_entry_plug;
12    
13 mmeineke 184 #ifdef IS_MPI
14 mmeineke 189 if(worldRank == 0 ){
15 mmeineke 184 #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 chuckv 261
36 mmeineke 184
37     #ifdef IS_MPI
38 mmeineke 10 }
39 chuckv 260
40     sprintf( checkPointMsg,
41     "Sucessfully opened output file for stating.\n");
42     MPIcheckPoint();
43 mmeineke 184 #endif // is_mpi
44 chuckv 261
45     tStats = new Thermo( entry_plug );
46 mmeineke 10 }
47    
48     StatWriter::~StatWriter( ){
49    
50 mmeineke 184 #ifdef IS_MPI
51 mmeineke 189 if(worldRank == 0 ){
52 mmeineke 184 #endif // is_mpi
53    
54     outFile.close();
55     delete tStats;
56    
57     #ifdef IS_MPI
58     }
59     #endif // is_mpi
60 mmeineke 10 }
61    
62     void StatWriter::writeStat( double currentTime ){
63    
64 chuckv 261 double totE, potE, kinE, temp;
65    
66     totE = tStats->getTotalE();
67     potE = tStats->getPotential();
68     kinE = tStats->getKinetic();
69     temp = tStats->getTemperature();
70    
71 mmeineke 184 #ifdef IS_MPI
72 mmeineke 189 if(worldRank == 0 ){
73 mmeineke 184 #endif // is_mpi
74    
75     outFile.precision(8);
76     outFile
77     << currentTime << "\t"
78 chuckv 261 << totE << "\t"
79     << potE << "\t"
80     << kinE << "\t"
81     << temp << "\n";
82 mmeineke 184 outFile.flush();
83    
84     #ifdef IS_MPI
85     }
86     #endif // is_mpi
87 mmeineke 10 }