What is SpinDynamica?
SpinDynamica is a set of packages for Mathematica, programmed by Malcolm Levitt, with recent input from Andreas Brinkmann, Jyrki Rantaharju and Soumya Singha Roy. The software provides a useful tool for both analytical and numerical calculations in spin physics, in particular the spin dynamics encountered in magnetic resonance.
• How to set up SpinDynamica on your computer
• SpinDynamica documentation and examples files
SpinDynamica programmers
- Malcolm Levitt (continues to program the main body of the code)
- Jyrki Rantaharju (help with speed enhancements)
- Andreas Brinkmann (help with parallel computation code)
- Soumya Singha Roy (isotope data)
SpinDynamica features
SpinDynamica includes routines for
• deriving and manipulating the matrix representations of nuclear spin operators, in arbitrary Hilbert space bases. There are routines for spin angular momentum operators, product operators, singlet-triplet bases, single transition operators, etc.
• deriving and manipulating the matrix representations of nuclear spin superoperators, in arbitrary Liouville space bases. Includes commutation superoperators, double commutation superoperators, coherence order filtration superoperators, and relaxation superoperators, which may be thermalized to provide the correct thermal equilibrium states.
• performing numerical and symbolic spin dynamics simulations of arbitrary pulse sequences or sequences of time-dependent events, including evolution under arbitrary spin Hamiltonians, arbitrary spin Liouvillian superoperators, arbitrary time-dependent functions of Hamiltonians or Liouvillian superoperators, and any combination of these. These routines allow trajectory tracing for any set of nuclear spin observables under arbitrary sequences of events. As default, numerical calculations are generated by Liouville-space evolution calculations employing the in-built Mathematica tools for numerical solution of differential equations (options for using diagonalisations and matrix exponentials are provided as well).
• useful packages for Euler angles, reference frame transformations, Wigner matrices, Clebsch-Gordon coefficients, quaternions.
• some useful 3D graphical objects and routines for visualizing rotations.
• manipulations of data, including one and two-dimensional Fourier transforms, presented according to common NMR conventions.
SpinDynamica is probably not as fast for numerical simulations as purpose-built lower-level routines such as SIMPSON and SPINEVOLUTION, although thorough head-to-head tests have not yet been done. However, it is much more general and optimized modules for specific numerical tasks, such as approximate large-spin-system simulations, may be developed in the future.
In its current state (2014), SpinDynamica allows acceptably fast numerical simulations for up to about 6 coupled spins-1/2, including arbitrary time-dependent Hamiltonians and relaxation superoperators. This is an on-going project and will continue to be developed over many years. Packages for assembling pulse sequences, spin Hamiltonians and relaxation superoperators are under development and will be released over time. More efficient powder averaging for solid-state NMR, and the incorporation of chemical exchange, are under preparation. Multidimensional spectroscopy if not yet fully implemented, as well. It takes some time to ensure that these features are implemented with full generality!
The major disadvantage of SpinDynamica is that a Mathematica license is, of course, required.