Releases: lcpp-org/RustBCA
RustBCA v2.8.4
Copied from the relevant PR:
This PR will include the following features and fixes:
Major features:
new coordinate rotation functions for the C and Fortran bindings
track and output displacements using the displacement energy, Ed
pure rust rcpr for better portability of attractive-repulsive potentials (no dependencies external to cargo)
fast, homogeneous, 2D mesh
added single ion reflection function to ergonomic Python bindings
added compound reflection coefficient to ergonomic Python bindings
Major fixes:
added deallocation functions for rust objects passed to C/C++ (not necessary in Fortran)
Minor features:
added 4-8 interaction potential
Minor fixes:
various fixes involving improved performance and tests of polynomial rootfinder
fixes to the Python ergonomic bindings to prevent issues caused by bad input incident angles
updates to README
This should increment the version number from 2.1.0 to 2.8.4.
RustBCA v2.0.1
This release includes one fix - the default number of weak collisions has been set to zero from three.
See Issue #216 for more detail. To summarize, weak collisions produce unphysical results if Z1>>Z2. If users want to turn on weak collisions for the Python interface, they can use the standalone code with a wrapper or modify the file lib.rs at lines 1462 and 1372 in the following way and recompile:
Change:
let options = Options::default_options(true/false); //boolean controls whether recoils are tracked.
To:
let mut options = Options::default_options(true/false);
options.weak_collision_order = 3; //Or any other desired value.
RustBCA v2.0.0
Summary
This release is relatively small; however, due to a breaking change in the Python bindings, the major version number has been incremented. In summary, the Python bindings have had several new functions added, including simple "reflection_coefficient" and "sputtering_yield" functions, and the import statement has been cleaned up (changed "import libRustBCA.pybca" to simply "import libRustBCA").
Additionally, 2D mesh input has been switched from a cumbersome pointwise triangle definition (triangle=(x1,x2,x3,y1,y2,y3)) to an STL style list of points where the triangles are defined by point indices (points = [(x1, y1), (x2, y2), (x3, y3), ...], triangles = [(0, 1, 2), ...].
What's Changed
- Update rustbca_compile_check.yml by @drobnyjt in #203
- Update RustBCA to 2.0.0: Improvements to Python bindings, code cleanup, simplify Mesh2D input by @drobnyjt in #205
Full Changelog: v1.3.0...v.2.0.0
RustBCA v1.3.0
This release rolls into main some updates to the Python bindings, some bug fixes, some fixes to the documentation, and code cleanup.
RustBCA v 1.2.0
This is the second minor release of RustBCA. This release includes bugfixes and several new features:
- Particle input distributions
- Fortran compatible functions and wrapper
- Particle tagging and weighting carried through collision cascade (for coupling to Monte Carlo codes with variable weights)
RustBCA v1.1.1 (JOSS)
This release includes changes requested during review for the JOSS review of RustBCA and its associated paper.
Changes include additional bindings options versus 1.1.0-alpha, and fixes to documentation and installation requirements. In particular, a required dependency on PyO3, which was breaking some Mac installations, has been made optional.
RustBCA 1.1.0 Alpha
This release includes the C++ and Python bindings and the new geometry (triangular mesh, etc) added via parry3d. For now, this release will be in alpha until the final form for this functionality has been established.
RustBCA v1.0.0
This is the first official release of RustBCA!
RustBCA has been validated using benchmarks with legacy codes and high-fidelity molecular dynamics simulations and comparison to analytical models and empirical formulas; an automatic testing suite that covers the majority of the physics kernel ensures that the code is correct and robust to future development. RustBCA's configuration file format is stable; for the foreseeable future, further changes can maintain backwards compatibility now that input files are internally represented as trait objects that satisfy the InputFileFormat trait.
Priorities for future development will be focused on writing more tests and polishing the optional experimental features (distribution output and ACPRAS for attractive-repulsive potentials).