- [PR623] Expanded the sesame2spiner syntax to support multiple material definitions in one input file.
- [PR618] Add PTDerivativesFromPreferred for computing derivatives of a mixture in a cell
- [PR630] Thread execution spaces through vector API.
- [PR636] Wrap numpy arrays in a simple wrapper to make GPU compilers happy.
- [PR633] Make robust::sgn handle unsigned properly
- [PR629] Use macros and eos_base and eos_variant to reduce boiler plate
- [PR626] Fix C++20 warnings related to lambdas
Date: 03/25/2026
- [PR600] Added mass fractions for multiphase tables to sesame2spiner and added MassFractionsFromDensityTemperture/InternalEnergy to the SpinerDependsRhoSIE and SpinerDependsRhoT equations of state.
- [PR589] InternalEnergyFromDensityPressure
- [PR616] Ensure introspection methods are threaded through modifiers properly
- [PR615] Clarify expectations on quantities preserved up to machine precision by the PTE solver
- [PR609] Fix bugs introduced in 607, which did not properly handle initial guesses and had a typo that introduced UB
- [PR607] Make the PTE solvers a little bit more adaptable to EOS models that prefer pressure as an input
- [PR601] Make Serialize() return a smart pointer
- [PR617] Fix issue for findpackage when no library target to find
- [PR605] Improve HDF5 erorr handling when reading tables
- [PR604] Update kokkos kernels linalg call after kokkos kernels became more strict
Date: 12/25/2025
- [PR556] Add introspection into types available in the variant
- [PR564] Removed Get() function from IndexableTypes since it could have unexpected consequences when a type wasn't present
- [PR583] Added GenericIndexer class to provide more complex array indirection
- [PR567] Fixed an OOB array access bug in the Fixed T PTE solver
- [PR561] Fix logic for kokkos-kernels in spackage so that it is only required for closure models on GPU
- [PR563] Fixed DensityFromPressureTemperature for the Carnahan-Starling EOS.
- [PR564] Fix logic for numerical vs type indices by adding safeGet(), safeSet(), safeMustGet(), and safeMustSet() helpers
- [PR568] Fix bug in FixedT and FixedP PTE solvers when materials have negative energies at the initial guess
- [PR583] Allow PTE solvers to operate on tables with pressure as a preferred input
- [PR579] Python bindings now support numpy arrays with arbitrary stride. Numpy array length no longer required input.
- [PR575] Pin variant submodule to the same commit as the spackage
- [PR590] Remove local spack-repo and use PortsOfCall::variant instead of mpark::variant
- [PR595] A number of robustness fixes/cleanups. Add a warnings build to the CI.
- [PR594] clean up tests in preparation for ports-of-call variant transition
- [PR588] Add DensityEnergyFromPressureTemperature in unit system test
- [PR576] Clean up some header includes to use the C++ versions
- [PR559] Document the intent of the virtual keyword in solvers
- [PR558] Make EOSPAC CMake options depend on SINGULARITY_USE_EOSPAC option
- [PR573] Add CMake option for address sanitizing
Date: 8/27/2025
- [PR507] Entropy now available from EOSPAC
- [PR506] Add two examples related to PTE
- [PR517] Added Coldcurve to SpinerEOSDependsRhoSie, added functionaliuty to MinInternalEnergyFromDensity in SpinerEOSDependsRhoSie, added test to test_eos_tabulated.cpp
- [PR512] Cleanup fortran docs
- [PR537] Fix pathological initial guesses in PTE solvers
- [PR523] Fix reading order in SpinerEOSDependsRhoSie
- [PR506] Added some robustness checks to the PTE solvers
- [PR505] rename LogType::TRUE to LogType::DOUBLE
- [PR495] Fix bug related to MinimumTemperature and MinimumDensity in SpinerEOSDependsRhoSie
- [PR496] Re-enable stellarcollapse2spiner, which was disabled.
- [PR524] Fix future kokkos-kernels compatibility in PTE solver
- [PR548] Change which tolerances are available for the PTE solver and how they are interpreted to hopefully provide more clarity
- [PR545] Implement reduced system for PTESolverRhoT
- [PR543] Made PTE solvers more robust for Maxwell constructed tables
- [PR502] Expose split tables to Fortran interface
- [[PR519]] (#519) Split eos_spiner.hpp into eos_spiner_rho_sie.hpp and eos_spiner_rho_temp.hpp files.
- [PR528] Remove unused variable subGroup in SpinerEOSDependsRhoT
- [PR522] Move more common functionality into spiner_eos_common.hpp
- [PR510] Make Davis EOS faster and more robust
- [PR509] Remove extraneous copies in base class
- [PR504] Add Fortran interface documentation
- [PR532] Update clang format script to be closer to CI
Date: 4/7/2025
- [PR470] Add the ability to access lambda elements by named types
- [PR459] Add electron and ion tables to EOSPAC and SpinerEOS backends
- [PR453] A PT space PTE solver
- [PR444] Add Z split modifier and electron ideal gas EOS
- [PR492] Fix import issue in spack's package.py.
- [PR485] Fix segfault in Fortran interface related to EOSPAC initialization
- [PR478] Fix bug in KPT test. Add more extensive clang build to github CI matrix.
- [PR473] Resolve memory issue. Thanks for the catch, Richard!
- [PR468] Move definition of def_en and def_v to an implementation file
- [PR466] Fully thread lambda inputs through the PTE solver
- [PR449] Ensure that DensityEnergyFromPressureTemperature works for all equations of state and is properly tested
- [PR439] Add mean atomic mass and number to EOS API
- [PR437] Fix segfault on HIP, clean up warnings, add strict sanitizer test
- [PR375] Added energy floor modifier
- [PR491] Fixed spackage logic to point at correct spiner version for piecewise grids
- [PR499] Hide binutils behind cmake debug build
- [PR475] Shrink the default variant. Notably moved Stiff Gas behind a flag.
- [PR487] Added static member functions to closures for scratch size interrogation
- [PR481] Move mutable diagnostic variables in singularity-eos into optional indexable types in a lambda.
- [PR486] Use default behavior for max_scratch_size and scratch_size in the eos base class
- [PR489] Move default behavior for nlambda to the eos base class
Date: 11/7/2024
Release is in preparation for JOSS publication.
- [PR416] Gibbs free energy
- [PR361] Added tests for PTEsolver and added a strawman kinetic phase transition framework
- [PR410] Enable serialization and de-serialization
- [PR330] Piecewise grids for Spiner EOS.
- [PR434] Fix failure of eospac to build on HIP and segfaults with Evalaute
- [PR424] Fix for variant patch: point to correct patch file
- [PR420] Fix broken test_get_sg_eos
- [PR417] Bugs in shared memory related to eospac resolved
- [PR330] Includes a fix for extrapolation of specific internal energy in SpinerEOS.
- [PR401] Fix for internal energy scaling in PTE closure
- [PR403] Fix Gruneisen EOS DensityEnergyFromPressureTemperature function
- [PR407] Update C++ standard to C++17
- [PR402] Added stiff gas to python interface
Date: 7/29/2024
- [PR377] Moved much of the variant creating machinery and initialization machinery into separate header files. This is useful for downstream codes that use custom variants and helps with producing plugins.
- [PR292] Added Carnahan-Starling EoS
- [PR#362] Add lambda to thermalqs
- [PR#339] Added COMPONENTS to singularity-eos CMake install, allowing to select a minimal subset needed e.g. for Fortran bindings only
- [PR#336] Included code and documentation for a full, temperature consistent, Mie-Gruneisen EOS based on a pressure power law expansion in eta = 1-V/V0. PowerMG.
- [PR334] Include plugins infrastructure
- [PR331] Included code and documentation for a full, temperature consistent, Mie-Gruneisen EOS based on a linear Us-up relation. MGUsup.
- [PR326] Document how to do a release
- [PR#357] Added support for C++17 (e.g., needed when using newer Kokkos).
- [PR#382] Added debug checks to the
get_sg_eos()interface to ensure sane values are returned
- [PR380] Set material internal energy to 0 if not participating in the pte solve to make sure potentially uninitialized data is set.
- [PR370] Fix bulk modulus calculation in spiner EOS
- [PR343] Add chemical potentials to stellar collapse gold files
- [PR342] Fix missing using statement in stellar collapse root finding routines
- [PR341] Short-circuit HDF5 machinery when cray-wrappers used in-tree
- [PR340] Fix in-tree builds with plugin infrastructure
- [PR335] Fix missing hermite.hpp in CMake install required for Helmholtz EOS
- [PR356] Guard against FPEs in the PTE solver
- [PR356] Update CMake for proper Kokkos linking in Fortran interface
- [PR373] Initialize cache in
get_sg_eos*functions - [PR374] Make the Davis EOS more numerically robust
- [PR383] Fix bug in step scaling for PTE solver
- [PR363] Template lambda values for scalar calls
- [PR372] Removed E0 from Davis Products EOS in favor of using the shifted EOS modifier. CHANGES API!
- [PR#382] Changed
get_sg_eos()API to allow optionally specifying the mass fraction cutoff for materials to participate in the PTE solver
Date: 11/28/2023
- [PR278] Fixed EOSPAC unit conversion errors for scalar lookups
- [PR316] removed
fmax-errors=3fromsingularity-eoscompile flags - [PR296] changed
CMAKE_SOURCE_DIRtoPROJECT_SOURCE_DIRto fix downstream submodule build - [PR291] package.py updates to reflect new CMake options
- [PR290] Added target guards on export config
- [PR288] Don't build tests that depend on spiner when spiner is disabled
- [PR287] Fix testing logic with new HDF5 options
- [PR282] Fix missing deep copy in sap polynomial tests
- [PR281] Pin spiner in spackage to a specific, tested version
- [PR267] Add missing eosSafeDestroy call in EOSPAC::Finalize
- [PR263] Fix stellar collapse mass fraction interpolation
- [PR258] Fix EOSPAC vector performance and add warnings when slower version gets selected.
- [PR243] Remove undefined behavior caused by diagnostic variables. Also fixed some compiler warnings.
- [PR239] Add JQuery to dependencies for docs to repair build
- [PR238] Fixed broken examples
- [PR228] added untracked header files in cmake
- [PR215] and [PR216] fix duplicate definition of EPS and fix CI
- [PR232] Fixed uninitialized cmake path variables
- [PR308] spack builds +fortran now compile via correct blocking out of interfaces via preprocessor ifdef
- [PR338] added chemical potentials from EoS
- [PR269] Add SAP Polynomial EoS
- [PR278] Added EOSPAC option functionality in class constructor
- [PR278] Added a new function for returning the minimum energy as a function of density for an EOS (only EOSPAC at the moment)
- [PR278] Added a new Fortran API for simple pressure and bulk moduli lookups
- [PR306] Added generic Evaluate method
- [PR304] added a Newton-Raphson root find for use with the Helmholtz EoS
- [PR265] Add missing UnitSystem modifier combinations to variant and EOSPAC
- [PR279] added noble-abel EoS
- [PR274] added a stiffened gas EoS
- [PR264] added a Helmholtz EoS
- [PR254] added ability to peel off modifiers as needed
- [PR250] added mass fraction output to stellar collapse eos
- [PR226] added entropy interpolation to stellar collapse eos
- [PR202] added the Vinet analytical EOS wth test cases and documentation.
- [PR226] added entropy interpolation to stellar collapse eos
- [PR209] added more documentation around how to contribute to the project and also what a contributor can expect from the core team
- [PR214] added documentation about adding a new EOS
- [PR228] and [PR229] added untracked header files in cmake
- [PR233] Added entropy infrastructure to singularity. Add entropy for the ideal gas and modifiers while throwing an error for EOS where entropy is not implemented yet
- [PR177] added EOSPAC vector functions
- [PR311] Refactor EOSBuilder for flexibility and extensibility
- [PR310] Speed up and clean up tests
- [PR295] Add fast logs to singularity-eos
- [PR246] Update CMake with upstream changes
- [PR223] Update ports-of-call and add portable error handling
- [PR234] update ports-of-call to correct for undefined behavior in error handling
- [PR219] Removed static analysis from re-git pipeline
- [PR233] Exposed entropy for the EOS type (now required for future EOS)
- [PR308] Fortran initialization interface functions no longer require modifier arrays, they are optional parameters.
- [PR190] update CI on re-git
- [PR245] Separating get_sg_eos to other files. Build/compilation improvements, warning fixes/suppression.
- [PR308] Added a fortran test.
- [PR293] Removing PTofRE function. This will no longer be callable downstream.
Date: 12/14/2022
- [PR209] added more documentation around how to contribute to the project and also what a contributor can expect from the core team
- [PR192] remove h5py and start using gold files
- [PR198] Use a more robust HDF5 handling that eliminates some edge breaks
- [PR181] change from manual dependecy handling to using hdf5 interface targets
- [PR206] add another way to build sphinx docs
Date: 10/12/2022
- [PR183] fortify cmake export config to always have interface targets of dependencies that need them
- [PR174] fix build configuration when closures are disabled
- [PR157] fix root finders in Gruneisen, Davis, and JWL
- [PR151] fix module install
- [PR175] document some builds
- [PR164] provide facilities for an initial temperature guess for PTE
- [PR156] This PR adds 2 new PTE solvers, solvers that obtain a PTE solution when either P or T are known. This enables mixed material rho-T and rho-P initializations to be dealt with correctly.
- [PR156] This PR changes how the get_sg_eos function calls PTE solvers and does lookups based on input condition. Each input condition now calls into its own specialized kernel that ensures the inputs and outputs are treated appropriately.
- [PR168] move EOS files to header-only
- [PR167] allow for the possiblity Kokkos version can't be inferred
Date: 07/07/2022
- [PR150] This changelog
- [PR146] Changes needed to cmake to enable spackage upstream
Date: 07/07/2022
This is the start of changelog
© 2021-2024. Triad National Security, LLC. All rights reserved. This program was produced under U.S. Government contract 89233218CNA000001 for Los Alamos National Laboratory (LANL), which is operated by Triad National Security, LLC for the U.S. Department of Energy/National Nuclear Security Administration. All rights in the program are reserved by Triad National Security, LLC, and the U.S. Department of Energy/National Nuclear Security Administration. The Government is granted for itself and others acting on its behalf a nonexclusive, paid-up, irrevocable worldwide license in this material to reproduce, prepare derivative works, distribute copies to the public, perform publicly and display publicly, and to permit others to do so.