All notable changes to this project will be documented in this file. The format is inspired by Keep a Changelog. This project does not adhere to Semantic Versioning, but it uses versioning inspired by it. Given a version number X.Y.Z
,
X
is incremented for major changes in particular large backwards incompatible updates,Y
is incremented for minor changes like an external pull-request that adds one feature andZ
for the indication of a bug fix or other very small changes that are not backwards incompatible.
The major categories to group changes in this log are:
Input / Output
for all, in particular breaking, changes, fixes and additions to the in- and output files;Added
for new features;Changed
for changes in existing functionality;Fixed
for any bug fixes;Removed
for now removed features.
Also possible, but for this project less relevant, is Deprecated
for soon-to-be removed features.
Date: 2024-02-26
- Added momentum dependence of the Skyrme potential using the cold nuclear matter approximation
- Option
Decay_Initial_Particles
which blocks the decay of resonances created at initialization - The
List
andListBox
modi can now be used specifying a single particles input file using theFilename
key - Command-line option to run smash with
-n
to avoid caching integrals in the tabulations folder on the disk ⚠️ TheTotal_Cross_Section_Strategy
key determines how the total cross sections for collision finding are evaluated, whether from summing the partial contributions or using a parametrization; previously the default behavior was the former strategy (now accessible with the valueBottomUp
), but it has changed to the latter (accessible withTopDownMeasured
)⚠️ OptionPseudoresonance
which adds ad hoc inelastic 2→1 processes close to the energy regime around the transition to strings, where few resonances have been measured; by default, this is done for interactions where at least one of the incoming particles is unstable, and the heaviest possible resonance producible from the incoming pair is chosen- New
Use_Potentials_Outside_Lattice
option in the config file to specify where potentials are applied
- Fix bug in the time step calculation of SMASH output in events successive to the first one when the
End_Time
is not a multiple of theOutput_Interval
- SMASH now aborts with a user-friendly message if any input key among
End_Time
,Delta_Time
orOutput_Interval
is zero - Fix bug in thermodynamics lattice ASCII output when both ASCII and binary formats are requested
- Fix bug about SMASH getting stuck with some particular values of
End_Time
andDelta_Time
- Fix value of particles mass in SMASH IC ASCII output (the pole mass was printed instead of the real mass)
- SMASH does not crash if
rho_eckart
is not specified in theThermodynamics
output - SMASH does not crash if the same output format is repeated
- Fix bug when
Power_Particle_Formation
is explicitly specified - SMASH can now be built with GNU compiler
v13
that requires explicit inclusion ofcstdint
header - Fix bug when using SMASH as a library and particles should be removed
- Use updated gold radius of 6.55 fm instead of 6.38 fm and a diffusiveness of 0.523 fm instead of 0.535 fm
- Upgraded to Pythia 8.310
- Upgraded to Cuba 4.2.2
- SMASH installation procedure was improved and allows now to use SMASH as library relying on installation folder only
- CMake module to find SMASH in an external project offers now a better approach based on the new installation procedure
- Make
Clock
class comparison operators refer to internally represented time and not tocurrent_time()
return value - Add strangeness to all extended output formats in the particle line
- Locate SMASH in external projects using the
SMASH_DIR
and not relying on an installation
- Some public setters of the
ListModus
class have been removed
Link to diff from previous version
Date: 2023-04-27
Summary of major changes from SMASH-2.2.1
:
⚠️ Themaster
branch has been renamed tomain
- Updated to Pythia 8.309 and introduced automatic usage of Monash tune for high beam energies to match multiplicities up to LHC energies
- SMASH has now more functionality when used as an external library
- Optimized SMASH at low energies achieving a ~25% speedup
- Added new validation mechanism of input configuration file to prevent misuse and improve corresponding documentation
- Upgraded to C++17 standard and get rid of Boost dependency
- Minimum versions requirements of prerequisites have increased and officially supported systems were made explicit
- Backward incompatible changes have occurred, mainly on the input configuration side (few keys changed and the internal parsing class interface was substantially rewritten)
- New CMake build configuration
MinSizeRel
to optimize in executable size - New examples for usage of SMASH as a library: Full SMASH wrapper and rate equations
- New validation mechanism of SMASH input (configuration file and
-c
command line option) - Add an input key to employ the Monash tune for all Pythia processes (this is automatically enabled in
Collider
mode forSqrtsnn
≥ 200 GeV, unless explicitly disabled) - Cross section parameters for the transition to strings are now optional inputs
- Add a new functionality to add or remove particles when using SMASH as a library
- Fix bug in collider modus when setting the total energy per nucleon of each beam
- The box modus can only be used with the fixed time step mode
- Avoid integer overflow to silently happen in grid construction
- Correct tau lepton mass in particles list files
- Fix code behavior in list modi setup to be coherent with given warnings in case of input discrepancies
- Fix falsely applied smearing factor in thermodynamic output of the charge currents
j_BQS
in the case of no smearing
- The
master
branch has been renamed tomain
- SMASH makes now use of C++17 standard and minimum compiler requirements have changed
- Upgraded to Pythia 8.309
- Minimum supported CMake version is now version 3.16
- Minimum Doxygen version to build documentation is now 1.9
- Only 64-bit UNIX-like operating systems (e.g. Linux, MacOS) are officially supported
- Only GCC, Clang and Apple clang compilers are officially supported
- Default build configuration is now
Release
(instead ofRelWithDebInfo
) - Use CMake default compiler flags for
RelWithDebInfo
build configuration, hence having-O2
optimization level instead of-03
- Changed interface of the
Configuration
class, which is now not copyable and offers more explicit methods, making it harder to be misused - The
Version
configuration key is not used anymore and has been deprecated - SMASH now aborts if any content output format in the configuration file is invalid or absent
Format: ["None"]
can be used in the configuration file to suppress any content output- Added two quantities (baryon number, strangeness) in the particle line in ASCII initial conditions output (SMASH_IC.dat)
- Clebsch-Gordan coefficients are now tabulated resulting into a performance increase, especially at low energies
- Made the input
Jet_PDG
key in theJet
section in sphere and box modus mandatory, when theJet
section is provided - The
Lattice
section in the input file cannot be anymore empty; the keyAutomatic: True
must be now used to automatically generate the lattice andAutomatic: False
is needed if the geometry is fully specified - All input mass values that need to match the SMASH internally used ones are now validated
- Updated 2 → 2 angular distribution parametrization for high energies
- Boost is not used anymore, since the C++17 standard library is sufficient now
- Removed
Rest_Frame_Density_Derivatives_Mode
input key which was not used in the code
Link to diff from previous version
Date: 2022-05-18
- Properly boost in radial direction in sphere mode
Link to diff from previous version
Date: 2022-05-10
- Added option
Minimum_Nonempty_Ensembles
to define a minimum number of ensembles in which interactions took place - Added
HepMC_treeroot
output - Added option to
Include_Weak_And_EM_Decays_At_The_End
- Light nuclei (A=3) production via 4-to-2 reactions
- Possibility to perform weak decays at the end of the calculation
- Possibility to impose transverse momentum or rapidity cut when extracting initial conditions for hydrodynamics
- Option to add a velocity field of the form
u_r = u_0 * r / R
in radial direction to the sphere mode - Interface functions to initialize SMASH conveniently (see new
library.h
) - Extend benchmarks to include collisions at high energy to test strings
- The
--version
option ofsmash
now returns a version also when SMASH is downloaded as source package without VCS information - The saturation density of the woods-saxon distribution is calculated such that its integral returns the number of nucleons in the nucleus
- Initial conditions output now includes unformed particles
- Minimum supported CMake version is now version 3.9
- Renamed
USE_ROOT
,USE_HEPMC
andUSE_RIVET
CMake options toTRY_USE_ROOT
,TRY_USE_HEPMC
andTRY_USE_RIVET
, respectively - Upgraded to Pythia 8.307
- Renamed version macro to
SMASH_VERSION
(fromMAJOR_VERSION
) - Pythia installation directory can also be specified with
-DPYTHIA_ROOT_DIR
and by the environment variablesPYTHIA_ROOT_DIR
orPYTHIA8
, with/usr
as default - Big endian architectures are not officially supported and compilation on them is, by default, disabled
- Specific parameters for Xenon nuclei are used instead of default values
- A possibly available system installation of YAML library is not considered anymore
- The singularity container definition has been dropped, since a singularity container can be obtained from the shipped docker
Link to diff from previous version
Date: 2022-02-24
- Properly reset for each event whether projectile and target interacted
Link to diff from previous version
Date: 2022-02-15
- Include unformed particles in initial conditions output
- Add definition of endianness macro to FindSMASH.cmake module
Link to diff from previous version
- Output option
HepMC
to enable HepMC ASCII output (equivalent to the newerHepMC_asciiv3
)
Date: 2022-02-04
- Reflect new Cuba version in FindSMASH.cmake
Link to diff from previous version
Date: 2022-01-31
- Fixed typo in PgdCode class
Link to diff from previous version
Date: 2021-12-21
- Added option to specify a
Fixed_Min_Cell_Length
to control the grid size for the stochastic criterion - Computation of thermodynamic quantities optionally restricted to participants only using the option
Only_Participants
- 5-to-2 reactions for NNbar annihilations via the stochastic collision criterion
- 2-to-5 reactions for NNbar annihilations to 5 pions
- Thermodynamic lattice output
- Parallel ensembles
- VDF potentials
- New smearing modes: discrete + triangular
- New option: finite difference derivatives for calculation of density gradients on lattice
- New option: sample particles according to quantum statistics
- Non-relativistic electromagnetic potentials in a simple form meant for low collision energies
- New option: start a box with an external particle list
- Support of Apple silicon M1 chips
- Optional N(1520) Dalitz decay with constant form factor
- Pre-built docker container on Github
- Evaluation of failed string processes. BBbar pairs are now forced to annihilate
- Updated Dockerfile and Singularity definition file (matching pre-built container on Github)
Link to diff from previous version
Date: 2021-06-23
- Added interface with Rivet (the particle-physics MC analysis toolkit) that can process the data of the simulations at runtime and produce YODA output files with the analysis results
- Refactoring of the HempMC3 output now available for final particles and for the collision history in asciiv3 format
- Minimum supported cmake version is now version 3.1
- Continuous integration now uses Github Actions
Link to diff from previous version
Date: 2020-12-21
- Fixed event number counting for intermediate OSCAR output
Link to diff from previous version
Date: 2020-12-17
Major changes:
- Multi-particle interactions: There is infrastructure for 3 ↔ 2 and 3 ↔ 1 interactions and example processes are implemented
- The SMASH hybrid is available including SMASH in initial and final state as well as the vHLLE viscous hydrodynamics code
- Updated to Pythia 8.303 and optimized the function calls to allow SMASH runs at LHC and high RHIC energies
- No large backwards incompatible updates for this major version
- Unify event number counting: The event number counting now starts at 0 for all output formats
- Added charge chemical potential to the box modus as an option
- Added option to specify the
Maximum_Cross_Section
that is considered from the config file - Clarify naming of empty events output flag: changing
empty
toscattering_projectile_target
- Newly available HepMC3 output
- Option to scale all cross sections by a global
Cross_Section_Scaling
factor from the config file - New
Additional_Elastic_Cross_Section
option to add an additional constant contribution to the elastic cross section in the config file - Option to
Only_Warn_For_High_Probability
in case of long production runs with the stochastic criterion
- 3-to-1 reactions for mesons via the stochastic collision criterion
- 3-to-2 reactions for deuterons via the stochastic collision criterion
- Parallel ensembles technique to run simulations with mean field potentials faster
- New covariant collision criterion
- Hadron Gas EoS extended by nQ and muQ
- Various tests for photons
- Various tests for the stochastic criterion
- Various tests for multi-particle reactions
- Command-line option to enable completely silent output
- Travis CI check to ensure zero doxygen warning about undocumented instances
- Added a new Process Type to tag for failed string processes
- Option to initialize the box with Bose or Fermi distributions
- More extensive documentation for the different collision criteria
- A map of Pythia objects to reduce number of Pythia initializations
- f-resonance to pi-pi-photon Bremsstrahlung cross-sections
- Tests for nucleon density normalization
- Consider cross section scaling factor of incoming particles for photon production. This factor was previously neglected, resulting in exploding weights and overestimated photon production
- Use form factors for binary scattering photons also in the case of Nfrac=1
- The evaluation of the interaction point in the boxmodus is considering interactions through the wall properly
- Enforced a small time step if the box modus is used
- Bug in displaying the total energy per particle
- The Pythia version is increased to 8.303
- In collisions of unformed particles with equal formation time the outgoing particles now always inherit the smaller scaling factor
- The default collision criterion changed from "geometric" to "covariant"
- The interaction point for the stochastic criterion is the coordinate of a random incoming particle instead of the middle point. This prevents density artifacts in the center of grid cells
- Integrator1dMonte as it was not used anymore
- Integrator2d with the GSL Monte-Carlo integration functions. Replaced by the Integrator2dCuhre which performs 2D integrations according to the Cuhre algorithm. The latter was now renamed to Integrator2d
Link to diff from previous version
Date: 2020-08-13
- Improve version determination for Pythia
Link to diff from previous version
Date: 2020-04-07
- Some column names in the extended ROOT output have changed to be agreement with those in the extended OSCAR output:
coll_per_part
→ncoll
formation_time
→form_time
xsec_factor
→xsecfac
- Add strangeness and baryon number to VTK particles output
- The
Only_Final
option for the Particles output has the new possibility ifIfNotEmpty
is entered. Then only output is written if the event is not empty i.e. there was a collision between projectile and target to save disk space. The other two options are nowYes
orNo
(previouslyTrue
orFalse
) - Restructure photon configuration:
- Add new
Photon
subsection toCollision_Term
section, with options2to2_Scatterings: True/False
,Bremsstrahlung: True/False
andFractional_Photons: Nfrac
, whereNfrac
is an arbitrary integer - Add new
Dilepton
subsection toCollision_Term
, with optionDecays: True/False
- From now on, only the format and whether or not it shall be extended, can be set in the Output subsection
Photons
- Add new
- Photon production from pion-pion bremsstrahlung
- Option to randomize the reaction plane (rotate all particles by a random angle around the z axis)
- Test to verify that cross sections do not depend on particle order
- Various tests for deformed nuclei
- Various tests for string processes
- Proper CHANGELOG.md file
- Option to set up an equilibration time for the box modus, after which the output is written
- Most resonance integrals are now cached on disk, reducing the time until the simulation starts
- Extend box examples in user guide to directly run
- Fix user guide for baryon density dependent symmetry potential
- ASCII initial conditions output:
- Bugfix: write PDG ID instead of unique particle ID
- Exclude spectators
- Add lower bound for initial conditions proper time
- Fix floating point exceptions that were raised if initial conditions output is enabled
- Fix light nuclei not being affected by potentials
Link to diff from previous version
Date: 2019-10-14
- New output content: Initial conditions output in ASCII, Oscar, Binary and ROOT format
- New option to explicitly specify the output times in terms of a list
- Input option
Included_2to2
now has a new possible valueNNbar
. This is a breaking change since this value now has to be in the included list of 2to2 reactions in order to use theresonances
option forNNbar_treatment
- Input configuration of deformed nuclei has changed. Additional level of
Orientation
provided where the angles or a random rotation can be specified. This change is backwards incompatible to config files for SMASH-1.6 or older - Most outputs now specify whether the projectile collided with the target
- ROOT output now includes charge and optionally the extended output
- Added particle ID and number of collisions to VTK particles output
- Thermodynamic output can now also output electric, baryonic and strange currents
- New stochastic collision criterion (as in A. Lang, H. Babovsky, W. Cassing, U. Mosel, H. G. Reusch, and K. Weber, J. Comp. Phys. 106, 391 (1993)) for 2-to-2 reactions of one particle species with a fixed elastic cross-section
- Initial conditions for hydrodynamic simulations can be extracted and are provided in the initial conditions output. The proper time of the produced hypersurface can, if desired, be specified in the configuration file
- Fermi motion for deformed nuclei
- Random rotation of custom nuclei
- Automatic deformation parameters for ruthenium and zirconium
- Option to add net-baryon density dependence to symmetry potential
- Option to add high momentum particle into a box calculation
- Changed the NN transition region to 3.5-4.5 GeV to better describe the experimental data
- Box now has minimum length given by the grid size
- The final-state cross-section output provided by
smash -S pdgID1,pdgID2
no longer includes resonances
- Collision finding with frozen Fermi motion: Use beam momentum for collision finding if nuclei have not interacted
- Fix output time for output at the event end on the command line to always be correct
Link to diff from previous version
Date: 2019-05-24
- Fix thermodynamic VTK output of the Landau velocity
- Particle properties updated to use PDG 2018 data (this includes 5 new N* and a new Delta*)
- Lund fragmentation function for leading baryons in soft non-diffractive string processes
- Support for customized nuclei: optionally reading in initial nucleon positions in collider modus
- New density type for charge/isospin and possibility to output the charge currents without smearing
- Option to place a single high-momentum particle in the center of the sphere modus (~jet)
- SMASH compiles now also with GCC >= 9, Clang >= 7
- No debug output in the default build type, which results in much better performance
- Documentation of formation time
- Correct declaration of Woods-Saxon distribution for deformed nuclei
Link to diff from previous version
Date: 2019-03-07
Version for JETSCAPE run
- New tests for density and potential
- New density type for charge/isospin
- Added option to propagate a high momentum hadron through the sphere
- Exact Pythia version is now required
- Improve third party infrastructure
- Default build type amended with one flag
- Unify functions for EM and hadronic widths of resonances
- Bug fixes related to formation of particles including
- Correcting the boost
- Adjust resonance decay times
- Add unformed particles to grid for collision finding, if they form during the time step
Link to diff from previous version
Date: 2018-12-04
- Documentation of formation time
- Continuous particle formation for unformed particles from string fragmentation processes
- Correct generic radius for nuclei with A > 16, except for Au, Pb, U, Cu as they are/were exactly specified
Link to diff from previous version
Date: 2018-11-27
Known issues:
- Simulations at high √sNN above ~30 GeV are slow due to the initialization of Pythia for hard scatterings
- Strangeness production at intermediate energies is off due to the string excitation and fragmentation (only tuned to pp elementary data)
- No Coulomb potential is available