ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/mdtools/md_code/StatWriter.cpp
Revision: 189
Committed: Tue Nov 26 21:04:43 2002 UTC (21 years, 7 months ago) by mmeineke
File size: 1350 byte(s)
Log Message:
*** empty log message ***

File Contents

# Content
1 #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 #ifdef IS_MPI
12 if(worldRank == 0 ){
13 #endif // is_mpi
14
15 entry_plug = the_entry_plug;
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 tStats = new Thermo( entry_plug );
36
37 #ifdef IS_MPI
38 }
39 #endif // is_mpi
40 }
41
42 StatWriter::~StatWriter( ){
43
44 #ifdef IS_MPI
45 if(worldRank == 0 ){
46 #endif // is_mpi
47
48 outFile.close();
49 delete tStats;
50
51 #ifdef IS_MPI
52 }
53 #endif // is_mpi
54 }
55
56 void StatWriter::writeStat( double currentTime ){
57
58 #ifdef IS_MPI
59 if(worldRank == 0 ){
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 }