Dear BornAgain users:
we released version 22.1.
Release 22.0 was skipped because we mishandled deployment to PyPI.
So this is major release 22, the result of a long development cycle
with deep internal restructuring and cleanup. Altogether, we now
achieve improved stability and functionality with 15% less lines
of source code.
Some highlights:
The auto-generated Python bindings were simplified, and are now ready
for NumPy 2. NumPy 1 continues to be supported.
Simulations now return a unified data type Datafield. Plot functions
in module ba_plot were simplified and unified. Documentation is provided
in the online reference, chapters “Data types” and “Plotting”.
Time-of-flight off-specular neutron scattering is now supported by
classes LambdaScan and QzScan.
In the sample model, class Sample replaces Multilayer. Class Roughness
is now an attribute of Layer. The roughness model has become more
versatile. Beside the previous default, now called SelfAffineFractalModel,
there is a LinearGrowthModel that propagates real-space features from
lower to upper interfaces. Otherwise interface-interface cross correlations
can be set as a separate model component. New classes TanhTransient and
ErfTransient are 1:1 replacements for the previous enum-based syntax.
On the downside, all GUI project files compatibility is broken.
For upgrading Python scripts, we provide for the first time a tool:
upgrade-21-to-22.py. This tool, however, will fail if it encounters
certain plot commands or class constructors that have no one-to-one
correspondence in the new API.
Beware that the semantics of the Spheroid constructor has changed:
The arguments are now Rxy and Rz instead of Rxy and H.
For a full list of changes see the CHANGELOG.
Windows users who are working in Pyenv or Conda environments please be
advised that a bug in Python 3.10 may cause a crash when a Python script
is imported to the GUI unless certain environment variables are set,
see here and here. We recommend upgrading to Python 3.11 or newer.
Because of Apple’s increasingly restrictive policies we gave up on
producing binary installer packages (bundles) for macOS. Mac users
need to build BornAgain on their own machine. This is done easiest
by using a "formula" from our Homebrew "tap". The build process is
then steered by the Homebrew package manager. Just be prepared that
it may take an hour or longer.
Best greetings from the maintainer team:
Ammar Nejati, Mikhail Svechnikov, Joachim Wuttke