Skip to content

Releases: Merlin-Collaboration/Merlin

Merlin++ 5.03

06 Mar 21:32
a61e618
Compare
Choose a tag to compare

Changes in release 5.03 (2020-03-06)

DOI

Merlin++ now used C++14. You may need to update your compiler.

Materials and Scattering

This release provides the ability to define materials as mixtures.

The opportunity was taken for a major cleanup of the definitions of materials and their properties, which had evolved in a haphazard way. The classes Material, MaterialDatabase, CrossSections, MaterialMixture and CompositeMaterial were replaced by MaterialProperties and MaterialData.

Code which used these classes was updated to use the new forms. This was mainly in CollimateProtonProcess and the functions it calls such as Straggle, EnergyLoss and DoScatter, which had accumulated a lot of complicated code over the years, including diagnostic features that are no longer necessary in a production system, and features which turn out not to be as useful as at first thought. Some of these updates included minor changes to the code (such as the use of the particle energy or the bunch energy) so the output is not identical to the previous version. However any such discrepancies are small compared to the overall uncertainties in the physics.

DataTable was improved with non-const iterators. Range for loops can now be used in more places.

Some changes to Exceptions. See the APIChanges document for details.

multitrack: Scripts to compare tracking of single elements between multiple tracking codes.

Some small fixes to the tracking integrators.

Cleanup to header and includes. This significantly reduces build time. You may need to check that you have include statements for all classes used in your scripts.

Full list of changes can be found using git: git log v5.02..v5.03

Merlin++ 5.02

19 Mar 13:58
Compare
Choose a tag to compare

Changes in release 5.02 (2019-03-19)

DOI

Hollow Electron Lens: updates and refactoring.
Removed some unneeded modes. Move parameters from process to elements. Add tests.

DataTable: Introduction of new data structure and IO for TFS files.
A flexible structure for columned data. Can be used to simplify many classes.

ParticleBunch: New Constructor, to replace ParticleBunchConstructor class.
Creation of common bunch types is now in the ParticleBunch class. Distribution types are factored out into ParticleDistributionGenerator.

Aperture: Refactoring, use of DataTable.
Aperture hierarchy is simplified. New ApertureConfiguration class using factory pattern and DataTable.

MADInterface: Refactoring, use of DataTable.
New MADInterface class using factory pattern and DataTable.

Random Numbers: Switch to C++11 standard library RNG.
Removed old RNG.

LatticeFunctions and LinearAlgebra: Better handling of longitudinally unstable lattices.
LatticeFunctions can fall back to 4-dims when full 6-dim is unstable. SetForceLongitudinalStability option to replace ScaleBendPathLength.

Documentation: Large increase in coverage of doxygen docs.

Tutorials: Add tutorials.

Code formatting updates.
Now using uncustify for formatting, eclipse_formatting_style.xml for Eclipse.

Clean-ups, bug fixes, warning fixes, memory leak fixes.

See APIChanges.md or the APIChanges page in the documentation for changes that you may need to make to any existing Merlin scripts.

Full list of changes can be found using git: git log v5.01..v5.02