Version: SMASH-2.0.2
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 22 of file vtkoutput.cc.

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

◆ ~VtkOutput()

smash::VtkOutput::~VtkOutput ( )

Definition at line 33 of file vtkoutput.cc.

33 {}

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 59 of file vtkoutput.cc.

60  {
67 
68  current_event_ = event_number;
70  write(particles);
72  }
73 }
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 75 of file vtkoutput.cc.

76  {}

◆ 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 78 of file vtkoutput.cc.

81  {
83  write(particles);
85  }
86 }
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 237 of file vtkoutput.cc.

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

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

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

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

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

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

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

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

213  {
214  file << "VECTORS " << varname << " double\n";
215  file << std::setprecision(3);
216  file << std::fixed;
217  const auto dim = lattice.dimensions();
218  lattice.iterate_sublattice({0, 0, 0}, dim, [&](T &node, int, int, int) {
219  const ThreeVector v = get_quantity(node);
220  file << v.x1() << " " << v.x2() << " " << v.x3() << "\n";
221  });
222 }
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:72
smash::FilePtr
std::unique_ptr< std::FILE, FileDeleter > FilePtr
A RAII type to replace std::FILE *.
Definition: file.h:63
ThermodynamicQuantity::TmnLandau
@ 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: outputinterface.h:24
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:231
smash::OutputInterface::to_string
const char * to_string(const ThermodynamicQuantity tq)
Convert thermodynamic quantities to strings.
Definition: outputinterface.h:185
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:211
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:193
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:176
smash::VtkOutput::vtk_fluidization_counter_
int vtk_fluidization_counter_
Number of fluidization output.
Definition: vtkoutput.h:187
ThermodynamicQuantity::Tmn
@ 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:88
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:224
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