2016-11-16

Spirit

Open source, cross-platform spin simulation framework

Spirit on GitHub

Documentation        Wiki        Reference

Spirit is developed in large part at the PGI-1/IAS-1 institute at the Forschungszentrum Jülich. The spin simulation Web App on this website was developed in the context of the Spirit framework and is based on its web-interface.

The core of Spirit is written in C++ and designed to run platform-independently. Note that Python bindings are also available. Parallelisations using OpenMP for CPUs and CUDA for GPUs enable high performance. You may find the source code at https://github.com/spirit-code/spirit

It’s most important features include:

  • Fast cross-platform C++ core with CUDA support
  • Spin dynamics simulations and energy minimizations
  • Transition path calculations using a nudged elastic band method
  • Saddle point searches using the minimum mode following method
  • Transition rate calculations using harmonic transition state theory
  • C API and Python bindings (other languages also possible)
  • Parameter Control during Simulations
  • Powerful live visualisations in desktop user interface
  • Easy and portable spin simulations in web interface

The Desktop User Interface

The following image shows the desktop user interface that is provided with Spirit. In comparison to the web interface, it provides additional calculation methods, a choice of optimizers and advanced parameter and configurations customisation.

spirit
Note the plot in the lower right, showing the energy barrier for the transition of the skyrmion to the homogeneous state (blue points are the discrete images, the red point is the visualised state).

The Desktop User Interface includes powerful visualisations which enable the detailed study of complex 3D states, as illustrated by the following example containing straight, bent and bifurcated Skyrmions, as well as Bobbers:

Complex states may emerge in 3D systems, requiring advanced visualisations for effective work. This often makes post-processing redundant and significantly decreases required developer effort.
Even for 2D systems, it is highly useful to have realtime visualisations available, enabling one to immediately assess the state of a simulation.

Installation Instructions

A Python package is available, which can easily be installed using

pip install spirit

Both the core library and the desktop user interface can be manually compiled on almost any machine, if a C++11 compiler is available.

If you want to install Spirit on your system, please follow the instructions in the documentation.