ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/branches/new_design/OOPSE-2.0/src/io/StatWriter.cpp
Revision: 1819
Committed: Wed Dec 1 22:45:49 2004 UTC (19 years, 7 months ago) by tim
File size: 1643 byte(s)
Log Message:
rename DumpWrite to DumpWriter

File Contents

# User Rev Content
1 gezelter 1490 #define _LARGEFILE_SOURCE64
2     #define _FILE_OFFSET_BITS 64
3    
4 tim 1721 #include "io/StatWriter.hpp"
5 tim 1492 #include "utils/simError.h"
6 gezelter 1490
7 tim 1808 namespace oopse {
8     StatWriter::StatWriter( const std::string& filename, const StatsBitSet& mask) : mask_(mask){
9 gezelter 1490
10     #ifdef IS_MPI
11     if(worldRank == 0 ){
12     #endif // is_mpi
13    
14 tim 1808 statfile_.open(filename.c_str(), std::ios::out | std::ios::trunc );
15 gezelter 1490
16 tim 1721 if( !statfile_ ){
17 gezelter 1490
18     sprintf( painCave.errMsg,
19 tim 1721 "Could not open \"%s\" for stat output.\n",
20     filename.c_str());
21 gezelter 1490 painCave.isFatal = 1;
22     simError();
23     }
24    
25     #ifdef IS_MPI
26     }
27    
28     sprintf( checkPointMsg,
29 tim 1721 "Sucessfully opened output file for stating.\n");
30 gezelter 1490 MPIcheckPoint();
31     #endif // is_mpi
32    
33     }
34    
35     StatWriter::~StatWriter( ){
36    
37     #ifdef IS_MPI
38     if(worldRank == 0 ){
39     #endif // is_mpi
40    
41 tim 1721 statfile_.close();
42 gezelter 1490
43     #ifdef IS_MPI
44     }
45     #endif // is_mpi
46     }
47    
48 tim 1721 void StatWriter::writeTitle() {
49 gezelter 1490
50    
51 tim 1721 #ifdef IS_MPI
52     if(worldRank == 0 ){
53     #endif // is_mpi
54 gezelter 1490
55 tim 1721 //write title
56 tim 1808 statfile_ << "#";
57     for (int i =0; i < mask_.size(); ++i) {
58     if (mask_[i]) {
59     statfile_ << "\t" << Stats::getTitle(i) << "(" << Stats::getUnits(i) << ")";
60 tim 1721 }
61 tim 1808 }
62 tim 1721 statfile_ << std::endl;
63    
64 gezelter 1490 #ifdef IS_MPI
65 tim 1721 }
66     #endif // is_mpi
67     }
68    
69 tim 1819 void StatWriter::writeStat(const Stats& s){
70 tim 1721
71     #ifdef IS_MPI
72     if(worldRank == 0 ){
73 gezelter 1490 #endif // is_mpi
74    
75 tim 1721 statfile_.precision(8);
76 gezelter 1490
77 tim 1721 for (int i =0; i < mask_.size(); ++i) {
78     if (mask_[i]) {
79 tim 1819 statfile_ << "\t" << s[i];
80 tim 1721 }
81     }
82     statfile_ << std::endl;
83 gezelter 1490
84 tim 1721 statfile_.flush();
85 gezelter 1490
86     #ifdef IS_MPI
87 tim 1721 }
88 gezelter 1490 #endif // is_mpi
89     }
90    
91 tim 1808 }