Skip to content

ENDFtk v1.2.0

Latest

Choose a tag to compare

@whaeck whaeck released this 12 Jun 03:55
· 2 commits to main since this release

This update makes the following changes on interface functions:

  • The regions() and pairs() interface functions on the TAB1 record interface functions have been removed. The removal of these interface functions has no impact on the Python interface as these interface functions were not included on the Python side.
  • When using the C++ interface for atomic relaxation data, a Transition now has a isRadiative() and isNonRadiative() function returning a boolean so that a user can check if a given transition emits a photon or electron without having to look at subshell identifiers. Since Transition is not exposed on the Python side, this is not available on the Python side.
  • NBT(), INT(), boundaries(), interpolants(), NR(), numberInterpolationRegions() interface functions were added on TwoBodyScattering::TabulatedDistribution in MF6 and MF26 that mimic the behaviour of a TAB1 record.
  • For LCOMP1 RMatrix Limited, the GAM() and resonanceParameters() functions have been changed to work the same way as the MF2 version. The size of the returned arrays is no longer equal to the number of channels.
  • fissionYieldValues() and fissionYieldUncertainties() functions were added to extract fission yield data as single columns in the FissionYieldData class in MF8.
  • Miscellaneous documentation updates were made.

In addition, the following issues were corrected:

  • In some ENDF files (such as found in the JEFF 3.3 decay library files) the directory records in MF1 MT451 sometimes have superfluous zeros in column 1 and 2 (similar to how END records sometimes have supefluous zeros in columns 1 through 6). Previously, ENDFtk flagged these directory records as errors. This has been corrected, although these columns will still be left blank when printing them out (in the same way as END records).
  • Some ENDF decay data files (such as found in the JENDL-5 decay library files) also seem to use ENDF LIST records with NPL=0 for the decay modes of stable isotopes where the ENDF manual states that is should be NPL=6 with all zeros in the list. ENDFtk previously flagged these as erroneous. Now ENDFtk will issue a warning and create the ENDF LIST record that the manual says it should be. In addition to this change, ENDFtk now allows the use of NT=10 for the specification of discrete spectra.
  • A minor bug in the rectangular matrix covariance block was corrected. The values for the row and column energies are lifted out of a larger array using the std::ranges::take and std::ranges::drop function. For the column energies, we forgot to properly end the sequence. As a result, the end() iterator of the range did not point to the end of the column energies but to the end of the covariance values, which is now corrected.
  • In MF8 MT457 DiscreteSpectrum, NT=8 (which can occur for electrons, i.e. STYP=8), was explicitly disallowed by ENDFtk. This was corrected and a new constructor reflecting this usage was added as well.
  • The STA variable in MF1 MT451 was interpreted incorrectly and this has now been fixed. An additional isUnstable() function has been added to the interface.
  • The NJSX value (the number of spin groups) is now read from the CONT record before the particle pairs in MF32 R-matrix limited uncertainties since SAMMY does not print the NJSX value on the particle pairs (the ENDF format basically has the NJSX value appear in two places and ENDFtk used the second one while SAMMY only prints out the first one). This "breaks" some interface functions (the R-matrix limited uncertainties from_string() function now requires the number of spin groups while previously it did not).
  • In MF28 MT533, the electron population was being returned as an integer value while this can be a floating point value. This has been corrected.
  • All electron subshell identifiers in MF26 MT533 are returned as an integers.
  • gcc-12 optimisation caused issues with MF8 MT457 values to not be properly initialised upon reading the section as a string. While this particular issue was corrected, caution is advised when using gcc-12 on Mac arm64 systems as similar issues may still be present in other parts of the library.
  • The MacOS 15.2 system include libraries seem to define a TAB1 and TAB2 macro, which causes a compiler error in ENDFtk since we define aliases for the TAB1 and TAB2 record. These aliases are not used in any of the ENDFtk source code so we removed them to fix the issue.
  • A bug was fixed for MF1 MT451 descriptions strings when they did not include a terminating new line character

The range-v3 dependency has been removed and replaced with a partial implementation of the C++20 and C++23 ranges standard (see the tools dependency release notes for more information). This change has no impact on functionality.

A few updates were made in the CMake files and a few source files for Windows compilation issues. We now also use shacl_cmake to be in line with ACEtk.

The GitHub CI was also updated: macos-14 (arm64 architecture) was added in addition to macos-13 (intel architecture).

The version of the tools dependency and the pybind11 dependency was upped to the latest release (no functionality changes result from these dependency changes).

Valgrind testing was added to the GitHub CI to detect memory issues in the future.