OPAL (Object Oriented Parallel Accelerator Library)  2021.1.99
OPAL
H5Writer.h
Go to the documentation of this file.
1 //
2 // Class H5Writer
3 // Interface for H5 writers.
4 //
5 // Copyright (c) 2019-2020, Matthias Frey, Paul Scherrer Institut, Villigen PSI, Switzerland
6 // All rights reserved
7 //
8 // This file is part of OPAL.
9 //
10 // OPAL is free software: you can redistribute it and/or modify
11 // it under the terms of the GNU General Public License as published by
12 // the Free Software Foundation, either version 3 of the License, or
13 // (at your option) any later version.
14 //
15 // You should have received a copy of the GNU General Public License
16 // along with OPAL. If not, see <https://www.gnu.org/licenses/>.
17 //
18 #ifndef OPAL_H5_WRITER_H
19 #define OPAL_H5_WRITER_H
20 
23 #include "H5hut.h"
24 
25 class H5Writer {
26 
27 public:
28 
29  H5Writer(H5PartWrapper* h5wrapper, bool restart);
30 
31  void close();
32 
33  void changeH5Wrapper(H5PartWrapper *h5wrapper);
34 
35 
37 
38  double getLastPosition();
39 
53 
68  int writePhaseSpace(PartBunchBase<double, 3> *beam, Vector_t FDext[], double E,
69  double refPr, double refPt, double refPz,
70  double refR, double refTheta, double refZ,
71  double azimuth, double elevation, bool local);
72 
73 private:
76 
78 
80  int H5call_m;
81 };
82 
83 
84 inline
86  h5wrapper_m->close();
87 }
88 
89 
90 inline
92  h5wrapper_m = h5wrapper;
93 }
94 
95 
96 inline
99 }
100 
101 
102 inline
104  return h5wrapper_m->getLastPosition();
105 }
106 
107 #endif
void storeCavityInformation()
double getLastPosition()
Definition: H5PartWrapper.h:89
void close()
Definition: H5Writer.h:85
IpplTimings::TimerRef H5PartTimer_m
Timer to track particle data/H5 file write time.
Definition: H5Writer.h:75
H5Writer(H5PartWrapper *h5wrapper, bool restart)
Definition: H5Writer.cpp:20
void storeCavityInformation()
Definition: H5Writer.h:97
H5PartWrapper * h5wrapper_m
Definition: H5Writer.h:77
void writePhaseSpace(PartBunchBase< double, 3 > *beam, Vector_t FDext[])
Dumps Phase Space to H5 file.
Definition: H5Writer.cpp:32
double getLastPosition()
Definition: H5Writer.h:103
int H5call_m
Current record, or time step, of H5 file.
Definition: H5Writer.h:80
void changeH5Wrapper(H5PartWrapper *h5wrapper)
Definition: H5Writer.h:91
Timing::TimerRef TimerRef
Definition: IpplTimings.h:176