Releases: vlvovch/Thermal-FIST
Version 1.6
Version 1.6
Date: 2026-02-16
The major additions in this version are:
- Update the default particle list to PDG2025
- Significantly extended and validated charm sector
- WebAssembly (WASM) support for running the GUI in a web browser: https://thermal-fist.vovchenko.net
- Improved calculation of Fermi-Dirac intergrals at low temperatures
- A number of technical improvements and minor bugfixes
Development Note
This is the first version with significant involvement of AI coding agents, primarily Claude Code and OpenAI Codex. Their use streamlined the refactoring of the code, including but not limited to: WASM implementation of QtThermalFIST; validation of hadron properties against PDG; documentation; extension of exampled and unit tests. The AI still made some mistakes which needed manual input to fix. However, the capability of the agents ahve increased significantly recently and their use is likely to become more frequent.
PDG2025 particle lists
- The default particle list is now based on the 2025 edition of the PDG listing
- Significantly extended and validated charm sector: charmed hadrons and charmonia cross-checked against PDG2025 mass/width data, with corrected branching ratios and catch-all decay channels for completeness
- Modular list structure in
input/list/PDG2025/modular/for fine-grained customization - Isospin-symmetric list available (
list-isospin-symmetric.dat)
WebAssembly (WASM) support
The QtThermalFIST GUI can now run directly in a web browser via WebAssembly. It can be accessed directly at thermal-fist.vovchenko.net. Chrome is recommended for multi-threaded execution.
- Core GUI functionality in the browser, including thermal model calculations, thermal fits, equation of state, and event generator
- Calculations are performed locally (client-side) in the browser using your CPU
- Supports both single-threaded and multi-threaded builds (Qt 6.10.1 + Emscripten 4.0.7); multi-threaded builds require proper COOP/COEP headers and SharedArrayBuffer support
- See
docs/wasm-build.mdfor build and deployment instructions
GUI enhancements
- Quick particle list switching via two combo boxes: PDG edition (PDG2014/2020/2025) and list variant (default, no nuclei, with charm, etc.)
- Informative display of loaded particle list with particle count
- Improved rendering of lattice QCD data for ratios in the equation of state tab
- Better default parameter ranges for cosmic trajectory calculations
Improved low-temperature ideal gas functions
- Replaced simple Gauss-Laguerre quadrature with a Sommerfeld-Legendre scheme that splits integration at the Fermi momentum p_F: 32-point Gauss-Legendre below p_F with an adaptive mapping that concentrates nodes near the Fermi surface at low T, plus 32-point shifted Gauss-Laguerre above p_F. The old scheme failed to resolve the sharp Fermi step at low temperatures, producing errors of 100–390% in susceptibilities
- Applied integration-by-parts (IBP) decomposition to Fermi-Dirac integrands for baryon susceptibilities (χ₂, χ₃, χ₄), replacing oscillatory Fermi-Dirac derivative products with smoother forms amenable to the Sommerfeld-Legendre + Laguerre quadrature scheme
- Applied double-IBP (σ·H) form for ds/dT achieving ~2×10⁻⁴ relative accuracy at low T (16× improvement over original integrand)
- Extracted analytic T = 0 values for susceptibilities and entropy/energy density derivatives, decomposing each result into a known constant plus a thermal correction that vanishes as T → 0
- Added
CalculateEntropyDensityDerivativeT()andCalculateEnergyDensityDerivativeT()to all model classes (Ideal, VDW, EV-Diagonal, RealGas) with proper T = 0 support - Added
dimensionfullflag toCalculateChargeFluctuationsacross all model implementations to avoid T-division that breaks at T = 0 - Added LaTeX technical note documenting the IBP derivations and numerical improvements (
docs/notes/FermiIntegralIBP/)
Bugfixes
- Fixed calculation of charge susceptibilities at zero temperature
- Fixed Bose-Einstein integrals at T = 0 and μ > m
- Fixed Broyden solver stability issues with
SearchFirstSolutionfallback - Fixed V_c fits in charm-canonical ensemble
- Added check for multi-charmed states in
ThermalModelCanonicalCharm - Thermodynamic stability checks via Hessian eigenvalue analysis
- More stable cosmic trajectory calculations in the GUI
- More lenient handling of missing decays
- Fixed slow font lookup on macOS due to missing "Monospace" font family in particle dialog
Effective Mass Model
- Implemented temperature derivatives (ds/dT, de/dT, dn/dT, dχ₂/dT) in the
EffectiveMassModelvia chain rule through the gap equation, supporting both normal and BEC phases - Added
DmeffDT()for computing dm*/dT from implicit differentiation of the gap equation - Fixed
ThermalModelBase::SetParameters()to callFillChemicalPotentials(), ensuring per-species chemical potentials are always up-to-date - Added unit tests (
test_EMMDerivatives) verifying thermodynamic identity, T-derivatives, and μ-derivatives against numerical finite differences to <10⁻⁶ accuracy, including BEC phase
Other changes
- Option to use effective mass model for kaon interactions to reach large strangeness/charge chemical potentials (similar to pion implementation which was done before)
- Added
CITATION.cfffor automated citation metadata and Zenodo integration - Unified
configureTableRowHeightimplementation across all platforms - Various CI/CD improvements
- Added ALICE Pb-Pb 5.02 TeV symmetrized yield data
Full Changelog: v1.5.2...v1.6
Version 1.5.2
Version 1.5.2
Date: 2025-07-23
This update mainly fixes a couple of bugs in event generator mode (thanks to @aohlson).
Namely, it fixes a bug causing an infinite loop in the event generator when the number of particles in the event is zero.
This can happen when simulating low-multiplicity proton-proton collisions with local charge conservation.
It also fixes an issue with initialization of Breit-Wigner distributions in the event generator, which could cause invalid_argument exceptions.
Bugfixes
- Fixed a bug in the event generator causing an infinite loop when the number of particles in the event is zero.
- Fixed an issue with initialization of Breit-Wigner distributions by properly checking if the width is zero.
Enhancements
- Implemented
$m \to 0$ limit for quantum statistics calculations using cluster expansion. - Added additional flag checks for ThermalModelCanonical calculations.
Full Changelog: v1.5.1...v1.5.2
Version 1.5.1
Version 1.5.1
Date: 2025-07-06
Bugfixes
- Fixed the setting of meson–meson and meson–baryon interactions in the GUI (it was opposite to what was selected)
- Corrected pressure and energy density calculation for mixed-canonical ensembles.
Other changes
- GUI updates: extended range for
$n_B/s$ and added factorial cumulant option. - Updated build workflows.
- Various documentation and typo fixes.
Version 1.5
Date: 2024-03-22
Version 1.5 contains a number of new features and improvements.
Real gas HRG
This version contains a first complete version of real gas HRG.
Real gas is a generalization of the van der Waals HRG.
It implements a generalization of the excluded volume prescription by considering non-linear EV prescriptions, such as Carnahan-Starling EoS.
It also allows one to incorporate arbitrary mean fields which can be a function of all densities in the system.
This allows one to model the effects of interactions in dense regime, such as in neutron stars.
A real gas model for a single component case has been formulated in Vovchenko, Phys. Rev. C 96, 015206 (2017) while a paper detailing the formulation of the model for multiple components is in preparation.
Real gas HRG is implemented as a new ThermalModelRealGas class.
It takes as input the excluded volume model and the mean field model, both of which can be arbitrary.
The source code contains a number of examples of both models, such as van der Waals/Carnahan-Starling excluded volume, and van der Waals or baryon density dependent mean field.
Real gas HRG fully supports the calculation of all the standard thermodynamic quantities and susceptibilities and has the complete functionality of van der Waals HRG model from before.
See examples ThermodynamicsBQS.cpp and SusceptibilitiesBQS.cpp which include Real Gas HRG option and this link for documentation.
Cosmic trajectories
This version contains an implementation of cosmic trajectories in the Early Universe, given baryon, charge, lepton flavor asymmetries.
- Reference: Vovchenko et al., Phys. Rev. Lett. 126, 012701 (2021).
- Class: CosmicEoS
- Documentation: this link
- Example: this link
- GUI:
Equation of statetab - Implements the EoS of HRG + leptons + photons
- Computes trajectories in the space of B, Q, and lepton flavor chemical potentials
Other new features
-
Partial chemical equilibrium with baryon annihilation
This version contains an implementation of partial chemical equilibrium with baryon annihilation, namely
$B\bar{B} \leftrightarrow n\pi$ reaction, where$n$ is a parameter~(typically$n = 5$ ), which can be utilized in thermal fits.- Class: ThermalModelPCEAnnihilation.
- Reference: Vovchenko, Koch, Phys. Lett. B 835, 137577 (2022).
- Documentation: this link
-
Neutron star matter calculations
- Supported by adding leptons to the list from /input/list/electroweak and setting charge neutrality and
$\mu_S = 0$ - For a meaningful calculation, one should use an interacting version of the HRG, e.g. real gas
- Example here
- Supported by adding leptons to the list from /input/list/electroweak and setting charge neutrality and
-
Effective mass model for pions
- Repulsive interactions and Bose-Einsten condensation
- Described in https://arxiv.org/abs/2004.09004
-
Magnetic field
- HRG model in the magnetic field as formulated in https://arxiv.org/abs/1301.1307
- Additional features: Hadron number densities and fluctuations
- GUI:
PCE/Saha/Other...configuration - Reference: Vovchenko, Phys. Rev. C 110, 034914 (2024)
-
New thermodynamic quantities
- Temperature derivatives of the energy, entropy and hadron number densities
- Temperature derivatives of susceptibilities
- Hessian matrix of the pressure wrt
$T$ and$\mu$ 's - Adiabatic and isothermal sound velocity (with multiple conserved charges and specific entropies)
- Specific heat capacity
$c_V/T^3$
Event generator
- Shear and bulk viscous corrections
- Part of FIST sampler (see also https://github.com/vlvovch/fist-sampler)
- Currently no excluded volume and bulk viscosity simultaneously
- Thanks to: @JanHammelmann and @NGoetz
- Support for output to SMASH
- Propagation of particles after (weak) decays and DCA cuts
New examples
- Cosmic trajectories
- Neutron star matter EoS at T = 0
- Thermodynamic functions in $(T, \mu_B, \mu_Q, \mu_S)$ phase diagram
- Susceptibilities, speed of sound, and heat capacity in $(T, \mu_B, \mu_Q, \mu_S)$ phase diagram
Technical improvements
- New logo
- GUI supports and uses Qt6 by default now
- Qt5 still works but not will not be guaranteed to work in the future
- Linear algebra: Migrated to Eigen-3.4.0
- GitHub actions for automated tests/compilation on various platforms
- Expanded unit tests
- Better warning and error handling
- Various fixes of minor errors
GUI enhancements
- Calculations within real gas HRG (in the model selection)
- Baryon annihilation in PCE (
PCE/Saha/Other...) - Effective mass model for pions (
PCE/Saha/Other...) - Tabular view of calculation in the EoS tab and export to file (
Equation of statetab) - Calculation of cosmic trajectories (
Equation of statetab) - Calculations at fixed conserved charge densities (instead of fixed
$\mu$ 's) (Use densitiescheckbox inThermal modeltab) - Various enhancements
Full Changelog: v.1.4.2...v1.5
Version v1.4.2
Date: 2022-11-07
- Fix bug (introduced in v1.4.1) with the normalization of two-particle susceptibilities in ThermalModelIdeal
Version v1.4.1
Date: 2022-10-18
- GUI: Added more clarity concerning the loading of the decays list
- GUI: Number of known decays channels shown in the table for unstable hadrons
- Added explicit calculation of Fermi-Dirac integrals at T = 0
Version v1.4
Date: 2022-08-25
Main new feature: Excluded volume effect in the Monte Carlo event generator
Enhancements
- Hard-core repulsion in event generator (see FIST sampler)
- Crossterms EV-HRG model is now implemented as partial case of QvdW-HRG model (for a = 0)
- GUI: Blast-wave model: Option to set the value of parameter r_max (the maximim transverse radius)
- GUI: Minor improvements for PCE-HRG model thermal fits
Bugfixes
- GUI: Fix bug with the sign of strongly intensive quantity Delta
- GUI: Options for different treatments of hard-core repulsion in event generator
Version 1.3.4
This release fixes a bug with some calculations of scaled moments and Pearson correlation coefficients in GUI that were introduced with the previous release 1.3.3
Version 1.3.3
Date: 2022-05-03
GUI: Added scaled moments and Pearson correlation coefficients into the correlations dialog
Version 1.3.2
Date: 2022-02-18
Minor enhancements and bugfixes
Enhancements
- GUI: Binning options in event generator
- GUI: Ability to add resonances and other particles to online analysis
- GUI: Export Monte Carlo momentum distributions to file
- Event generator: Monte Carlo sampler of ideal HRG from an arbitrary (numerical) hypersurface
- Event generator: Event generator output through a new event writer class
- Event generator: Experimental support for HepMC format
- Lists: Checks the list for particles with non-zero strangeness/charm but zero strangeness/charm quark content and outputs warnings
Bugfixes
- Fix the ordering of p0 and px,py,pz output in ascii event generator output. Was px,py,pz,p0, now it is p0,px,py,pz which is consistent with the header line
- Strangeness/charm neutrality equations will now be solved properly for lists with incorrect zero |s| and |c| columns