Releases: tudo-astroparticlephysics/PROPOSAL
v7.0.3
- Switch CI from travis to GitHub actions (#160)
- avoid some arithmetic exceptions (#154)
- Adapt CMakeLists to make all symbols visible by default (#150)
- Remove fixes and warnings related to former bug with pybind11 in conan (#148)
- Using json_fwd.h instead of json.h again (commit 502466b) to improve compilation time (#147)
- Log instead of std::cout for exception_axis_builder_dedx_out_of_range and typo (#152)
- Update author list
v7.0.2
- remove non-trivial designated initializers
- now use nlohmann_json as a dependency. It could be installed via conan by using the option
multiple_headers=True
- remove explicit set
fPIC
flag - achieve windows compatibility. Thanks for the contribution @SpaceIm.
- fix pypi deploy (#140)
- use temporary
json.hpp
instead ofjson_fwd.hpp
which increase build time significant, but is temporary required to make CCI run.
Fix conan build
Fix:
- fix cmake flag to enable shared library build
- remove explicit setting of the visibility mode
Release version 7.0.0
This major release focuses on an extensive code refactoring of PROPOSAL, next to the release of several new features and bug fixes.
Due to these restructurings of large parts of the code, most scripts using PROPOSAL need to be adapted.
The following points have been implemented in the commits listed in PR #137.
Note that PROPOSAL now requires a C++14 compatible compiler.
Major Features
- Calculation of stochastic deflections, i.e. the deflection of the initial particle direction during stochastic interactions (PR #121)
- Improved
Secondaries
class for the output of thePropagator
class. It provides possibilities such as Queries for arbitrary geometries and/or interaction types as well as the possibility to "repropagate" particles to a certain, arbitrary particle state (PR #114, related issue #71). - Installation of PROPOSAL with package manager conan (PR #130)
- Using spdlog instead of log4cplus as a logger (related issue #44, commit 6e83249)
- New dependency on the CubicInterpolation library for better stability and maintainability using boost and Eigen (related issue #48) to outsource the interpolation tasks. Therefore boost and Eigen are indirectly new dependencies.
Minor features
- Provide (recommended) default CrossSections for different particles
- Add function to set logging level in python (related issue #106, related commit b4ba0c0)
- Add "hierarchy condition" as a new termination condition for
Propagator::Propagate
(see commit 3051774) - Provide the possibility to apply multipliers to multiple scattering and stochastic deflection
- Vectorization of many functions in Python, which allows calling these functions directly with an array
Code refactoring
- Modularization of physical calculations in PROPOSAL into separate modules. This makes the individual modules usable for users which are not interested in the whole
Propagator
class but only individual calculation steps (see this proceeding for more information about this process). Furthermore, this gives PROPOSAL a more clear code structure (related issue #40) - Implement a more intuitive structure of the geometry class
Vector3D
by creating two separate subclassesCartesian3D
andSpherical3D
(PR #122). This will take away the responsibility from to user to pay attention to whether certain transformations between coordinate systems have actually been calculated (related issues: #119, #45). - More intuitive implementation of classes describing particles and particles losses by creating and/or refactoring the classes
ParticleState
,StochasticLoss
,ContinuousLoss
(PR #114, related issue #104) - Calculations in PROPOSAL are now done using grammage instead of distances (transformation is done inside Propagator class)
- Consistent use of smart pointers to avoid memory leaks (related issue #109)
- New structure of json configuration file (see here for a documentation of the new structure)
- Special
EnergyCutSettings
options have been changed to be more intuitive: Using no absolute EnergyCut now corresponds toINF
(formerly-1
), using no relative EnergyCut now corresponds to1
(formerly-1
)
Fixes
- Fix uninitalized values in ManyBodyPhaseSpace::SampleEstimateMaxWeight (PR #132)
- False documentation of
Interpolant::Exp
method and unclear variable name (related issue #39, commit 1e5b851) - Fix underestimation of dE2dx (and therefore ContinousRandomization) for ionization (see commit a916cc6)
- Geometries in PROPOSAL are now intialized in
cm
instead ofm
to have consistent usage of units throughout PROPOSAL (see commit db516bd)
Add further Photonuclear Interaction Models
Two more recent photonuclear parametrizations are added:
Fix scattering for uninitialized spherical coordinates
Fixes
- For uninitialized spherical coordinates (which is the default when Vector3D object is constructed),
Scattering::Scatter
returned direction vectors that are not normalized (see issue #119). This has been fixed by adding a call toVector3D::CalculateSphericalFromCartesian()
at the beginning of the scattering method (see PR #120).
Fix high energy numerical issue
Fixes
- PropagationUtilityDisplacement didn't reach the numerical accuracy at very high energies (#115)
Fix missing headers for gcc 10
Fixes
Missing headers, needed to make it compile with gcc 10 (#103)
Missing conversion from meter to centimeter of inner_radius
in Sphere.cxx (#107)
Correct cuts_infront
label in the configuration parser in Propagator.cxx
(#107)
Missing substitution for rFlag
case in EpairIntegral.cxx
(#108)
Tests
Using travis' builtin python versions (#111)
v6.1.2: Fix propagation at sector border
Fixes
- take account of the finite particle resolution causing bug at the border between 2 sectors
- calculation of the distance at the sector border
Minor Improvements
- pybind the lifetime attribute of a ParticleDef
- pybind print functions for Utility Definition
- Exclude vendor dependencies from doxygen
minor fixes including pypi deploy
Fixes:
- pypi deploy
- position/direction mix-up in python interface of Secondaries
- example description and links in README