consecutive_snapshots.cpp
2 #include "../../misc/simple_io.hpp"
3 #include "../../misc/int2str.hpp"
4 #include "../two_dimensional/hdf5_diagnostics.hpp"
5 
7  Index2FileName* i2fn):
8  trigger_(trigger), i2fn_(i2fn), counter_(0), appendices_() {}
9 
11  Index2FileName* i2fn,
12  const vector<DiagnosticAppendix*>& appendices):
13  trigger_(trigger), i2fn_(i2fn), counter_(0), appendices_(appendices) {}
14 
16 {
17  if((*trigger_.get())(sim)){
18  write_snapshot_to_hdf5(sim, (*i2fn_.get())(counter_), appendices_);
19  ++counter_;
20  }
21 }
22 
23 ConsecutiveSnapshots::~ConsecutiveSnapshots(void)
24 {
25  for(size_t i=0;i<appendices_.size();++i)
26  delete appendices_[i];
27 }
Newtonian hydrodynamic simulation.
Definition: hdsim2d.hpp:43
void write_snapshot_to_hdf5(hdsim const &sim, string const &fname, const vector< DiagnosticAppendix *> &appendices=vector< DiagnosticAppendix *>())
Writes the simulation data into an HDF5 file.
ConsecutiveSnapshots(Trigger *trigger, Index2FileName *i2fn)
Class constructor.
A diagnostics class that writes snapshots at regular intervals.
Class for generating sequential file names.
void operator()(const hdsim &sim)
Perform diagnostics.
Abstract class for triggering events.
Definition: trigger.hpp:12