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: 1727
Committed: Thu Nov 11 16:41:58 2004 UTC (19 years, 8 months ago) by tim
File size: 1633 byte(s)
Log Message:
add Snapshot.cpp, remove useless mpiSimulation

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