Updated to C++14
63261d9c
- Updated C++ standard from C++11 to C++14.
Added features
35e6ea48
- Added a 4th order anisotropy
Desktop GUI changes
Added new immediate mode GUI using Dear ImGui
Also,
fc7735fe
- Ui-QT: Re-enabled Hopfion configuration and added new normal option.5b7f1954
- Ui-CPP: Added two options to the plot widget 1) divide by nos and 2) renormalize Rx. Both are useful when observing moving_endpoints calculations5dee3d9d
- Ui-QT: added moving endpoints to parameters widget
Interface changes
1a5bb7ff
- Core: implemented Hamiltonian getters for Exchange and DMI pairs. Note: there is still no getter for DMI pairs, only for the number of DMI pairs.b5351e57
- Python API: Added functionsystem.get_energy_contributions
- Returns a dictionary with strings as keys and floats as values. Can be used likeenergy_ex = contribs["Exchange"]
, etc.d92ceb35
- Core: improveChain_Set_Length
. Now automatically copies the current image when an increase of the chain length is requested. Also fixed a bug in ui-imgui that caused a crash when reducing the chain length2dab6cfc
- python_api: corrected hamiltonian.get_field and added it to unit testsee7baf10
- Hamiltonian_API: Added a function that writes the embedding space Hessian to a filef87ec6ba
- EMA: Can now controlsparse
parameter via API. Also added function to clear the modes.57486d7f
- API: Implemented an easy way to get basic information about a simulation run via the API.facb5601
- Configurations: Added 'normal' parameter to Configuration_Hopfion.91de3514
- Quantities: Implemented a new function Quantity_Get_Toplogical_Charge_Density7ec8ee46
- API: implemented force and energy history in Simulation_Run_Infoc95766c4
- C-API: ChangedNULL
tonullptr
inSimulation.h
a30dc841
- GNEB: Added get and set functions for moving endpoints to APIc7e84313
- GNEB: equilibrium delta_Rx for moving endpoints can now be controlled via the APIcfe8fd86
- GNEB: API getter for equilibrium_delta_Rxd6bd46a0
- API for cubic anisotropy08ea0fc6
- API: Implemented getters and setters for llg_beta
Bugfixes
59db68d7
- CUDA fix5b7f5479
- Bugfixes for imgui webapp. - fixed OpenGL blending, which made transparent colours see-through to the gl canvas - fixed include orders for GLAD - also improved charcoal style accordingly - also moved ui-imgui/ui-web to ui-imgui/webapp - also removed unreachable code from main_web.cpp19a962fc
- GH-actions and CMake: fix ImGui builds. Also deactivated ImGui build for coverage builds etc.f45715e2
- Core: fix bug inData::Geometry::triangulation
andtetrahedra
.fba2fb51
- Bugfix in Core: deadlock inOrderedLock
class. If a second thread calledlock
and was waiting oncvar.back()
, the referencedstd::condition_variable
could be destructed by the first locking thread callingunlock
, causing the second thread towait
forever. This is fixed bypop
ing the queue only afterwait
completed (i.e. withinlock
). Additionally, spurious wakeups could cause thewait
to end prematurely, which is fixed by using the predicated overload. Also made some naming improvements and fixed formatting.2189dce2
- Core: fix config parsing of RNG seeds.5c5c403f
- CMake: fix collision of options.3be348e6
- Ui-QT: fixed an issue, where resizing of the geometry could lead to crashes. The cell filters needed to be reset after setting n_cell.11fe9381
- Ui-QT: fixed an issue, where resizing of the geometry could lead to crashes (Part 2). Updates of the cell filter slider ui-elements would emit events that could reset the m_cell_min/max_xxx values the old numbers. The SpinWidget::setCellFilter function now makes sure to only accept viable values.5b59ebec
- Bugfix: check boundary conditions on quadruplets. This commit fixes only the CPU implementation.382cac3c
- Hamiltonian_Heisenberg: - Exchange/DMI: cu_idx_from_pair was erroneously given the cell index as first argument (it should be the spin index) - Zeeman: The index computation was missing a factor of n_cell_atomse8991403
- Fix potential bug due to initialization order fiasco.9b998cb6
- Fixed an issue when reading in eigenmodes from the GUI06d5bc64
- Quantities: Get_Magnetization now respects mu_s0706699e
- Configparser: Fixed a small error where the log of individual pinned sites would just repeat the direction of the first fixed spin.41403b4e
- Hamiltonian_Heisenberg: Fixed race condition in DDI4827222d
- Method_GNEB: fixed a bug in a lambda capturea4b45178
- Timing: Fixed issues in DurationFromString32ce288a
- Hamiltonian_Heisenberg: Fixed a bug in the OpenMP implementation of DDI. Some index variables were not thread private. Somehow this only caused issues on clang.
Other improvements and changes
-
e1ba4599
- CI: addedsudo apt update
before twosudo apt install
calls. -
474fa90f
- CI and CMake: working towards deploying binary releases. -
8aba87dc
- CI: restructured artifacts to add licenses to macOS package. -
e9cd19a9
- CI: try to fix codecov upload. -
64fc4e34
- CI: run also on pull requests. Note: do not deploy on pull request events. -
692bdd66
- CI: added build of mobile webapp and webapp artifacts. -
945e3d50
- CI: add release drafting on tags. -
7e4f0f6e
- CI: addlint
step for core and ui-imgui -
ccaa6bef
- CI: generate clang-tidy report to log -
0d6c7907
- CMake: fix for bundling on Windows. Also minor improvement ofGlfwWindow
. -
7eecca95
- CMake: fixed missing bin directory when bundling on Linux. -
c5d7d3a5
- Added missing thirdparty licenses. -
c1ec74fe
- CMake: improved installation folder structure and added licenses. Thirdparty licenses are now installed and added to bundles. Documentation folder now has a better structure. -
d2ebbc74
- Handle_Signal: Sending interrupt signal, twice in 2s time interval, now properly exits the code. - std::chrono::duration was measured in wrong unit -
441529a5
- CMake: enable Ninja+Clang on Windows. Usingadd_subdirectory( thirdparty/qhull )
instead of the complicatedExternalProject_add
stuff. Had to make a minor change to thirdparty/qhull/CMakeLists to get the right include directories when compiling QHull. -
1742cd96
- Core: add ordered locking toSpin_System_Chain
. - renamedOrdered_Lock
toOrderedLock
, added class description comment and placed intoUtility
namespace - applied renaming and clang-format toSpin_System
- useOrderedLock
inSpin_System_Chain
and applied clang-format - improved copying ofSpin_System
by usingstd::make_shared
(also fixed missing mmf parameter copy in copy assignment - improved some include guards and comments -
8e80d909
- Core: amend input file docs with RNG seed info. Namely that the seeds will be random if unspecified. -
e545385f
- Sparse_HTST: Numerical improvements - Inverse_PowerMethod: Current estimated eigenvector now gets orthogonalized with all previous found eigenvectors after every iteration (this helps to solve problems where the vector would fall back onto previous eigenvectors) - also update the rayleigh quotient and refactor the LU decomposition periodically to improve evalue estimate during the iterations - small changes to log output -
1dd74ae4
- Sparse_HTST: Increased accuracy of zero-mode calculation. After the minimization of the rayleigh coefficient, a few iterations of the shift invert power method are performed to increase the accuracy of the computed eigenvalues. This is necessary to for an accurate calculation in the case zero-modes are present. -
a010ea0f
- Cuda: Write cuFFT errors to the Log -
7219381b
- Added support for amortizing iterations by performing a small number of iterations without checks in between. In a CUDA build this can help to minimize memory transfers. -
be9bceac
- Manifoldmath: Added a new function Geodesic_Tangent that computes the tangents more accurately. Use it to compute the tangents at the endpoints -
21eba6fc
- Sparse_HTST: Use sparse lanczos for computation of unstable mode and zero modes -
aca472f7
- Manifoldmath: more performant implementation of project_parallel -
2df3ae72
- Vectormath: Implemented new functionjacobian
and added a unit test for it -
41d582c8
- Method_LLG: UseVectormath::jacobian
instead ofVectormath::directional_gradient
for STT -
db34029c
- CMake: Updated cmake_minimum_required to VERSION 3.12 -
20b438de
- Add .clangd and .clang-tidy config files -
d2a78d16
- Update catch to v2.13.6