Version: SMASH-2.0
smash::VtkOutput Class Reference

#include <vtkoutput.h>

SMASH output in a paraview format, intended for simple visualization.

Definition at line 29 of file vtkoutput.h.

Inheritance diagram for smash::VtkOutput:
[legend]
Collaboration diagram for smash::VtkOutput:
[legend]

Public Member Functions

 VtkOutput (const bf::path &path, const std::string &name, const OutputParameters &out_par)
 Create a new VTK output. More...
 
 ~VtkOutput ()
 
void at_eventstart (const Particles &particles, const int event_number, const EventInfo &event) override
 Writes the initial particle information list of an event to the VTK output. More...
 
void at_eventend (const Particles &particles, const int event_number, const EventInfo &event) override
 Writes the final particle information list of an event to the VTK output. More...
 
void at_intermediate_time (const Particles &particles, const std::unique_ptr< Clock > &clock, const DensityParameters &dens_param, const EventInfo &event) override
 Writes out all current particles. More...
 
void thermodynamics_output (const ThermodynamicQuantity tq, const DensityType dt, RectangularLattice< DensityOnLattice > &lattice) override
 Prints the density lattice in VTK format on a grid. More...
 
void thermodynamics_output (const ThermodynamicQuantity tq, const DensityType dt, RectangularLattice< EnergyMomentumTensor > &lattice) override
 Prints the energy-momentum-tensor lattice in VTK format on a grid. More...
 
void thermodynamics_output (const GrandCanThermalizer &gct) override
 Printout of all thermodynamic quantities from the thermalizer class. More...
 
- Public Member Functions inherited from smash::OutputInterface
 OutputInterface (std::string name)
 Construct output interface. More...
 
virtual ~OutputInterface ()=default
 
virtual void at_interaction (const Action &action, const double density)
 Called whenever an action modified one or more particles. More...
 
bool is_dilepton_output () const
 Get, whether this is the dilepton output? More...
 
bool is_photon_output () const
 Get, whether this is the photon output? More...
 
bool is_IC_output () const
 Get, whether this is the IC output? More...
 
const char * to_string (const ThermodynamicQuantity tq)
 Convert thermodynamic quantities to strings. More...
 
const char * to_string (const DensityType dens_type)
 Convert density types to strings. More...
 

Private Member Functions

void write (const Particles &particles)
 Write the given particles to the output. More...
 
std::string make_filename (const std::string &description, int counter)
 Make a file name given a description and a counter. More...
 
std::string make_varname (const ThermodynamicQuantity tq, const DensityType dens_type)
 Make a variable name given quantity and density type. More...
 
template<typename T >
void write_vtk_header (std::ofstream &file, RectangularLattice< T > &lat, const std::string &description)
 Write the VTK header. More...
 
template<typename T , typename F >
void write_vtk_scalar (std::ofstream &file, RectangularLattice< T > &lat, const std::string &varname, F &&function)
 Write a VTK scalar. More...
 
template<typename T , typename F >
void write_vtk_vector (std::ofstream &file, RectangularLattice< T > &lat, const std::string &varname, F &&function)
 Write a VTK vector. More...
 

Private Attributes

const bf::path base_path_
 filesystem path for output More...
 
int current_event_ = 0
 Event number. More...
 
int vtk_output_counter_ = 0
 Number of vtk output in current event. More...
 
int vtk_density_output_counter_ = 0
 Number of density lattice vtk output in current event. More...
 
int vtk_tmn_output_counter_ = 0
 Number of energy-momentum tensor lattice vtk output in current event. More...
 
int vtk_tmn_landau_output_counter_ = 0
 Number of Landau frame energy-momentum tensor vtk output in current event. More...
 
int vtk_v_landau_output_counter_ = 0
 Number of Landau rest frame velocity vtk output in current event. More...
 
int vtk_fluidization_counter_ = 0
 Number of fluidization output. More...
 
bool is_thermodynamics_output_
 Is the VTK output a thermodynamics output. More...
 

Additional Inherited Members

- Protected Attributes inherited from smash::OutputInterface
const bool is_dilepton_output_
 Is this the dilepton output? More...
 
const bool is_photon_output_
 Is this the photon output? More...
 
const bool is_IC_output_
 Is this the IC output? More...
 

Constructor & Destructor Documentation

◆ VtkOutput()

