**Mrsimulator**
``mrsimulator`` is an open-source python package for computing fast and versatile solid-state NMR simulator of one-dimensional static, MAS, and VAS spectra of nuclei experiencing chemical shift (nuclear shielding) and quadrupolar coupling interactions. The library is optimized for computing both crystalline and amorphous materials and is compatible with modern python packages, such as scikit-learn, Keras, etc. The core of the ``mrsimulator`` library is written in C, wrapped, and made available in python.
**What's new!**
- ⭐ Improved simulation performance. ⭐.
- Removed the ``Dimension`` class and added a new ``Method`` class instead.
- New methods for simulating the NMR spectrum:
- ``BlochDecaySpectrum`` and
- ``BlochDecayCentralTransitionSpectrum``.
The Bloch decay spectrum method simulates all p=Δm=-1 transition pathways, while the Bloch decay central transition selective spectrum method simulates all transition pathways with p=Δm=-1 and d=0.
- New ``Isotope``, ``Transition``, and ``ZeemanState`` classes.
- Every class now includes a ``reduced_dict()`` method. The reduced_dict method returns a dictionary with minimal key-value pairs required to simulate the spectrum. Note, this may cause metadata loss, if any.
- Added a ``label`` and ``description`` attributes to the ``Site`` class.
- Added a new ``label`` attribute to the ``SpinSystem`` class.
- New ``SignalProcessor`` class for post-simulation signal processing.
- Improved usage of least-squares minimization using python [LMFIT](https://lmfit.github.io/lmfit-py/) package.
- Added a new ``get_spectral_dimensions`` utility function to extract the spectral dimensions information from the CSDM object.
**Bug fixes**
- Fixed bug resulting from the rotation of the fourth rank tensor with non-zero euler angles.
- Fixed bug causing a change in the spectral area as the sampling points change. Now the area is constant.
- Fixed bug resulting in an incorrect spectrum when non-coincidental quad and shielding tensors are given.
- Fixed bug causing incorrect generation of transition pathways when multiple events are present.
**Other changes**
- Renamed the ``decompose`` attribute from the ``ConfigSimulator`` class to ``decompose_spectrum``. The attribute is an enumeration with the following literals:
- ``none``: Computes a spectrum which is an integration of the spectra from all spin systems.
- ``spin_system``: Computes a series of spectra each corresponding to a single spin system.
- Renamed ``Isotopomer`` class to ``SpinSystem``.
- Renamed ``isotopomers`` attribute from ``Simulator`` class to ``spin_systems``.
- Renamed ``dimensions`` attribute from ``Simulator`` class to ``methods``.
- Changed the default value of ``name`` and ``description`` attribute from the ``SpinSystem`` class from ``""`` to ``None``.