Summary of the most important features of the program

Pulse sequence: virtually arbitrary pulse sequence with up to 2 dimensions and phase cycling

Spin systems: arbitrary, with up to 13 nuclei and 5 channels

Interactions: chemical shifts (isotropic and anisotropic), j-couplings (isotropic and anisotropic), dipolar interactions, quadrupolar interactions, RF field (ideal pulses are possible), pulsed field gradients (PFGs). RF pulses can be applied to individual spins. Chemical shift and dipolar interactions can be switched on/off or scaled in the course of the experiment. Dipolar, CSA, and quadrupolar interactions can be specified via local coordinates (bond angles, torsion angles, internuclear distances, local coordinate frames, z-matrix, extended molecule).

Solid-state (MAS or static) and liquid-state experiments; variable angle spinnig (VAS)

Chemical exchange/dynamics in fast and intermediate regimes

Relaxation: T2- and T1-relaxation of zero-, single-, or double-quantum coherences in the rotating frame

Explicit coherence selection (by filtering the density matrix)

Arbitrary initial density matrices and observables; several density matrices and/or observables can be defined in one experiment

Powder averaging: 3-, 2-, or 1-angle averaging using built-in or user-provided sets; available built-in set classes: REPULSION, Lebedev, ZCW, ASG, SOPHE, alpha-beta-step, and beta-step; interpolative powder averaging schemes for diagonal Hamiltonians; single-crystallite simulations

Analytic mode: mostly to provide numerical support for simple Average Hamiltonian theory calculations

Data fitting and optimization methods: NL2SOL, Levenberg-Marquardt, batch data fits for faster computations, fit parameter randomization to overcome local minima, grid search

Highly evolved interface for accessing and manipulating internal and user-defined variables: scan, average-over, and fit parameters, matrices, user-defined input/output via files and shell commands, macros of three different types, math functions, matlab-like syntax. SPINEVOLUTION derives its unique combination of flexibility and simplicity mostly from this under-the-hood interface.

Options to customize the computation and input/output of the program.

Input and output is in the form of text files. The simulation is run from a command line. External tools (such as Grace, Matlab, Gnuplot, GSim, etc) should be used for visualization of the results.

Scripts (e.g., Perl, Matlab, or shell) can be used to drive the simulations

Platforms: Windows/i686, OSX/x86-64, Linux/i686, Linux/x86-64, Linux/Itanium (i686 means any CPU supporting x86 architecture at the level of Pentium III instruction set; x86-64 means a 64-bit CPU supporting x86-64 architecture at the level of Core 2 and running a 64-bit operating system)

Multiprocessing: computations can be run in parallel on multi-procesor systems, computer clusters, or, in general, any combination of computers available on a network via ssh (as soon as they can run SPINEVOLUTION).

Current important limitations

Only secular terms of the Hamiltonian are allowed (all computations are carried out in the rotating frame)

Relaxation: arbitrary bases (spin states) cannot yet be specified for relaxation

Current important inconveniences (limitations that can be circumvented at the cost of efficiency or convenience)

Multiple sampling points per RF cycle are currently allowed only in the observe-each-step mode and for continuosly RF phase-incremented sequences (like the CN symmetry based sequences).

Some types of spin-operators for quadrupolar nuclei can be specified only via bra-ket notation (for use in initial density matrices and observables)

Interpolative powder averaging is implemented only for diagonal Hamiltonians