smash::VtkOutput::VtkOutput ( const bf::path &  path,
const std::string &  name,
const OutputParameters out_par 
)

Create a new VTK output.

Parameters
pathPath to the output file.
nameName of the output.
out_parAdditional information on the configured output.

Definition at line 23 of file vtkoutput.cc.

25  : OutputInterface(name),
26  base_path_(std::move(path)),
27  is_thermodynamics_output_(name == "Thermodynamics") {
28  if (out_par.part_extended) {
29  logg[LOutput].warn()
30  << "Creating VTK output: There is no extended VTK format.";
31  }
32 }

◆ ~VtkOutput()

smash::VtkOutput::~VtkOutput ( )

Definition at line 34 of file vtkoutput.cc.

34 {}

Member Function Documentation

◆ at_eventstart()

void smash::VtkOutput::at_eventstart ( const Particles particles,
const int  event_number,
const EventInfo event 
)
overridevirtual

Writes the initial particle information list of an event to the VTK output.

Parameters
particlesCurrent list of all particles.
event_numberNumber of the current event.
eventEvent info, see event_info

Implements smash::OutputInterface.

Definition at line 60 of file vtkoutput.cc.

61  {
68 
69  current_event_ = event_number;
71  write(particles);
73  }
74 }
Here is the call graph for this function:

◆ at_eventend()

void smash::VtkOutput::at_eventend ( const Particles particles,
const int  event_number,
const EventInfo event 
)
overridevirtual

Writes the final particle information list of an event to the VTK output.

This currently does not do anything, because it is not required for the VTK output.

Parameters
particlesUnused. Current list of particles.
event_numberUnused. Number of event.
[in]eventEvent info, see event_info

Implements smash::OutputInterface.

Definition at line 76 of file vtkoutput.cc.

77  {}

◆ at_intermediate_time()

void smash::VtkOutput::at_intermediate_time ( const Particles particles,
const std::unique_ptr< Clock > &  clock,
const DensityParameters dens_param,
const EventInfo event 
)
overridevirtual

Writes out all current particles.

Parameters
particlesCurrent list of particles.
clockUnused, needed since inherited.
dens_paramUnused, needed since inherited.
eventEvent info, see event_info

Reimplemented from smash::OutputInterface.

Definition at line 79 of file vtkoutput.cc.

82  {
84  write(particles);
86  }
87 }
Here is the call graph for this function:

◆ thermodynamics_output() [1/3]

void smash::VtkOutput::thermodynamics_output ( const ThermodynamicQuantity  tq,
const DensityType  dt,
RectangularLattice< DensityOnLattice > &  lattice 
)
overridevirtual

Prints the density lattice in VTK format on a grid.

Parameters
tqThe quantity whose density should be written, see ThermodynamicQuantity.
dtThe type of the density, see DensityType.
latticeThe lattice from which the quantity is taken.

Reimplemented from smash::OutputInterface.

Definition at line 238 of file vtkoutput.cc.

240  {
242  return;
243  }
244  std::ofstream file;
245  const std::string varname = make_varname(tq, dens_type);
246  file.open(make_filename(varname, vtk_density_output_counter_), std::ios::out);
247  write_vtk_header(file, lattice, varname);
248  write_vtk_scalar(file, lattice, varname,
249  [&](DensityOnLattice &node) { return node.density(); });
251 }
Here is the call graph for this function:

◆ thermodynamics_output() [2/3]

void smash::VtkOutput::thermodynamics_output ( const ThermodynamicQuantity  tq,
const DensityType  dt,
RectangularLattice< EnergyMomentumTensor > &  lattice 
)
overridevirtual

Prints the energy-momentum-tensor lattice in VTK format on a grid.

Parameters
tqThe quantity whose density should be written, see ThermodynamicQuantity.
dtThe type of the density, see DensityType
latticeThe lattice from which the quantity is taken.

Reimplemented from smash::OutputInterface.

Definition at line 269 of file vtkoutput.cc.

