
v0.4.0
------

What's new!
'''''''''''

- ⭐ Improved simulation performance. ⭐ See our :ref:`benchmark`.
- Added Czjzek and extended Czjzek second-rank symmetric tensor distribution models
  for creating spin systems for amorphous materials.
- Add a new utility function, ``single_site_system_generator``, for generating a list of
  single-site spin systems from a 1D list/array of respective tensor parameters.

v0.3.0
------

What's new!
'''''''''''

- ⭐ Improved simulation performance. ⭐ See our :ref:`benchmark`.
- 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``.

v0.2.x
------

What's new!
'''''''''''

- Added more isotopes to the simulator. Source NMR Tables
  (https://apps.apple.com/bn/app/nmr-tables/id1030899609?mt=12).
- Added two new keywords: `atomic_number` and `quadrupole_moment`.
- Added documentation for every class.
- Added examples for simulating NMR quadrupolar spectrum.

Bug fixes
'''''''''

- Fixed amplitude normalization. The spectral amplitude no longer change when the
  `integration_density`, integration_volume`, or the `number_of_sidebands` attributes
  change.

Other changes
'''''''''''''

- Removed plotly-dash app to its own repository.
- Renamed the class ``Spectrum`` to ``Dimension``

v0.1.3
------

- Fixed missing files from source tar.

v0.1.2
------

- Initial release on pypi.

v0.1.1
------

- Added solid state quadrupolar spectrum simulation.
- Added mrsimulator plotly-dash app.

v0.1.0
------

- Solid state chemical shift anisotropy spectrum simulation.
