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: 1725
Committed: Wed Nov 10 22:01:06 2004 UTC (19 years, 8 months ago) by tim
File size: 1650 byte(s)
Log Message:
another painful day
(1) SimCreator, SimInfo, mpiSimulation
(2) DumpReader, DumpWriter (InitializeFrom File will be removed)
(3) ForceField (at least LJ) and BondType, BendType, TorsionType
(4)Integrator
(5)oopse.cpp
(6)visitors & Dump2XYZ
(7)SimpleBuilder
(8)Constraint & ZConstraint

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     statfile_ << "#time (fs)"
56     for (int i =0; i < mask_.size(); ++i) {
57     if (mask_[i]) {
58     statfile_ << "\t" << Stats::getTitle(i);
59     }
60     }
61     statfile_ << std::endl;
62    
63 gezelter 1490 #ifdef IS_MPI
64 tim 1721 }
65     #endif // is_mpi
66     }
67    
68     void StatWriter::writeStat(Snapshot* s){
69    
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 statfile_ << s->getTimeStamp();
77     for (int i =0; i < mask_.size(); ++i) {
78     if (mask_[i]) {
79     statfile_ << "\t" << s->statData[i];
80     }
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