qiskit-community / qiskit-dynamics

Tools for building and solving models of quantum systems in Qiskit
https://qiskit-community.github.io/qiskit-dynamics/
Apache License 2.0
106 stars 60 forks source link

solve_lmde_perturbation returned data structure description is out of date #174

Closed DanPuzzuoli closed 1 year ago

DanPuzzuoli commented 1 year ago

The description of the return type for solve_lmde_perturbation reads:

    Regardless of the value of ``expansion_method``, results are returned in an
    ``OdeResult`` instance in the same manner as :func:`.solve_ode`. The result object
    stores the results of the LMDE for ``generator`` and ``y0`` in the ``y`` attribute as in
    :func:`.solve_ode` before, and the perturbation results are in the ``perturbation_results``
    attribute storing a :class:`.PerturbationResults` object, which is a
    data container with attributes:
        - ``expansion_method``: Method as specified by the user.
        - ``expansion_labels``: Index labels for all computed perturbation terms. In the case of
          the Dyson or Magnus expansion, the labels are ``Multiset`` instances and in the
          `'dyson_like'` case are lists of ``int``\s.
        - ``expansion_terms``: A 4d array storing all computed terms. The first axis indexes
          the expansion terms in the same ordering as ``expansion_labels``,
          and the second axis indexes the perturbation terms evaluated
          at the times in ``results.t`` in the same manner as ``results.y``.

this description was written before the introduction of the PowerSeriesData and DysonLikeData classes for storing the perturbation results, and wasn't updated.

The perturbation results are now stored in the perturbation_data attribute (rather than perturbation_results), and are given as either a PowerSeriesData or DysonLikeData class. The description of the attributes of these classes also need to be updated.