Fixes and additions to Monte Carlo
---------------------------------------------
- Monte Carlo now runs significantly faster, as the energy calculation is now done per spin
- added script to `ui-python` folder, which calculates energy, magnetization, susceptibility, specific heat and Binder cumulant over temperature by sampling
- added parameters to set cone angle (now in degrees), deactivate adaptive cone algorithm, random sampling
- fixed Monte Carlo algorithms, seems to be working reliably now
- added Python API for MC
Additions to input file parameters
---------------------------------------------
- write neighbour files with `save_neighbours_initial` and `save_neighbours_final`
- Monte Carlo parameters: `mc_cone_angle`
UI-QT
---------------------------------------------
- added more parameters settings
- smoother camera rotation
- added setting number of interpolated energies in plot
Improved IO
---------------------------------------------
- refactored the entire core IO
- now have proper OVF file support, but with support for csv formatting of text columns of OVF files
- OVF is default output format
- better warning/error messages
Other
---------------------------------------------
- merged the two Heisenberg Hamiltonian backends, pairs and neighbours are now the same thing (i.e. two interfaces for the same implementation)
- calculation of neighbours should now be more reliable, especially for multi-atom basis
- added re-distributing of fields on a new `Geometry`
- some slightly better error messages
- added geometry setters and topological charge (quantities) Python API
- added some LLG and GNEB Parameters setters to Python API
- fixed bug: simulation API does not require passing a solver if no solver will be used