Whats new?

With Nexus being actively developed, there are regular new versions and releases. You can find a list of what’s new to the different versions here.

latest

API changes:

  1. Sample removed. A Sample constructor still exists to automatically generate the new sample classes FowrardSample and GrazingSample.

  2. new ForwardSample class. Specific sample class with proper mehtods for samples in forward scattering geometry.

  3. new GrazingSample class. Specific sample class with proper mehtods for samples in grazing incidence scattering geometry.

  4. Beam class changed. Default constructor creates an unpolarized beam. The attributes polarization, mixing_angle and canting_angle have been added and are fitable. SetCoherencyMatrix() and Rotate() methods have been removed due to possible conflict in fits. mixing angle definition changed by a factor of two. Jones vector is set automatically during initialization.

  5. Analyzer class changed. The attributes efficiency, mixing_angle and canting_angle have been added and are fitable. SetJonesMatrix() and Rotate() methods have been removed due to possible conflict in fits. mixing angle definition changed by a factor of two.

  6. Residual class changed. The residual function has been changed to support an adjustable exponent. It enables to use other than least-square prolems, like log-likelihood estimators. It does not work with the ceres solver modules, which always solve least-square problems.

  7. natural_abundance attribute added to MoessbauerIsotope.

bug fixes:

  1. fixed analytical roughness calculation error in grazing incidence (of version 1.2.0)

changes:

  1. Ln() residual renamed to Log().

  2. Log10() and Log() residuals changed. Valid data changed from x>1.0 to x>0.0.

  3. LogLikelihood() residual added.

  4. roughness calculation of nuclear part changed from second order to first order correction.

miscellaneous:

  1. Gitlab piplines changed to miniforge3. Conda installation instruction inlcude miniforge options. Miniforge should be used by some users due to license restrictions on conda.

version 1.2.0

bug fixes:

  1. SimpleSample assignment works again

  2. corrected error in :function:`TimeSpectrum.Plot()`.

  3. SetAtomicScatteringFactorCXRO() works again

  4. fixed error on multiple assignments of the same Material instance to several Layer instances.

  5. fixed bug in fits of EnergyTimeSpectra.

  6. changed 3D mag distributions to true spherical random values.

  7. numpy version 2.0 conflict for some python versions resolved.

added:

  1. included notebooks to tutorials.

  2. new Examples section in documentation with juypter notebooks.

  3. new tools module with CountRateEstimator() and Mask() function. The mask function restricts arrays to a certain range. Useful for plotting.

  4. added GetSiteSpectra() to tools module. Get the individual spectral components of a Sample object.

  5. added AreaSites() to tools module. Get the area ratio of the individual sites of a Sample object.

  6. broadening parameter added to Hyperfine class to describe model-free independent line broadening.

  7. texture coefficient added to Hyperfine class.

  8. site specific Lamb-Moessbauer factor to Hyperfine class.

  9. added AreaRatios() and AngleA23() to theory module to determine the area ratio A23 from a polar magnetic angle and vice versa.

  10. added BeamDivergence() function to theory module.

  11. added Normalization() function data module.

  12. added Lorentzian functions FindPeaks(), GetLinewidths(), GetLorentzian(), GetAreas() to data module.

  13. new LoadFile() function in data module.

  14. a couple of Moessbauer isotope parameters are now fitable.

  15. new ClearDistribution() method.

  16. added 99-Ru, 67-Zn, 172-Yb and 174-Yb isotopes.

  17. added residual SqrtStdDev.

  18. added Racah W coefficient and 6j-symbols to quantum module

  19. added some polynominal functions to quantum module (not for macOS).

  20. print progress output option for nuclear reflectivity methods added. Default is False now.

  21. interpolation option added to AutoFold.

  22. added file output for fitting module.

changes:

  1. SetRandomDistribution() method optimized. New methods for random sampling.

  2. AutoFold() optimized. Was not working correctly for some data sets. Interpolation implemented.

  3. Plot() functions show the residuals used for the cost function and the bare residuals now.

version 1.1.1

bug fixes:

  1. fixed error (of v 1.1.0 and 1.0.4) that only sample objects are used

version 1.1.0

bug fixes:

  1. fix shift error in FFT for AmplitudeTime method

  2. correct scaling of nuclear reflectivity

  3. corrected data race issue for parallel computation

added:

  1. equality contraints for fitting

  2. inequality constraints for fitting

  3. external fit variables for fitting

  4. error analysis for fit parameter via gradient method or bootstrap method

  5. temporal and angular offsets can be fit

  6. file output of the fit report

  7. file save option to Plot() functions

version 1.0.4

bug fixes:

  1. wrong ordering of complex entries in AmplitudeTime method, issue 11

  2. squared scaling for nuclear reflectivity, issue 12

  3. velocity calibration offset, issue 13

  4. non-deterministic behavior with parallelization, issue 15

  5. wrong nuclear scattering results for thick resonant layers in reflectivity, issue 16. Changed check for matrix invertibility and calculation mod.

added:

  1. SimpleSample class

  2. Sample motion

  3. FunctionTime class

  4. SimpleSample class

  5. Second Order Doppler Debye Velocity functions

  6. baseline correction functions to data module

  7. more isotopes

updated meson build to account for pagmo 2.13

version 1.0.3

bug fixes:

  1. distribution_points assignment, issue 5

  2. rectangular beam profile correction, issue 9

  3. on nuclear calculations on multilayers, issue 10

Standard residual of reflectivity and transmission methods set to residual.Log10()

added:

  1. 121-Sb, 125-Te, 45-Sc

  2. theory module

  3. nuclear quality factor

  4. coherent and incoherent summation for thickness and angles

  5. Plot functions for most methods

version 1.0.2

added:

  1. CLANG support

  2. magnetic field conversion functions

  3. functions to find extrema

  4. flip option to folding functions

version 1.0.1

added:

  1. CONUSS diffraction object

  2. time window for energy methods

  3. legal notes

  4. automatic scaling and background option