Releases: mctools/ncrystal
NCrystal release 2.4.0
Various fixes relating to the usage of plugins. Most importantly, the delivery of NCMAT data files from plugins is now properly supported. For clarity, and to avoid name clashes, such data files must follow a clear naming scheme "ncplugin-_*.ncmat". The mechanism for making the data files available will depend on how the plugin is used, and is of course automatic. For a static plugin, built into a given NCrystal installation, the data file will be installed along with all of NCrystal's own data files (either as physical files or compiled into the NCrystal library, depending on the NCrystal configuration). For a dynamic plugin, built separately and later loaded by adding the plugin's shared library to NCRYSTAL_PLUGIN_LIST
, the data file will be compiled into the plugin library. Finally, for plugin developers, the data files will be made available via a symlink, ensuring that it is possible to directly edit the data file during development.
Long story short: If plugin developers place an NCMAT file in the /data directory of their plugin repository, anyone using the plugin can also use that file with NCrystal, simply by providing its filename. Thus, NCrystal configuration strings with those files can be directly shared among users and developers of these plugins.
NCrystal release 2.3.1
Bugfix release addressing issues with plugins. One issue prevented dynamic loading of plugins, and the other issue prevented plugins from registering in-memory files in some situations.
NCrystal release 2.3.0
For most users this release is identical in features and capabilities to release 2.2.2. The main change is that the NCrystal license conditions are cleaned up, due to a complete rewrite of the internals of the file NCSpan.hh
. This file previously contained third party code which was using a different open source license than the rest of NCrystal. With this release, all core NCrystal code is once again cleanly available under the Apache 2.0 License.
The release also contains a few minor technical fixes, mostly related to plugin development. As always, the CHANGELOG contains more details.
NCrystal release 2.2.2
This release is identical to release 2.2.1 except for a bugfix for system-wide installations. Input files were accidentally opened in RW mode rather than just readonly, causing permission errors when user invoking NCrystal did not have write-permission to the input file. Thanks to the McStas crew for noticing this.
NCrystal release 2.2.1
This release is identical to release 2.2.0 except for two minor bugfixes. One fix means that .nxs, .laz, and .lau files can be read again, and one fix avoids CMake warnings in certain cases when NCrystal is used as a CMake sub-project.
NCrystal release 2.2.0
The NCrystal developers are happy to announce the NCrystal v2.2.0 release. In addition to a slew of minor fixes and adjustments (see the CHANGELOG for details), it brings a few new major features. First of all, the CMake configuration code was rewritten and modernised, allowing client code to use find_package(NCrystal)
statements to locate NCrystal and import its targets (client code needing Geant4 hooks will instead write find_package(G4NCrystal
). Installations should now also be fully relocatable, and comes with a new ncrystal-config
script, which can be queried for configuration details or used to setup the users environment as needed for all NCrystal features to work smoothly (the setup.sh
/unsetup.sh
scripts are still available of course).
The perhaps biggest feature of NCrystal v2.2.0 is the introduction of a proper plugin system! Such plugins can be externally developed (for instance on GitHub), and either loaded dynamically at run-time by NCrystal or statically compiled into the NCrystal library. How to use or develop plugins is described in more detail at the new Plugins page in the NCrystal wiki.
Other noticable changes in this release is that Python3 is now the only supported version of Python, and the minimum CMake version requirement has been increased to v3.10.
NCrystal release 2.1.1
This release is identical to release 2.1.0 except for one minor bugfix, which affected compilation of some client code under certain conditions.
Specifically, it reverses a minor change in NCDefs.hh from release 2.1.0, which meant that client code which was including public NCrystal C++ headers was prevented from using constants like M_PI and friends. This was considered a bug, since NCrystal should not prevent client code from using such constants, even if their usage is considered bad practice (they are not portable and they are macros).
NCrystal release 2.1.0
The NCrystal developers are happy to announce the NCrystal v2.1.0 release. In addition to a slew of minor fixes and adjustments (see the CHANGELOG for details), it brings a few new major features. Firstly, flexible atomic definitions can make your materials "dirty" (impure or enriched). Secondly, new developers can get their hands dirty with new examples and features. Finally, NCMAT data no longer needs to reside in actual physical files.
These new features are explained more fully on the release v2.1.0 announcement page.
NCrystal release 2.0.0
After several years of investigations and prototyping, followed by almost a year of intense full time work on the actual implementation and fine-tuning of algorithms and interfaces, the NCrystal developers are very proud and excited to finally being able to present the NCrystal v2.0.0 release!
The main feature of this release is that it finally brings proper state-of-the-art inelastic physics to NCrystal. Additionally, also incoherent-elastic scattering was cleaned up and made self-consistent, so NCrystal v2.0.0 can truly be said to be the release in which NCrystal finally moves beyond its former focus on Bragg diffraction. Additionally and also for the first time, NCrystal can now support the modelling of certain non-crystalline materials (e.g. liquids).
The actual changes to NCrystal took place in ~500 commits touching many hundreds of files, and are far too vast to list here. However, a short summary of user-facing changes concerning physics capabilities, the materials data library, and the syntax of NCrystal configuration strings is provided at the release 2.0.0 announcement page.
NCrystal release 1.99.1 (RC1 for release 2.0.0)
This is release candidate 1 for the upcoming milestone 2.0.0 release. Users interested in bleeding-edge software can take a sneak-peak at the CHANGELOG or the v2.0.0 announcement page (note that the announcement page is work in progress until v2.0.0 is actually released).