On this page you can find all SpinDynamica releases. Click the links to download. The latest version will always be located on top.
To install a new version, simply download the Documentation and SpinDynamica directories. Place them wherever you like on your computer. You will need to set $Path in order to instruct Mathematica where to find the new SpinDynamica directory. There is no need to discard the superseded version.
The documentation files for SpinDynamica are included as executable mathematica .nb files packaged together with each new release. For the latest documentation, download SpinDynamica using the link on the Downloads tab, and download the documentation folder. A non-executable pdf version of the documentation for v3.0.1+ is provided here.
SpinDynamica v3.9.0 (this is the latest version of SpinDynamica)
02/05/2024. SpinDynamica SDv3.9.0. This release includes:
- Further bug fixes.
SpinDynamica v3.7.1
05/08/2022. SpinDynamica SDv3.7.0. This release includes:
- Compatibility with Mathematica version 13.1.
- i.e. conflict with the SpinDynamica BlockDiagonalMatrix symbol and the Mathematica symbol of the same name has been resolved.
SpinDynamica v3.7.0
08/02/2022. SpinDynamica SDv3.7.0. This release includes:
- Further bug fixes
- Compatible with Mathematica 13
- SpinPermutationGroup and related features
- Handling of arbitrary spin permutation groups
- SpinPermutationOperators are now represented symbolically following cycle notation
- Products of SpinPermutationOperators are now evaluated symbolically following cycle notation
- SymmetryAdaptedBasis
- Construction of symmetry-adapted spin states for arbitrary spin permutation groups
- LieAlgebra
- Calculation of a Lie algebra corresponding to a general set of operators
- Commutant
- Calculation of the commutant for a set of operators
- Bicommutant
- Calculation of a bicommutant for a set of operators
- DualPairing
- Determines pairings for the irreducible representations of Sn and SO(3) (considered as a subgroup of SU(2l + 1)^n as suggested by the Schur-Weyl duality.
- Extensive new documentation has been added under part 12 describing all new features in detail including several worked examples.
SpinDynamica v3.6.0
15/08/2021. SpinDynamica SDv3.6.0. This release includes:
- Ovaloid routine to represent interaction tensors
- Further bug fixes
SpinDynamica v3.5.0
14-12-2020. SpinDynamica SDv3.5.0. This release includes:
- Lindbladian superoperator
- Refreshed documentation
- Further bug fixes
SpinDynamica v3.4.2
04-Feb-20: SpinDynamica SDv3.4.2. The release contains the full SpinDynamica code and updated documentation notebooks.
- Bug fixes.
- Improved speed performance.
SpinDynamica v3.3.2
06-Feb-19: SpinDynamica SDv3.3.2. The release contains the full SpinDynamica code and updated documentation notebooks.
- couple of bug fixes.
- improvement to basis construction for spins I>1/2.
- EigenBasis may now take TargetBasis as an optional argument for basis alignment.
- The functions SingleTransitionOperator, CoherenceOperator and PopulationOperator now allow for specification of a basis.
SpinDynamica v3.3.1
08-October-18: SpinDynamica SDv3.3.1. The release contains the full SpinDynamica code and updated documentation notebooks.
- bug fixes related to WignerD.
- CorrelatedEigensystems now supports Liouvillians and sets of arbitrary matrices.
- The usage messages for CorrelatedEigensystems and Adiabatic routines now provide explicit examples.
SpinDynamica v3.2.1
08-October-18: SpinDynamica SDv3.2.1. The release contains the full SpinDynamica code and updated documentation notebooks.
- Addition of UserLevel to SpinDynamica. UserLevel may be used to manage the amount of error trapping. Reduced error trapping leads to faster execution speed for several routines.
- A new routine MaximizeTransformationAmplitude has been added to SpinDynamica. MaximizeTransformationAmplitude numerically optimizes a TransformationAmplitude with respect to several parameters.
- Multiple bugs have been fixed, most importantly bugs related to the COMPUTE algorithm.
SpinDynamica v3.1.0
26-Feb-18: SpinDynamica SDv3.1.0. The release contains the full SpinDynamica code and updated documentation notebooks.
- SpinDynamica now contains several new routines for the analysis of adiabatic events (see part 11 of the documentation).
- Documentation on highly polarized spin-systems has been addded (see part 10 of the documentation).
- NPropagate now supports special treatment of adiabatic events (see part 11 of the documentation).
- The new function CorrelatedEigensystems has been introduced to analyse correlation of spin-states subjected to adiabatic transformations.
- Added SpinDynamica’s implementation of the Hungarian Algorithm available under OptimalBipartiteGraphMatching.
- TransformationAmplitudeTable now supports two or more parameter specifications.
- MaximumTransformationAmplitude has been renamed to TransformationAmplitudeBounds, now returning upper and lowers bounds.
- Introduction of LeftMultiplicationSuperoperator and RightMultiplicationSuperoperator.
- Further speed improvement to Liouville-Space basis construction.
SpinDynamica v3.0.2.2
09-nov-17: SpinDynamica SDv3.0.2.2. The release contains the full SpinDynamica code and updated documentation notebooks.
- Important bug fix.
SpinDynamica v3.0.2
06-nov-17: SpinDynamica SDv3.0.2. The release contains the full SpinDynamica code and updated documentation notebooks.
- Speed improvements, major in some cases.
- Important bug fixes.
SpinDynamica v3.0.1
19-aug-17: SpinDynamica SDv3.0.1. The release contains the full SpinDynamica code and updated documentation notebooks.
- Further reconfiguration below the hood, leading to accelerated interpretation of inputs and reduced looping.
- Several user-reported bugs have been fixed.
- In preparation for future releases the symbol EvolutionBackground has been replaced by BackgroundGenerator and the symbol CombineEvolutionGenerators has been replaced by CombineGenerators.
- Definition of user-specified Liouville and Hilbert basis sets has been improved and further functionality has been added.
- Addition of the PhenomenologicalRelaxationSuperoperator routine for construction of a model-free relaxation superoperator characterised by T1 and T2 time constants.
- The following routines were added for analysis of polarised spin systems: PolarizationLevelOperator, PolarizedDensityOperator, SingletPolarizationLevelOperator, SingletPolarizedDensityOperator.
- The following routines were added to the Rotation package to simplify manipulation of spatial tensor components: SphericalTensor, CartesianToSpherical, SphericalToCartesian.
SpinDynamica v2.14.3
16-aug-16: SpinDynamica SDv2.14.3. The release contains the full SpinDynamica code and updated documentation notebooks.
- Compatibility with Mathematica 11. Lower versions of SpinDynamica are not compatible with Mathematica 11.
- Minor bug fixes.
- All usages of the SpinDynamica symbol Duration must be replaced by EventDuration. The symbol Duration is used for a different purpose in Mathematica 11 and has been stripped of its SpinDynamica functionality.
SpinDynamica v2.14.2
07-feb-16: SpinDynamica SDv2.14.2. The release contains the full SpinDynamica code and updated documentation notebooks.
- Bug fixes.
SpinDynamica v2.14.1
20-dec-15: SpinDynamica SDv2.14.1. The release contains the full SpinDynamica code and updated documentation notebooks.
- Substantial coding reconfiguration “below the hood” to improve the efficiency of some routines and to reduce looping.
- Bug fixes.
SpinDynamica v2.13.1
27-mar-15: SpinDynamica SDv2.13.1. The release contains the full SpinDynamica code and updated documentation notebooks.
- New routine SphericalTensorIndices,
- Significant augmentation of opT and SphericalTensorOperatorBasis
- Several bug fixes, some significant.
- Expansion of documentation to include 3D routines, 3D graphics, Euler angles and Wigner matrices.
SpinDynamica v2.12.2
05-mar-15: SpinDynamica SDv2.12.2. The release contains the full SpinDynamica code and updated documentation notebooks.
- Extension of NormalizeOperator allows normalization to a norm different from 1, or to set the norm of one operator equal to the norm of a second operator. See part 3 of documentation.
- Important bug fix to the COMPUTE algorithm of Signal1D
- Other minor bug fixes.
SpinDynamica v2.12.1
28-jan-15: SpinDynamica SDv2.12.1. The release contains the full SpinDynamica code and updated documentation notebooks.
- New routine Secularize secularizes operators and superoperators with respect to a general Hamiltonian, with an abbreviated syntax for Zeeman secularization.
- A Signal object may now be multiplied directly by an complex number, for example to implement phase correction.
- A new option DigitalFrequencyResolution for Signal1D provides more clarity and flexibility in the handling of time and frequency-domain signals. This is described in the enhanced documentation accompanying this release.
- Some important bug fixes.
- extended documentation files now include a section on Signal.
SpinDynamica v2.11.1
08-dec-14: SpinDynamica SDv2.11.1. The release contains the full SpinDynamica code and updated documentation notebooks.
Enhancements with respect to SDv2.10.2:
- New routines ProductKet, ProductBra and ProductBasis have been introduced. See part 3 of the documentation.
- Convenient augmented syntax for Signal1D allows the spectral width and number of sampling points to be specified directly. See part 2 of the documentation.
- Precalculation, which was performing poorly, has been removed in all routines. It will be reintroduced in an upgraded form in a future release.
- Significant speed advances for some routines. For example the “COMPUTE” algorithm of Signal1D has been speeded up by almost 2 orders of magnitude for some cases.
- Miscellaneous debugging,
SpinDynamica v2.10.2
24-sep-14: SpinDynamica SDv2.10.2. The release contains the full SpinDynamica code and updated documentation notebooks.
Enhancements with respect to SDv2.10.1:
- Important bug fixes and minor enhancements.
SpinDynamica v2.10.1
11-aug-14: SpinDynamica SDv2.10.1. The release contains the full SpinDynamica code and updated documentation notebooks.
Enhancements with respect to SDv2.9.1:
- Important bug fixes and speed enhancements.
- TransformationAmplitudeTable now uses parallel kernels whenever possible.
SpinDynamica v2.9.1
06-apr-14: SpinDynamica SDv2.9.1. Compatible with Mathematica 9 and 8. The release contains the full SpinDynamica code and executable documentation notebooks.
Enhancements with respect to SDv2.8.3:
- Important bug fixes.
- Compatibility with Mathematica 9 implemented.
SpinDynamica v.2.8.3
19-Nov-13: SpinDynamica SDv2.8.3. Compatible with Mathematica 8. Probably compatible with Mathematica 9 (untested). The release contains the full SpinDynamica code and executable documentation notebooks.
Enhancements with respect to SDv2.8.2
- Important bug fixes.
SpinDynamica v.2.8.2
13-Oct-13: SpinDynamica SDv2.8.2. Compatible with Mathematica 8. Probably compatible with Mathematica 9 (untested). The release contains the full SpinDynamica code and executable documentation notebooks.
Enhancements with respect to SDv2.8.1
- New routines SpinPermutationOperator and SpinPermutationSuperoperator implement general cyclic permutations and exchanges of spins. See the documentation parts 3 and 4.
- New routine MagneticQuantumNumber calculates the total magnetic quantum number (M-value) of a Ket, taken over all spins, or defined subsets. See the documentation part 3.
- Bug fixes.
SpinDynamica v.2.8.1
13-Sep-13: SpinDynamica SDv2.8.1. Compatible with Mathematica 8. Probably compatible with Mathematica 9 (untested). The release contains the full SpinDynamica code and executable documentation notebooks.
Enhancements with respect to SDv2.7
- New routine NDIagonalize allows prediagonalization of operators and superoperators, leading to speed enhancements.
- Enhancement to CoherenceOrderFiltrationSuperoperator allows the spins to be specified.
- Documentation includes a new section (part 6) on relaxation.
- Bug fixes.
SpinDynamica v.2.7.1
24-July-13: SpinDynamica SDv2.7.1. Compatible with Mathematica 8. Probably compatible with Mathematica 9 (untested). The release contains the full SpinDynamica code and executable documentation notebooks.
Enhancements with respect to SDv2.6.1
- Various speed and memory usage enhancements. Many thanks to Jyrki Rantaharju for coding and suggestions.
- New routines OperatorType and SuperoperatorType.
- Bug fixes to issues raised on the SpinDynamica forum.
SpinDynamica v.2.6.1
28-Apr-13: SpinDynamica SDv2.6.1. Compatible with Mathematica 8. Probably compatible with Mathematica 9 (untested). The release contains the full SpinDynamica code and executable documentation notebooks.
Enhancements with respect to SDv2.6.0
- SpinDynamica now contains gyromagnetic ratios, natural abundances, and spin quantum numbers for all nuclear isotopes. See part 5 of the documentation.
- Enhanced documentation.
- Bug fixes to issues raised on the SpinDynamica forum.
SpinDynamica v.2.6.0
18-Mar-13: SpinDynamica SDv2.6.0 by Malcolm Levitt. Compatible with Mathematica 8.0.
Features:
- Parallel computing: Automatic parallelization of EnsembleAverage over all available kernels in routines Signal1D, Trajectory, TransformationAmplitude and TransformationAmplitudeTable. Parallelization may be disabled using the option Parallel->False. Parallel computing may be limited to n kernels using the option Parallel->n. The default is Parallel->True which uses all available kernels
- Miscellaneous bug fixes and speed enhancements
SpinDynamica v.2.5.5
18-Dec-12: SpinDynamica v.2.5.5 by Malcolm Levitt. Compatible with Mathematica 8.0.
Features:
- SpinDynamica can now be loaded by Needs[“SpinDynamica`”] . This instruction now reads in the other packages.
- Minor bugs fixed
SpinDynamica v.2.5.4
19-Nov-12: SpinDynamica v.2.5.4 by Malcolm Levitt. Compatible with Mathematica 8.0.
Features:
- Minor bugs fixed
- Trajectory function fixed
SpinDynamica v.2.5.3
19-Sep-12: SpinDynamica v.2.5.3 by Malcolm Levitt. Compatible with Mathematica 8.0.
Features:
- Minor bugs fixed
- Speed enhancement for certain problems
SpinDynamica v. 2.5.1
24-Jul-12: SpinDynamica v.2.5.1 by Malcolm Levitt. Compatible with Mathematica 8.0.
Features:
- Minor bugs fixed
SpinDynamica v. 2.5
25-Jun-12: SpinDynamica v.2.5 by Malcolm Levitt. Compatible with Mathematica 8.0.
Features:
- Implementation of Hilbert space COMPUTE in Signal1D
- Miscellaneous bug corrections and speed enhancements
- Extended documentation included with the release
SpinDynamica v. 2.4
03-May-12: SpinDynamica v.2.4 by Malcolm Levitt. Compatible with Mathematica 8.0.
Features:
- A new global parameter $Chronology sets the chronological direction for all sequences of events. The default is “LeftToRight”. Existing programs which use right-to-left chronology will have to be modified, or alternatively, the instruction $Chronology=”RightToLeft” may be executed.
- A new global parameter $ChopThreshold is used to set the threshold for all Chop routines. The default is 10-10, but this may be set to a smaller number for EPR applications
- The option ObservableOperator of Signal1D has been superseded by Observable, which has enhanced functionality
- Miscellaneous debugging and speed enhancements
- Some introductory documentation is now included with the release in the documentation folder
- Example files are now included with the ZIP download. These have been tested on the current release.
SpinDynamica v. 2.3.1
20-Apr-12: SpinDynamica v.2.3.1 Compatible with Mathematica 8.0.
Minor internal bugs fixed, plus general speed improvements
SpinDynamica v. 2.2
11-Jan-12: SpinDynamica v.2.2 Compatible with Mathematica 8.0.
Major changes to code. Changes since v. 2.1 include:
NMR`SpinOperators
- Considerable generalization of operators. The Operator routine may be used to precalculate the matrix representation of an operator in a given basis and use the result for further calculations. Operator takes the option OperatorType which may be None, Automatic, “Hermitian” or “Unitary”. By default the OperatorType is assigned automatically. opI, opR and opT functions are restructured upon this routine.
- opI and opR have been given the attribute NHoldFirst, avoiding the generation of some common error messages during numerical evaluations
- OperatorAmplitude may be used to normalize the results of calculations based on thermal equilibrium density operators.
NMR`SpinSuperoperators`
- Superoperator routine introduced. The Superoperator routine may be used to precalculate the matrix representation of a superoperator in a given basis and use the result for further calculations. Superoperator takes the option SuperoperatorType which may be None, Automatic, “Hermitian”, “Normal” or “Unitary”. By default the SuperoperatorType is assigned automatically
- Bugs leading to slow evaluation of SuperoperatorMatrixRepresentation for ProjectionSuperoperator and ShiftSuperoperator have been fixed
NMR`SpinDynamics`
- The new routine Liouvillian converts operators and sequences of evolution generators into a single Liouvillian superoperator
- Attributes of Trajectory, TransformationAmplitude, TransformationAmplitudeTable, Signal1D changed from HoldAll to HoldRest
- Normalization has been removed and replaced by NormalizationFactor which takes a numerical value. For example, explicit syntax such as NormalizationFactor ->
- TransformationAmplitudeTable no longer requires the iterator to be an integer
General
- The new routine ReplaceEverywhere acts like ReplaceAll but also works inside SparseArray objects (General`Miscellaneous`)
- LineBroadening changed to rad s-1 to maintain consistency with spin dynamical conventions (General`Signal`)
- Several inconsistencies in the Fourier transforms have been fixed (General`Signal`)
SpinDynamica v. 2.1
23-Nov-11: SpinDynamica v.2.1 Compatible with Mathematica 8.0.
Changes since v. 2.0.1:
- Bugs leading to slow evaluation of SuperoperatorMatrixRepresentation for ProjectionSuperoperator and ShiftSuperoperator have been fixed (NMR`SpinSuperoperators`)
- opI and opR have been given the attribute NHoldFirst, avoiding the generation of some common error messages during numerical evaluations (NMR`SpinOperators`)
- Several inconsistencies in the Fourier transforms have been fixed (General`Signal`)
SpinDynamica v. 2.0.1
08-Nov-11: SpinDynamica v.2.0.1 Compatible with Mathematica 8.0. SpinDynamica 2 is not compatible with Mathematica 7.x.
Changes since v. 1.4:
- Modifications to CombineSignals (in General`Signal) for improved speed when combining many signals
- Some new code for FT, programmed by Salvatore Mamone, is incorporated into General`Signal to fix inconsistent vertical scaling of the output
- A bug in MaximumTransformationAmplitude (in NMR`SpinDynamics) has been fixed for the case of symbolic eigenvalues
- Orientational sampling weights are now a built-in function of Mathematica 8, so to provide new compatibility, Rotations`OrientationalSampling has been replaced by OrientationWeights
- WignerD definitions (in Rotations`Wigner) have been added to provide compatibility with Mathematica 8.x, where WignerD is now a built-in function
SpinDynamica v. 1.4
09-Sep-11: SpinDynamica v.1.4 Compatible with Mathematica 7.0
Fixes routines that parse for best matrix solving method in NPropagate, Trajectory, plus Signal1D. Fixes NMR’SpinSuperoperators’DiagonalizeSuperoperator and the option “Diagonalization->True”, which use NormalQ to detect when a matrix is normal, and in those cases apply fast methods to avoid matrix inversion.
SpinDynamica v. 1.2
27-Jun-11: SpinDynamica v.1.2. Compatible with Mathematica 7.0
CombineEvolutionGenerators bugfix. In previous versions this function did not combine events properly, e.g. when superposing a Hamiltonian and a Liouvillian.
SpinDynamica v. 1.1
09-Jun-11: SpinDynamica v.1.1. Compatible with Mathematica 7.0
Defective passing of NDSolve options from higher-level routines has been resolved.
SpinDynamica v. 1.0
22-May-11: SpinDynamica v.1.0. Compatible with Mathematica 7.0
First release of SpinDynamica