10 #ifndef SRC_INCLUDE_SMASH_OUTPUTINTERFACE_H_
11 #define SRC_INCLUDE_SMASH_OUTPUTINTERFACE_H_
26 static constexpr
int LOutput = LogArea::Output::id;
188 const int event_number) {
213 const std::unique_ptr<Clock> &clock,
228 const std::unique_ptr<Clock> &clock,
277 const double current_time) {
296 const std::vector<Particles> &ensembles,
316 const double current_time) {
343 const std::string name1,
const std::string name2,
377 throw std::invalid_argument(
"Unknown thermodynamic quantity.");
392 return "net_baryonI3";
396 return "tot_isospin3";
400 return "strangeness";
404 throw std::invalid_argument(
"Unknown density type.");
Action is the base class for a generic process that takes a number of incoming particles and transfor...
A class to pre-calculate and store parameters relevant for density calculation.
The GrandCanThermalizer class implements the following functionality:
Abstraction of generic output.
virtual void thermodynamics_lattice_output(RectangularLattice< DensityOnLattice > &lattice, const double current_time, const std::vector< Particles > &ensembles, const DensityParameters &dens_param)
Output to write thermodynamics from the lattice.
const bool is_photon_output_
Is this the photon output?
bool is_photon_output() const
Get, whether this is the photon output?
const bool is_dilepton_output_
Is this the dilepton output?
virtual void at_eventend(const std::vector< Particles > &ensembles, const int event_number)
Output launched at event end.
const bool is_IC_output_
Is this the IC output?
OutputInterface(std::string name)
Construct output interface.
virtual ~OutputInterface()=default
const char * to_string(const DensityType dens_type)
Convert density types to strings.
virtual void thermodynamics_lattice_output(const ThermodynamicQuantity tq, RectangularLattice< EnergyMomentumTensor > &lattice, const double current_time)
Output to write energy-momentum tensor and related quantities from the lattice.
const char * to_string(const ThermodynamicQuantity tq)
Convert thermodynamic quantities to strings.
virtual void at_eventstart(const int event_number, const ThermodynamicQuantity tq, const DensityType dens_type, RectangularLattice< EnergyMomentumTensor > lattice)
Output launched atevent start after initialization, when particles are generated but not yet propagat...
virtual void at_eventend(const ThermodynamicQuantity tq)
Output launched at event end.
virtual void thermodynamics_output(const GrandCanThermalizer &gct)
Output to write energy-momentum tensor and related quantities from the thermalizer class.
virtual void at_interaction(const Action &action, const double density)
Called whenever an action modified one or more particles.
virtual void at_eventstart(const Particles &particles, const int event_number, const EventInfo &info)
Output launched at event start after initialization, when particles are generated but not yet propaga...
virtual void at_intermediate_time(const std::vector< Particles > &ensembles, const std::unique_ptr< Clock > &clock, const DensityParameters &dens_param)
Output launched after every N'th timestep.
virtual void at_eventstart(const std::vector< Particles > &ensembles, int event_number)
Output launched at event start after initialization, when particles are generated but not yet propaga...
virtual void at_eventstart(const int event_number, const ThermodynamicQuantity tq, const DensityType dens_type, RectangularLattice< DensityOnLattice > lattice)
Output launched at event start after initialization, when particles are generated but not yet propaga...
virtual void at_eventend(const int event_number, const ThermodynamicQuantity tq, const DensityType dens_type)
Output launched at event end.
bool is_dilepton_output() const
Get, whether this is the dilepton output?
virtual void fields_output(const std::string name1, const std::string name2, RectangularLattice< std::pair< ThreeVector, ThreeVector >> &lat)
Write fields in vtk output.
virtual void at_intermediate_time(const Particles &particles, const std::unique_ptr< Clock > &clock, const DensityParameters &dens_param, const EventInfo &info)
Output launched after every N'th timestep.
virtual void at_eventend(const Particles &particles, const int event_number, const EventInfo &info)
Output launched at event end.
virtual void thermodynamics_output(const ThermodynamicQuantity tq, const DensityType dt, RectangularLattice< EnergyMomentumTensor > &lattice)
Output to write energy-momentum tensor and related quantities from the lattice.
virtual void thermodynamics_output(const ThermodynamicQuantity tq, const DensityType dt, RectangularLattice< DensityOnLattice > &lattice)
Output to write thermodynamics from the lattice.
bool is_IC_output() const
Get, whether this is the IC output?
virtual void thermodynamics_lattice_output(RectangularLattice< DensityOnLattice > &lattice, const double current_time)
Output to write thermodynamics from the lattice.
The Particles class abstracts the storage and manipulation of particles.
A container class to hold all the arrays on the lattice and access them.
ThermodynamicQuantity
Represents thermodynamic quantities that can be printed out.
#define SMASH_UNUSED(x)
Mark as unused, silencing compiler warnings.
static constexpr int LOutput
DensityType
Allows to choose which kind of density to calculate.
Structure to contain custom data for output.
double total_kinetic_energy
Sum of kinetic energies of all particles.
bool empty_event
True if no collisions happened.
double modus_length
Box length in case of box simulation, otherwise dummy.
double total_energy
Kinetic + mean field energy.
int n_ensembles
Number of ensembles.
double total_mean_field_energy
Total energy in the mean field.
bool impose_kinematic_cut_for_SMASH_IC
Whether or not kinematic cuts are employed for SMASH IC.
double impact_parameter
Impact parameter for collider modus, otherwise dummy.
double current_time
Time in fm.
int test_particles
Testparticle number, see Testparticles in General.