271  {
273  return;
274  }
275  std::ofstream file;
276  const std::string varname = make_varname(tq, dens_type);
277 
278  if (tq == ThermodynamicQuantity::Tmn) {
279  file.open(make_filename(varname, vtk_tmn_output_counter_++), std::ios::out);
280  write_vtk_header(file, Tmn_lattice, varname);
281  for (int i = 0; i < 4; i++) {
282  for (int j = i; j < 4; j++) {
283  write_vtk_scalar(file, Tmn_lattice,
284  varname + std::to_string(i) + std::to_string(j),
285  [&](EnergyMomentumTensor &node) {
286  return node[EnergyMomentumTensor::tmn_index(i, j)];
287  });
288  }
289  }
290  } else if (tq == ThermodynamicQuantity::TmnLandau) {
291  file.open(make_filename(varname, vtk_tmn_landau_output_counter_++),
292  std::ios::out);
293  write_vtk_header(file, Tmn_lattice, varname);
294  for (int i = 0; i < 4; i++) {
295  for (int j = i; j < 4; j++) {
296  write_vtk_scalar(file, Tmn_lattice,
297  varname + std::to_string(i) + std::to_string(j),
298  [&](EnergyMomentumTensor &node) {
299  const FourVector u = node.landau_frame_4velocity();
300  const EnergyMomentumTensor Tmn_L = node.boosted(u);
301  return Tmn_L[EnergyMomentumTensor::tmn_index(i, j)];
302  });
303  }
304  }
305  } else {
306  file.open(make_filename(varname, vtk_v_landau_output_counter_++),
307  std::ios::out);
308  write_vtk_header(file, Tmn_lattice, varname);
309  write_vtk_vector(file, Tmn_lattice, varname,
310  [&](EnergyMomentumTensor &node) {
311  const FourVector u = node.landau_frame_4velocity();
312  return -u.velocity();
313  });
314  }
315 }
Here is the call graph for this function:

◆ thermodynamics_output() [3/3]

void smash::VtkOutput::thermodynamics_output ( const GrandCanThermalizer gct)
overridevirtual

Printout of all thermodynamic quantities from the thermalizer class.

Parameters
gctGrand-canonical thermalizer from which the quantities are taken.

Reimplemented from smash::OutputInterface.

Definition at line 317 of file vtkoutput.cc.

317  {
319  return;
320  }
321  std::ofstream file;
322  file.open(make_filename("fluidization_td", vtk_fluidization_counter_++),
323  std::ios::out);
324  write_vtk_header(file, gct.lattice(), "fluidization_td");
325  write_vtk_scalar(file, gct.lattice(), "e",
326  [&](ThermLatticeNode &node) { return node.e(); });
327  write_vtk_scalar(file, gct.lattice(), "p",
328  [&](ThermLatticeNode &node) { return node.p(); });
329  write_vtk_vector(file, gct.lattice(), "v",
330  [&](ThermLatticeNode &node) { return node.v(); });
331  write_vtk_scalar(file, gct.lattice(), "T",
332  [&](ThermLatticeNode &node) { return node.T(); });
333  write_vtk_scalar(file, gct.lattice(), "mub",
334  [&](ThermLatticeNode &node) { return node.mub(); });
335  write_vtk_scalar(file, gct.lattice(), "mus",
336  [&](ThermLatticeNode &node) { return node.mus(); });
337 }
Here is the call graph for this function:

◆ write()

void smash::VtkOutput::write ( const Particles particles)
private

Write the given particles to the output.

Parameters
particlesThe particles.

Definition at line 89 of file vtkoutput.cc.

