Version: SMASH-1.8
smash::VtkOutput Class Reference

#include <vtkoutput.h>

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

Definition at line 28 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) 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, double impact_parameter, bool empty_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) 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 
)
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.

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,
double  impact_parameter,
bool  empty_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.
impact_parameterUnused. Impact parameter of this event.
empty_eventUnused. Whether the projectile and target did not collide.

Implements smash::OutputInterface.

Definition at line 76 of file vtkoutput.cc.

78  {
79 }

◆ at_intermediate_time()

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

Writes out all current particles.

Parameters
particlesCurrent list of particles.
clockUnused, needed since inherited.
dens_paramUnused, needed since inherited.

Reimplemented from smash::OutputInterface.

Definition at line 81 of file vtkoutput.cc.

83  {
85  write(particles);
87  }
88 }
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 239 of file vtkoutput.cc.

241  {
243  return;
244  }
245  std::ofstream file;
246  const std::string varname = make_varname(tq, dens_type);
247  file.open(make_filename(varname, vtk_density_output_counter_), std::ios::out);
248  write_vtk_header(file, lattice, varname);
249  write_vtk_scalar(file, lattice, varname,
250  [&](DensityOnLattice &node) { return node.density(); });
252 }
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 270 of file vtkoutput.cc.

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

318  {
320  return;
321  }
322  std::ofstream file;
323  file.open(make_filename("fluidization_td", vtk_fluidization_counter_++),
324  std::ios::out);
325  write_vtk_header(file, gct.lattice(), "fluidization_td");
326  write_vtk_scalar(file, gct.lattice(), "e",
327  [&](ThermLatticeNode &node) { return node.e(); });
328  write_vtk_scalar(file, gct.lattice(), "p",
329  [&](ThermLatticeNode &node) { return node.p(); });
330  write_vtk_vector(file, gct.lattice(), "v",
331  [&](ThermLatticeNode &node) { return node.v(); });
332  write_vtk_scalar(file, gct.lattice(), "T",
333  [&](ThermLatticeNode &node) { return node.T(); });
334  write_vtk_scalar(file, gct.lattice(), "mub",
335  [&](ThermLatticeNode &node) { return node.mub(); });
336  write_vtk_scalar(file, gct.lattice(), "mus",
337  [&](ThermLatticeNode &node) { return node.mus(); });
338 }
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 90 of file vtkoutput.cc.

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

226  {
227  char suffix[22];
228  snprintf(suffix, sizeof(suffix), "_%05i_tstep%05i.vtk", current_event_,
229  counter);
230  return base_path_.string() + std::string("/") + descr + std::string(suffix);
231 }
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 233 of file vtkoutput.cc.

234  {
235  return std::string(to_string(dens_type)) + std::string("_") +
236  std::string(to_string(tq));
237 }
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 178 of file vtkoutput.cc.

180  {
181  const auto dim = lattice.dimensions();
182  const auto cs = lattice.cell_sizes();
183  const auto orig = lattice.origin();
184  file << "# vtk DataFile Version 2.0\n"
185  << description << "\n"
186  << "ASCII\n"
187  << "DATASET STRUCTURED_POINTS\n"
188  << "DIMENSIONS " << dim[0] << " " << dim[1] << " " << dim[2] << "\n"
189  << "SPACING " << cs[0] << " " << cs[1] << " " << cs[2] << "\n"
190  << "ORIGIN " << orig[0] << " " << orig[1] << " " << orig[2] << "\n"
191  << "POINT_DATA " << lattice.size() << "\n";
192 }
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 195 of file vtkoutput.cc.

197  {
198  file << "SCALARS " << varname << " double 1\n"
199  << "LOOKUP_TABLE default\n";
200  file << std::setprecision(3);
201  file << std::fixed;
202  const auto dim = lattice.dimensions();
203  lattice.iterate_sublattice({0, 0, 0}, dim, [&](T &node, int ix, int, int) {
204  const double f_from_node = get_quantity(node);
205  file << f_from_node << " ";
206  if (ix == dim[0] - 1) {
207  file << "\n";
208  }
209  });
210 }
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 213 of file vtkoutput.cc.

215  {
216  file << "VECTORS " << varname << " double\n";
217  file << std::setprecision(3);
218  file << std::fixed;
219  const auto dim = lattice.dimensions();
220  lattice.iterate_sublattice({0, 0, 0}, dim, [&](T &node, int, int, int) {
221  const ThreeVector v = get_quantity(node);
222  file << v.x1() << " " << v.x2() << " " << v.x3() << "\n";
223  });
224 }
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 169 of file vtkoutput.h.

◆ current_event_

int smash::VtkOutput::current_event_ = 0
private

Event number.

Definition at line 172 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 174 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 177 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 179 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 181 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 183 of file vtkoutput.h.

◆ vtk_fluidization_counter_

int smash::VtkOutput::vtk_fluidization_counter_ = 0
private

Number of fluidization output.

Definition at line 185 of file vtkoutput.h.

◆ is_thermodynamics_output_

bool smash::VtkOutput::is_thermodynamics_output_
private

Is the VTK output a thermodynamics output.

Definition at line 187 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:41
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:183
smash::LOutput
static constexpr int LOutput
Definition: oscaroutput.cc:25
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:233
smash::OutputInterface::to_string
const char * to_string(const ThermodynamicQuantity tq)
Convert thermodynamic quantities to strings.
Definition: outputinterface.h:153
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:213
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:195
smash::VtkOutput::base_path_
const bf::path base_path_
filesystem path for output
Definition: vtkoutput.h:169
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:177
smash::VtkOutput::is_thermodynamics_output_
bool is_thermodynamics_output_
Is the VTK output a thermodynamics output.
Definition: vtkoutput.h:187
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:179
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:178
smash::VtkOutput::vtk_fluidization_counter_
int vtk_fluidization_counter_
Number of fluidization output.
Definition: vtkoutput.h:185
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:181
smash::VtkOutput::vtk_output_counter_
int vtk_output_counter_
Number of vtk output in current event.
Definition: vtkoutput.h:174
smash::VtkOutput::write
void write(const Particles &particles)
Write the given particles to the output.
Definition: vtkoutput.cc:90
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:226
smash::VtkOutput::current_event_
int current_event_
Event number.
Definition: vtkoutput.h:172
smash::pdg::p
constexpr int p
Proton.
Definition: pdgcode_constants.h:28