Skip to content

Releases: ewanwm/nuTens

v0.4.1

28 Aug 21:19
001612e

Choose a tag to compare

What's Changed

🚀 New Features

  • Now set project version in cmake automatically using git tag - no more accidentally forgetting to bump version number
  • make baseline and density settable for DPpropagator

🐛 Bug Fixes

  • Allow test compilation to be disabled - previously caused error

Full Changelog: v0.4.0...v0.4.1

v0.4.0

27 Aug 22:49
2b55a17

Choose a tag to compare

Highlights

  • Should now be generally far easier to include nuTens as a module in other projects due to changes to cmake
  • Have included new Denton-Parke propagator which uses nufast algorithm (https://arxiv.org/pdf/2405.02400) to do 3-flavour oscillation calculations much more quickly than regular Propagator and ConstDensityMatterSolver
  • Added a bunch of new documentation
  • Fixed a number of bugs that were causing errors in physics calculations, mainly incorrect constants/ units and mistake in calculation of electron row outer product in the ConstDensityMatterSolver
  • Now possible to do anti-neutrino oscillation calculations

🚀 New Features

  • Add Anti-Neutrino calculation
  • Added generic mixing matrix class
  • Add faster DP propagator for 3 flavour oscillations

Many more tests:

  • add osc prob test to two-flavour-const-matter test
  • Tidy up c++ tests and move to using googletest
  • add test for pmns matrix builder that checks against fixed values
  • Add Three Flavour Barger propagator that can be used in tests
  • Add test for three flavour oscillations
  • Add test for DPpropagator, including comparison of derivatives calculated using DPpropagator and Propagator classes

📄 Documentation Updates

  • Added quick start guide, user manual, and much more detailed installation instructions

🐛 Bug Fixes

  • Groot2 constant contained an extra factor of 2 causing physics calculations in matter to be wrong - has now been removed
  • meter to ev^-1 conversion factor in units module contained extra factor of 2pi. This didn't break physics calculations since 2pi factor should be included everywhere this factor showed up, but have now moved it outside of this constant to avoid confusion.
  • fix the order of the conjugation when constructing the electron row outer product. This caused physics calculations to be wrong in matter.
  • Fix clashing Cmake options which don't allow Python frontend and shared lib - now if both specified, throw warning and build static libraries
  • separate requresGrad, dtype etc. functions for AccessedTensor - previously using one of these would implicitly cast to a base Tensor
  • delete some functions that shouldn't be accessible in accessedTensor
  • There was an implicit assumption when calling Propagator::setMatterSolver that other values had already been set, causing crash if they had not been - have now removed this assumption

Other Stuff

  • Better namespaces
  • Remove all the faff from Pytorch_requirements.txt meaning slightly easier installation
  • pytorch can now be installed for the user automatically by the build system if it is not found - makes inclusion in other projects easier and generally makes installation a bit less painful
  • Baseline and density are now settable parameters in Propagator
  • move to more general PROJECT_* cmake locations instead of CMAKE_* ones - makes inclusion in other projects much easier
  • add + - * / and unsqueeze() operators to tensor
  • wrap some additional linalg functions for calculating eigenvals and eigenvecs

Full Changelog: v0.3.3...v0.4.0

v0.3.3

15 Jul 23:11
7e83186

Choose a tag to compare

What's Changed

  • (hopefully) final fix to allow nuTens to be built as package by @ewanwm in #91

Full Changelog: v0.3.2...v0.3.3

v0.3.2

15 Jul 21:06
b6af07d

Choose a tag to compare

nuTens can now be installed as a package in other cmake projects

What's Changed

Full Changelog: v0.3.1...v0.3.2

v0.3.1

15 Jul 00:52

Choose a tag to compare

What's Changed

  • update pypi info and readme by @ewanwm in #84
  • bugfix: stop truncating values in setValue methods by @ewanwm in #88
  • bugfix: properly initialise the tensor in the zeros builder function by @ewanwm in #87
  • Install python tests to test folder in build directory by @ewanwm in #89

Full Changelog: v0.3.0...v0.3.1

v0.3.0

12 Jul 20:02

Choose a tag to compare

Found and fixed problem with eigenvectors sometimes being swapped in matter solver.
This also resulted in fairly big speed improvement for constant density calculations due to the move to to faster eigenvector calculation function in pytorch.

What's Changed

  • add veeery basic units 'system' by @ewanwm in #77
  • Add tests for python interface by @ewanwm in #79
  • use torch::linalg_eigh instead of torch::linalg_eig by @ewanwm in #80
  • Update python tensor interface by @ewanwm in #81
  • Can now make nutens tensors out of torch tensors by @ewanwm in #82

Full Changelog: v0.2.0...v0.3.0

v0.2.0

09 Jul 20:36
3aaef7a

Choose a tag to compare

Main change is the introduction of the new AccessedTensor which allows for faster single element access to tensors.

What's Changed

  • More Realistic Benchmark by @ewanwm in #67
  • Revert actions ubuntu version by @ewanwm in #68
  • Fix Tensor class by @ewanwm in #69
  • Fix benchmaking jobs by @ewanwm in #70
  • (hopefully) Speed up propagator by @ewanwm in #71
  • Use Sphinx to build nicer documentation by @ewanwm in #72
  • Better action names by @ewanwm in #74
  • New AccessedTensor class which uses tensor accessors by @ewanwm in #73
  • python test now uses new interface for propagator by @ewanwm in #75

Full Changelog: v0.1.0...v0.2.0

Initial Release

25 Sep 17:12
9f959b6

Choose a tag to compare

This is the initial release of nuTens. Many of the desired features are now in place including tensor interface (currently only pytorch backend is supported), ability to calculate neutrino oscillation probabilities in vacuum and in constant density matter. Additionally, continuous integration pipeline has been set up and is being used. A python interface is provided and should be automatically packaged and uploaded to PyPi.

What's Changed

  • Try out github workflow for automatic testing by @ewanwm in #1
  • add on: workflow_dispatch by @ewanwm in #2
  • Fix py torch test build by @ewanwm in #3
  • Create main.yml by @ewanwm in #4
  • Fix doc path by @ewanwm in #5
  • set doxygen so it can be run from the root dir by @ewanwm in #6
  • merge main by @ewanwm in #7
  • Fix doxygen deployment by @ewanwm in #8
  • add functionality to get gradients from tensors by @ewanwm in #9
  • add support for some basic slicing in tensors and some other mathemat… by @ewanwm in #10
  • Feature simple vacuum oscillator by @ewanwm in #11
  • Feature constant density matter solver by @ewanwm in #12
  • Update doxygen.config to use mathjax for nice latex formulas by @ewanwm in #13
  • Update doxygen-deployment.yml to install mathjax by @ewanwm in #14
  • also install latex for documentation by @ewanwm in #15
  • Rework propagator class by @ewanwm in #16
  • Feature tidy tests by @ewanwm in #17
  • improve CI by @ewanwm in #18
  • Feature logo by @ewanwm in #19
  • add trig functions in Tensor by @ewanwm in #20
  • Add (non-exhaustive) feature wishlist to the readme by @ewanwm in #21
  • Tidy README.md a bit by @ewanwm in #22
  • Feature precompiled header by @ewanwm in #23
  • Fix doxygen deployment by @ewanwm in #24
  • Add CPM by @ewanwm in #25
  • Code coverage checks by @ewanwm in #26
  • Feature logging by @ewanwm in #27
  • add cpp-linter action by @ewanwm in #28
  • Update README.md to include cpp linter badge by @ewanwm in #29
  • Feature clang formatting by @ewanwm in #30
  • Workflow fix clang tidy by @ewanwm in #31
  • No trailing return type cpp-linter suggestions by @ewanwm in #32
  • Do Linting Suggestions by @ewanwm in #33
  • Update cpp-linter.yaml to only lint what has changed in a PR by @ewanwm in #34
  • Feature instrumentation profiling by @ewanwm in #35
  • Feature improve doxygen by @ewanwm in #36
  • Feature benchmarking by @ewanwm in #37
  • Workflow fix benchmarking ci by @ewanwm in #39
  • Create benchmarking-track-main.yaml to continuously track the perform… by @ewanwm in #40
  • Feature improve tensor interface by @ewanwm in #41
  • Workflow more ci platforms by @ewanwm in #42
  • If local protobuf cant be found then try to install it with cpm by @ewanwm in #43
  • Just test compilation on MSVC for windows by @ewanwm in #44
  • Feature python interface by @ewanwm in #53
  • Chill the linter out a bit by @ewanwm in #58
  • CMake Tidy by @ewanwm in #59
  • Feature build with pip by @ewanwm in #60
  • Add a workflow to upload python module to pypi by @ewanwm in #63
  • Feature dynamic python module versions by @ewanwm in #64

New Contributors

  • @ewanwm made their first contribution in #1

Full Changelog: https://github.com/ewanwm/nuTens/commits/v0.1.0