Uppsala Atomistic Spin Dynamics software
The UppASD
software package is a simulation suite to study magnetization dynamics by means of the atomistic version of the Landau-Lifshitz-Gilbert (LLG) equation.
Applications:
- Critical temperature determination
- Magnon spectra simulations
- Micromagnetic exchange and DMI stiffness calculations
- Current, field, and temperature-driven dynamics
Features:
- LLG, Metropolis, and Heat-bath algorithms
- Generalized Hamiltonian including
- bilinear and biquadratic Heisenberg exchange
- Dzyaloshinskii-Moriya exchange
- magnetocrystalline anisotropies.
- Support for arbitrary crystal structures and random alloys
- Spin-transfer and spin-orbit torques
- Temperature gradients
- Quantum statistics
Detailed information about the method can be found in
Atomistic Spin Dynamics: Foundations and Applications
O. Eriksson et. al, Oxford University Press 2017
Quick-start:
./setup_UppASD.sh
make <profile>
Where <profile>
is a suitable compiler profile, i.e. ifort
, gfortran
, gfortran-osx
, gfortran-ftn
, aocc-ftn
and so on.
Quick-start alternative (using cmake):
cmake -S . -B build
cmake --build build
The binary is compiled to the ./bin/
directory.
Examples are provided in ./examples/
The code is documented in the UppASD manual.
A tutorial with examples and exercises on atomistic spin-dynamics are contained in the UppASD tutorial.
Developers please look at the development guidelines in the CONTRIBUTING.md
file, about how to make your contributions to UppASD.
A python
based QT
GUI for the code is also available at ./ASD_GUI/ASD_GUI.py
.
This allows for:
- Visualization of outputs via
VTK
. - Plotting of several quantities via integrated
matplotlib
functionalities. - Automatic generation of input files for
UppASD
.
Requirements
-
Qt6
. -
python3.6
or higher.pandas
numpy
PyYaml
matplotlib
-
VTK8.0
or higher.
Installation Guide (pip)
The recommended way to install the prerequisites for the ASD_GUI
is currently to use pip
and virtualenv
environments.
After installing virtualenv
one can create virtual environment where to host the ASD_GUI
. This can be done in the following way:
pip install virtualenv
virtualenv ASD_GUI_env
source ASD_GUI_env/bin/activate
pip install numpy matplotlib pyyaml pandas pyqt6 vtk
This will generate a virtual environment named ASD_GUI_env
which can be activated or deactivated to run the GUI. The following steps are also recommended (starting from the base directory of the repo):
cd ASD_GUI
pip install .
This will install the GUI as a proper Python module and you can then start the GUI from any point in your file system by issuing the
asd_gui
command at the command prompt.
Installation Guide (anaconda)
An alternative way to install the prerequisites for the ASD_GUI
can be done via the anaconda
framework and its environments.
After installing anaconda one can create virtual environment where to host the ASD_GUI
. This can be done in the following way:
conda create --name ASD_GUI_env python vtk numpy scipy matplotlib yaml pyyaml pandas pyqt
source activate ASD_GUI_env
This will generate a conda environment named ASD_GUI_env
which can be activated or deactivated to run the GUI.
Note: The anaconda approach might not work untill the conda repositories update pyqt
to support Qt6
.
(C) 2008-2023 UppASD group