89  {
90  char filename[32];
91  snprintf(filename, sizeof(filename), "pos_ev%05i_tstep%05i.vtk",
93  FilePtr file_{std::fopen((base_path_ / filename).native().c_str(), "w")};
94 
95  /* Legacy VTK file format */
96  std::fprintf(file_.get(), "# vtk DataFile Version 2.0\n");
97  std::fprintf(file_.get(), "Generated from molecular-offset data %s\n",
98  VERSION_MAJOR);
99  std::fprintf(file_.get(), "ASCII\n");
100 
101  /* Unstructured data sets are composed of points, lines, polygons, .. */
102  std::fprintf(file_.get(), "DATASET UNSTRUCTURED_GRID\n");
103  std::fprintf(file_.get(), "POINTS %zu double\n", particles.size());
104  for (const auto &p : particles) {
105  std::fprintf(file_.get(), "%g %g %g\n", p.position().x1(),
106  p.position().x2(), p.position().x3());
107  }
108  std::fprintf(file_.get(), "CELLS %zu %zu\n", particles.size(),
109  particles.size() * 2);
110  for (size_t point_index = 0; point_index < particles.size(); point_index++) {
111  std::fprintf(file_.get(), "1 %zu\n", point_index);
112  }
113  std::fprintf(file_.get(), "CELL_TYPES %zu\n", particles.size());
114  for (size_t point_index = 0; point_index < particles.size(); point_index++) {
115  std::fprintf(file_.get(), "1\n");
116  }
117  std::fprintf(file_.get(), "POINT_DATA %zu\n", particles.size());
118  std::fprintf(file_.get(), "SCALARS pdg_codes int 1\n");
119  std::fprintf(file_.get(), "LOOKUP_TABLE default\n");
120  for (const auto &p : particles) {
121  std::fprintf(file_.get(), "%s\n", p.pdgcode().string().c_str());
122  }
123  std::fprintf(file_.get(), "SCALARS is_formed int 1\n");
124  std::fprintf(file_.get(), "LOOKUP_TABLE default\n");
125  double current_time = particles.time();
126  for (const auto &p : particles) {
127  std::fprintf(file_.get(), "%s\n",
128  (p.formation_time() > current_time) ? "0" : "1");
129  }
130  std::fprintf(file_.get(), "SCALARS cross_section_scaling_factor double 1\n");
131  std::fprintf(file_.get(), "LOOKUP_TABLE default\n");
132  for (const auto &p : particles) {
133  std::fprintf(file_.get(), "%g\n", p.xsec_scaling_factor());
134  }
135  std::fprintf(file_.get(), "SCALARS mass double 1\n");
136  std::fprintf(file_.get(), "LOOKUP_TABLE default\n");
137  for (const auto &p : particles) {
138  std::fprintf(file_.get(), "%g\n", p.effective_mass());
139  }
140  std::fprintf(file_.get(), "SCALARS N_coll int 1\n");
141  std::fprintf(file_.get(), "LOOKUP_TABLE default\n");
142  for (const auto &p : particles) {
143  std::fprintf(file_.get(), "%i\n", p.get_history().collisions_per_particle);
144  }
145  std::fprintf(file_.get(), "SCALARS particle_ID int 1\n");
146  std::fprintf(file_.get(), "LOOKUP_TABLE default\n");
147  for (const auto &p : particles) {
148  std::fprintf(file_.get(), "%i\n", p.id());
149  }
150  std::fprintf(file_.get(), "SCALARS baryon_number int 1\n");
151  std::fprintf(file_.get(), "LOOKUP_TABLE default\n");
152  for (const auto &p : particles) {
153  std::fprintf(file_.get(), "%i\n", p.pdgcode().baryon_number());
154  }
155  std::fprintf(file_.get(), "SCALARS strangeness int 1\n");
156  std::fprintf(file_.get(), "LOOKUP_TABLE default\n");
157  for (const auto &p : particles) {
158  std::fprintf(file_.get(), "%i\n", p.pdgcode().strangeness());
159  }
160  std::fprintf(file_.get(), "VECTORS momentum double\n");
161  for (const auto &p : particles) {
162  std::fprintf(file_.get(), "%g %g %g\n", p.momentum().x1(),
163  p.momentum().x2(), p.momentum().x3());
164  }
165 }
Here is the call graph for this function:
Here is the caller graph for this function:

◆ make_filename()

std::string smash::VtkOutput::make_filename ( const std::string &  description,
int  counter 
)
private

Make a file name given a description and a counter.

Parameters
descriptionThe description.
counterThe counter enumerating the outputs.

Definition at line 225 of file vtkoutput.cc.

225  {
226  char suffix[22];
227  snprintf(suffix, sizeof(suffix), "_%05i_tstep%05i.vtk", current_event_,
228  counter);
229  return base_path_.string() + std::string("/") + descr + std::string(suffix);
230 }
Here is the caller graph for this function:

◆ make_varname()

std::string smash::VtkOutput::make_varname ( const ThermodynamicQuantity  tq,
const DensityType  dens_type 
)
private

Make a variable name given quantity and density type.

Parameters
tqThe quantity.
dens_typeThe density type.

Definition at line 232 of file vtkoutput.cc.

233  {
234  return std::string(to_string(dens_type)) + std::string("_") +
235  std::string(to_string(tq));
236 }
Here is the call graph for this function:
Here is the caller graph for this function:

◆ write_vtk_header()

template<typename T >
void smash::VtkOutput::write_vtk_header ( std::ofstream &  file,
RectangularLattice< T > &  lat,
const std::string &  description 
)
private

Write the VTK header.

Parameters
fileOutput file.
latLattice corresponding to output.
descriptionDescription of the output.

Definition at line 177 of file vtkoutput.cc.

179  {
180  const auto dim = lattice.dimensions();
181  const auto cs = lattice.cell_sizes();
182  const auto orig = lattice.origin();
183  file << "# vtk DataFile Version 2.0\n"
184  << description << "\n"
185  << "ASCII\n"
186  << "DATASET STRUCTURED_POINTS\n"
187  << "DIMENSIONS " << dim[0] << " " << dim[1] << " " << dim[2] << "\n"
188  << "SPACING " << cs[0] << " " << cs[1] << " " << cs[2] << "\n"
189  << "ORIGIN " << orig[0] << " " << orig[1] << " " << orig[2] << "\n"
190  << "POINT_DATA " << lattice.size() << "\n";
191 }
Here is the call graph for this function:
Here is the caller graph for this function:

◆ write_vtk_scalar()

template<typename T , typename F >
void smash::VtkOutput::write_vtk_scalar ( std::ofstream &  file,
RectangularLattice< T > &  lat,
const std::string &  varname,
F &&  function 
)
private

Write a VTK scalar.

Parameters
fileOutput file.
latLattice corresponding to output.
varnameName of the output variable.
functionFunction that gets the scalar given a lattice node.

Definition at line 194 of file vtkoutput.cc.

196  {
197  file << "SCALARS " << varname << " double 1\n"
198  << "LOOKUP_TABLE default\n";
199  file << std::setprecision(3);
200  file << std::fixed;
201  const auto dim = lattice.dimensions();
202  lattice.iterate_sublattice({0, 0, 0}, dim, [&](T &node, int ix, int, int) {
203  const double f_from_node = get_quantity(node);
204  file << f_from_node << " ";
205  if (ix == dim[0] - 1) {
206  file << "\n";
207  }
208  });
209 }
Here is the call graph for this function:
Here is the caller graph for this function:

◆ write_vtk_vector()

template<typename T , typename F >
void smash::VtkOutput::write_vtk_vector ( std::ofstream &  file,
RectangularLattice< T > &  lat,
const std::string &  varname,
F &&  function 
)
private

Write a VTK vector.

Parameters
fileOutput file.
latLattice corresponding to output.
varnameName of the output variable.
functionFunction that gets the vector given a lattice node.

Definition at line 212 of file vtkoutput.cc.

214  {
215  file << "VECTORS " << varname << " double\n";
216  file << std::setprecision(3);
217  file << std::fixed;
218  const auto dim = lattice.dimensions();
219  lattice.iterate_sublattice({0, 0, 0}, dim, [&](T &node, int, int, int) {
220  const ThreeVector v = get_quantity(node);
221  file << v.x1() << " " << v.x2() << " " << v.x3() << "\n";
222  });
223 }
Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ base_path_

const bf::path smash::VtkOutput::base_path_
private

filesystem path for output

Definition at line 171 of file vtkoutput.h.

◆ current_event_

int smash::VtkOutput::current_event_ = 0
private

Event number.

Definition at line 174 of file vtkoutput.h.

◆ vtk_output_counter_

int smash::VtkOutput::vtk_output_counter_ = 0
private

Number of vtk output in current event.

Definition at line 176 of file vtkoutput.h.

◆ vtk_density_output_counter_

int smash::VtkOutput::vtk_density_output_counter_ = 0
private

Number of density lattice vtk output in current event.

Definition at line 179 of file vtkoutput.h.

◆ vtk_tmn_output_counter_

int smash::VtkOutput::vtk_tmn_output_counter_ = 0
private

Number of energy-momentum tensor lattice vtk output in current event.

Definition at line 181 of file vtkoutput.h.

◆ vtk_tmn_landau_output_counter_

int smash::VtkOutput::vtk_tmn_landau_output_counter_ = 0
private

Number of Landau frame energy-momentum tensor vtk output in current event.

Definition at line 183 of file vtkoutput.h.

◆ vtk_v_landau_output_counter_

int smash::VtkOutput::vtk_v_landau_output_counter_ = 0
private

Number of Landau rest frame velocity vtk output in current event.

Definition at line 185 of file vtkoutput.h.

◆ vtk_fluidization_counter_

int smash::VtkOutput::vtk_fluidization_counter_ = 0
private

Number of fluidization output.

Definition at line 187 of file vtkoutput.h.

◆ is_thermodynamics_output_

bool smash::VtkOutput::is_thermodynamics_output_
private

Is the VTK output a thermodynamics output.

Definition at line 189 of file vtkoutput.h.


The documentation for this class was generated from the following files:
smash::OutputInterface::OutputInterface
OutputInterface(std::string name)
Construct output interface.
Definition: outputinterface.h:71
smash::FilePtr
std::unique_ptr< std::FILE, FileDeleter > FilePtr
A RAII type to replace std::FILE *.
Definition: file.h:63
ThermodynamicQuantity::TmnLandau
smash::VtkOutput::vtk_v_landau_output_counter_
int vtk_v_landau_output_counter_
Number of Landau rest frame velocity vtk output in current event.
Definition: vtkoutput.h:185
smash::LOutput
static constexpr int LOutput
Definition: oscaroutput.cc:23
smash::fopen
FilePtr fopen(const bf::path &filename, const std::string &mode)
Open a file with given mode.
Definition: file.cc:14
smash::VtkOutput::make_varname
std::string make_varname(const ThermodynamicQuantity tq, const DensityType dens_type)
Make a variable name given quantity and density type.
Definition: vtkoutput.cc:232
smash::OutputInterface::to_string
const char * to_string(const ThermodynamicQuantity tq)
Convert thermodynamic quantities to strings.
Definition: outputinterface.h:184
smash::VtkOutput::write_vtk_vector
void write_vtk_vector(std::ofstream &file, RectangularLattice< T > &lat, const std::string &varname, F &&function)
Write a VTK vector.
Definition: vtkoutput.cc:212
smash::EnergyMomentumTensor::tmn_index
static std::int8_t tmn_index(std::int8_t mu, std::int8_t nu)
Access the index of component .
Definition: energymomentumtensor.h:54
smash::VtkOutput::write_vtk_scalar
void write_vtk_scalar(std::ofstream &file, RectangularLattice< T > &lat, const std::string &varname, F &&function)
Write a VTK scalar.
Definition: vtkoutput.cc:194
smash::VtkOutput::base_path_
const bf::path base_path_
filesystem path for output
Definition: vtkoutput.h:171
smash::logg
std::array< einhard::Logger<>, std::tuple_size< LogArea::AreaTuple >::value > logg
An array that stores all pre-configured Logger objects.
Definition: logging.cc:39
smash::VtkOutput::vtk_density_output_counter_
int vtk_density_output_counter_
Number of density lattice vtk output in current event.
Definition: vtkoutput.h:179
smash::VtkOutput::is_thermodynamics_output_
bool is_thermodynamics_output_
Is the VTK output a thermodynamics output.
Definition: vtkoutput.h:189
smash::VtkOutput::vtk_tmn_output_counter_
int vtk_tmn_output_counter_
Number of energy-momentum tensor lattice vtk output in current event.
Definition: vtkoutput.h:181
smash::VtkOutput::write_vtk_header
void write_vtk_header(std::ofstream &file, RectangularLattice< T > &lat, const std::string &description)
Write the VTK header.
Definition: vtkoutput.cc:177
smash::VtkOutput::vtk_fluidization_counter_
int vtk_fluidization_counter_
Number of fluidization output.
Definition: vtkoutput.h:187
ThermodynamicQuantity::Tmn
smash::VtkOutput::vtk_tmn_landau_output_counter_
int vtk_tmn_landau_output_counter_
Number of Landau frame energy-momentum tensor vtk output in current event.
Definition: vtkoutput.h:183
smash::VtkOutput::vtk_output_counter_
int vtk_output_counter_
Number of vtk output in current event.
Definition: vtkoutput.h:176
smash::VtkOutput::write
void write(const Particles &particles)
Write the given particles to the output.
Definition: vtkoutput.cc:89
smash::VtkOutput::make_filename
std::string make_filename(const std::string &description, int counter)
Make a file name given a description and a counter.
Definition: vtkoutput.cc:225
smash::VtkOutput::current_event_
int current_event_
Event number.
Definition: vtkoutput.h:174
smash::pdg::p
constexpr int p
Proton.
Definition: pdgcode_constants.h:28