The open-source Python package, MRSimulator, is presented as a simple-to-use, fast, versatile, and extendable package capable of simulating one- and higher-dimensional Nuclear Magnetic Resonance (NMR) spectra under static, magic-angle, and variable-angle conditions. High benchmarks in spectral simulations are achieved by assuming that there are no degeneracies in the energy eigenstates, i.e., all dipolar couplings are in the weak limit and that there are no rotational resonances during evolution periods. Under these assumptions, the symmetry pathway formalism is exploited to reduce an NMR method applied to a spin system into a sum of individual transition pathways, whose signals are more efficiently calculated individually than as part of a full-density matrix simulation. To increase numerical efficiencies further, our approach restricts coherence transfer among transitions to pure rotations about an axis in the x-y plane of the rotating frame or through an artificial total mixing operation between selected transitions of adjacent free evolution periods. The assumptions used in this approach are valid for most commonly used solid-state NMR methods. Details of the implementation, along with example code usage, are given, including a least-squares spectral analysis.
Read full abstract