diff --git a/joss.06036/10.21105.joss.06036.crossref.xml b/joss.06036/10.21105.joss.06036.crossref.xml new file mode 100644 index 0000000000..90bf539303 --- /dev/null +++ b/joss.06036/10.21105.joss.06036.crossref.xml @@ -0,0 +1,297 @@ + + + + 20240926142430-2f941ff349f977ae6946c70d6239902f850e83e6 + 20240926142430 + + JOSS Admin + admin@theoj.org + + The Open Journal + + + + + Journal of Open Source Software + JOSS + 2475-9066 + + 10.21105/joss + https://joss.theoj.org + + + + + 09 + 2024 + + + 9 + + 101 + + + + State-Averaged Orbital-Optimized VQE: A quantum +algorithm for the democratic description of ground and excited +electronic states + + + + Martin + Beseda + https://orcid.org/0000-0001-5792-2872 + + + Silvie + Illésová + https://orcid.org/0009-0002-5231-3714 + + + Saad + Yalouz + https://orcid.org/0000-0002-8818-3379 + + + Bruno + Senjean + https://orcid.org/0000-0003-1706-015X + + + + 09 + 26 + 2024 + + + 6036 + + + 10.21105/joss.06036 + + + http://creativecommons.org/licenses/by/4.0/ + http://creativecommons.org/licenses/by/4.0/ + http://creativecommons.org/licenses/by/4.0/ + + + + Software archive + 10.5281/zenodo.13840953 + + + GitHub review issue + https://github.com/openjournals/joss-reviews/issues/6036 + + + + 10.21105/joss.06036 + https://joss.theoj.org/papers/10.21105/joss.06036 + + + https://joss.theoj.org/papers/10.21105/joss.06036.pdf + + + + + + Analytical energy gradient for state-averaged +orbital-optimized variational quantum eigensolvers and its application +to a photochemical reaction + Omiya + Journal of Chemical Theory and +Computation + 2 + 18 + 10.1021/acs.jctc.1c00877 + 2022 + Omiya, K., Nakagawa, Y. O., Koh, S., +Mizukami, W., Gao, Q., & Kobayashi, T. (2022). Analytical energy +gradient for state-averaged orbital-optimized variational quantum +eigensolvers and its application to a photochemical reaction. Journal of +Chemical Theory and Computation, 18(2), 741–748. +https://doi.org/10.1021/acs.jctc.1c00877 + + + The CASSCF state interaction +method + Malmqvist + Chemical physics letters + 2 + 155 + 10.1016/0009-2614(89)85347-3 + 1989 + Malmqvist, P.-Å., & Roos, B. O. +(1989). The CASSCF state interaction method. Chemical Physics Letters, +155(2), 189–194. +https://doi.org/10.1016/0009-2614(89)85347-3 + + + The OpenMolcas web: A community-driven +approach to advancing computational chemistry + Li Manni + Journal of Chemical Theory and +Computation + 10.1021/acs.jctc.3c00182 + 2023 + Li Manni, G., Fdez. Galván, I., +Alavi, A., Aleotti, F., Aquilante, F., Autschbach, J., Avagliano, D., +Baiardi, A., Bao, J. J., Battaglia, S., & others. (2023). The +OpenMolcas web: A community-driven approach to advancing computational +chemistry. Journal of Chemical Theory and Computation. +https://doi.org/10.1021/acs.jctc.3c00182 + + + Analytical nonadiabatic couplings and +gradients within the state-averaged orbital-optimized variational +quantum eigensolver + Yalouz + Journal of chemical theory and +computation + 2 + 18 + 10.1021/acs.jctc.1c00995 + 2022 + Yalouz, S., Koridon, E., Senjean, B., +Lasorne, B., Buda, F., & Visscher, L. (2022). Analytical +nonadiabatic couplings and gradients within the state-averaged +orbital-optimized variational quantum eigensolver. Journal of Chemical +Theory and Computation, 18(2), 776–794. +https://doi.org/10.1021/acs.jctc.1c00995 + + + A state-averaged orbital-optimized hybrid +quantum–classical algorithm for a democratic description of ground and +excited states + Yalouz + Quantum Science and +Technology + 2 + 6 + 10.1088/2058-9565/abd334 + 2021 + Yalouz, S., Senjean, B., Günther, J., +Buda, F., O’Brien, T. E., & Visscher, L. (2021). A state-averaged +orbital-optimized hybrid quantum–classical algorithm for a democratic +description of ground and excited states. Quantum Science and +Technology, 6(2), 024004. +https://doi.org/10.1088/2058-9565/abd334 + + + Increasing the representation accuracy of +quantum simulations of chemistry without extra quantum +resources + Takeshita + Physical Review X + 1 + 10 + 10.1103/PhysRevX.10.011004 + 2020 + Takeshita, T., Rubin, N. C., Jiang, +Z., Lee, E., Babbush, R., & McClean, J. R. (2020). Increasing the +representation accuracy of quantum simulations of chemistry without +extra quantum resources. Physical Review X, 10(1), 011004. +https://doi.org/10.1103/PhysRevX.10.011004 + + + Analytical gradient theory for +quasidegenerate n-electron valence state perturbation theory +(QD-NEVPT2) + Park + Journal of chemical theory and +computation + 1 + 16 + 10.1021/acs.jctc.9b00919 + 2019 + Park, J. W. (2019). Analytical +gradient theory for quasidegenerate n-electron valence state +perturbation theory (QD-NEVPT2). Journal of Chemical Theory and +Computation, 16(1), 326–339. +https://doi.org/10.1021/acs.jctc.9b00919 + + + Extended multi-configuration quasi-degenerate +perturbation theory: The new approach to multi-state multi-reference +perturbation theory + Granovsky + The Journal of chemical +physics + 21 + 134 + 10.1063/1.3596699 + 2011 + Granovsky, A. A. (2011). Extended +multi-configuration quasi-degenerate perturbation theory: The new +approach to multi-state multi-reference perturbation theory. The Journal +of Chemical Physics, 134(21), 214113. +https://doi.org/10.1063/1.3596699 + + + Molecular electronic-structure +theory + Helgaker + 10.1002/9781119019572 + 2013 + Helgaker, T., Jorgensen, P., & +Olsen, J. (2013). Molecular electronic-structure theory. John Wiley +& Sons. +https://doi.org/10.1002/9781119019572 + + + Quantum algorithms for quantum chemistry and +quantum materials science + Bauer + Chemical Reviews + 22 + 120 + 10.1021/acs.chemrev.9b00829 + 2020 + Bauer, B., Bravyi, S., Motta, M., +& Chan, G. K.-L. (2020). Quantum algorithms for quantum chemistry +and quantum materials science. Chemical Reviews, 120(22), 12685–12717. +https://doi.org/10.1021/acs.chemrev.9b00829 + + + Quantum computational +chemistry + McArdle + Reviews of Modern Physics + 1 + 92 + 10.1103/RevModPhys.92.015003 + 2020 + McArdle, S., Endo, S., Aspuru-Guzik, +A., Benjamin, S. C., & Yuan, X. (2020). Quantum computational +chemistry. Reviews of Modern Physics, 92(1), 015003. +https://doi.org/10.1103/RevModPhys.92.015003 + + + Elucidating reaction mechanisms on quantum +computers + Reiher + Proceedings of the national academy of +sciences + 29 + 114 + 10.1073/pnas.1619152114 + 2017 + Reiher, M., Wiebe, N., Svore, K. M., +Wecker, D., & Troyer, M. (2017). Elucidating reaction mechanisms on +quantum computers. Proceedings of the National Academy of Sciences, +114(29), 7555–7560. +https://doi.org/10.1073/pnas.1619152114 + + + + + + diff --git a/joss.06036/10.21105.joss.06036.pdf b/joss.06036/10.21105.joss.06036.pdf new file mode 100644 index 0000000000..55c1cfebc4 Binary files /dev/null and b/joss.06036/10.21105.joss.06036.pdf differ diff --git a/joss.06036/paper.jats/10.21105.joss.06036.jats b/joss.06036/paper.jats/10.21105.joss.06036.jats new file mode 100644 index 0000000000..cb807156c0 --- /dev/null +++ b/joss.06036/paper.jats/10.21105.joss.06036.jats @@ -0,0 +1,586 @@ + + +
+ + + + +Journal of Open Source Software +JOSS + +2475-9066 + +Open Journals + + + +6036 +10.21105/joss.06036 + +State-Averaged Orbital-Optimized VQE: A quantum algorithm +for the democratic description of ground and excited electronic +states + + + +https://orcid.org/0000-0001-5792-2872 + +Beseda +Martin + + + + +* + + +https://orcid.org/0009-0002-5231-3714 + +Illésová +Silvie + + + + + + +https://orcid.org/0000-0002-8818-3379 + +Yalouz +Saad + + + + +https://orcid.org/0000-0003-1706-015X + +Senjean +Bruno + + + + + +ICGM, Université de Montpellier, CNRS, ENSCM, Montpellier, +France + + + + +VSB - Technical University of Ostrava, 708 00 Ostrava, +Czech Republic + + + + +IT4Innovations, VSB – Technical University of Ostrava, 17. +listopadu 2172/15, 708 00 Ostrava-Poruba, Czech Republic + + + + +Laboratoire de Chimie Quantique, Institut de Chimie, +CNRS/Université de Strasbourg, 4 rue Blaise Pascal, 67000 Strasbourg, +France + + + + +Dipartimento di Ingegneria e Scienze dell’Informazione e +Matematica, Università dell’Aquila, via Vetoio, I-67010 +Coppito-L’Aquila, Italy + + + + +* E-mail: + + +16 +6 +2023 + +9 +101 +6036 + +Authors of papers retain copyright and release the +work under a Creative Commons Attribution 4.0 International License (CC +BY 4.0) +2022 +The article authors + +Authors of papers retain copyright and release the work under +a Creative Commons Attribution 4.0 International License (CC BY +4.0) + + + +Python +chemistry +quantum +dynamics +hybrid + + + + + + Summary +

The electronic structure problem is one of the main problems in + modern theoretical chemistry. While there are many already-established + methods both for the problem itself and its applications like + semi-classical or quantum dynamics, it remains a computationally + demanding task, effectively limiting the size of solved problems. + Fortunately, it seems, that offloading some parts of the computation + to Quantum Processing Units (QPUs) may offer + significant speed-up, often referred to as quantum + supremacy or quantum advantage. Together + with the potential advantage, this approach simultaneously presents + several problems, most notably naturally occurring quantum + decoherence, hereafter denoted as quantum noise and + lack of large-scale quantum computers, making it necessary to focus on + Noisy-Intermediate Scale Quantum computers when developing algorithms + aspiring to near-term applications. SA-OO-VQE package aims to answer + both these problems with its hybrid quantum-classical conception based + on a typical Variational Quantum Eigensolver approach, as only a part + of the algorithm utilizes offload to QPUs and the rest is performed on + a classical computer, thus partially avoiding both quantum noise and + the lack of quantum bits (qubits). The SA-OO-VQE has + the ability to treat degenerate (or quasi-degenerate) states on the + same footing, thus avoiding known numerical optimization problems + arising in state-specific approaches around avoided crossings or + conical intersections.

+
+ + Statement of need +

Recently, quantum chemistry is one of the main areas-of-interest in + Quantum Computing + (QC)(Bauer + et al., 2020; + McArdle + et al., 2020; + Reiher + et al., 2017). That said, in many real-life applications, it is + necessary to treat both the ground and excited states accurately and + on an equal footing. The problem is magnified when the + Born-Oppenheimer approximation breaks down due to a strong coupling + among degenerate or quasi-degenerate states, most notably the ground + and the first excited state, for which the accurate description + requires (computationally demanding) multi-configurational approaches. + A good example of such a case is a photoisomerization mechanism of the + rhodopsin chromophore, which progresses from the initial + photoexcitation of the cis isomer over the relaxation + in the first excited state towards a conical intersection, where the + population is transferred back to the ground state of the + trans isomer. To describe such a process thoroughly, + one must compute not only relevant potential energy surfaces + (PESs), but also their gradients w.r.t. nuclear + displacements, utilized further in molecular dynamics simulations. + Finally, a description of the conical intersection can be done by + obtaining non-adiabatic couplings (NACs).

+

Formally, the approaches describing PES topology, topography, and + non-adiabatic couplings require Hamiltonian diagonalization, which + represents the most significant bottleneck. Considering classical + methods like State-Averaged Multi-Configurational Self-Consistent + Field(Helgaker + et al., 2013), only small complete active spaces have to be + used for the large computational overhead inherently present. However, + such an approximation brings missing dynamical correlation treatment, + inducing the need to recover it ex-post, usually via some of the + quasi-degenerate perturbation + techniques(Granovsky, + 2011; + Park, + 2019). On the other hand, QC brings the possibility of large + complete active spaces back, thus retaining a substantial part of the + dynamical correlation. Moreover, the dynamical correlation can be also + retrieved a posteriori utilizing QPUs only at the expense of more + measurements, with no additional demands on hardware + infrastructure(Takeshita + et al., 2020).

+

State-Averaged Orbital-Optimization Variational Quantum + Eigensolver (SA-OO-VQE) method addresses the above-mentioned + problems and provides a way to compute both PES gradients and NACs + analytically(Omiya + et al., 2022; + Yalouz + et al., 2021, + 2022). + Authored by Yalouz et al., there is an exemplary + implementation focusing on the pedagogical aspect and relying on + matrix-vector multiplications rather than actual measurements, + avoiding the utilization of real QC infrastructure. Our implementation + differs in a way that it aims to be a production-ready solver + utilizing both QCs and classical computing infrastructure efficiently, + being able to run with different backgrounds, utilizing the Qiskit + toolbox interface. The whole code is written in Python3, with YAML + scripts enabling its fast installation and usage.

+

The results are illustrated on the molecule of formaldimine, which + can be seen in + [fig:formaldimine]. + Their comparison with the ones obtained via + Molcas(Li + Manni et al., 2023) implementation of Complete Active-Space + Self-Consistent + Field(Malmqvist + & Roos, 1989) are shown in + [fig:energies],[fig:grad0] + and [fig:nac]. All the + computations were computed with 3 active orbitals containing 4 + electrons and with STO-3G basis set.

+ +

Molecule of formaldimine being described with bending + and dihedral angles denoted + + α + and + + ϕ, + respectively. +

+ +
+ +

Comparison of potential energy depending on bending + angle + + α + in formaldimine molecule with dihedral angle + + + ϕ=90. +

+ +
+ +

Comparison of ground-state gradients with bending angle + + + α=130 + and dihedral angle + + ϕ=90 + in formaldimine molecule. +

+ +
+ +

Comparison of total non-adiabatic couplings on bending + angle + + α=130 + and dihedral angle + + ϕ=90 + in formaldimine molecule. +

+ +
+
+ + Features +

With SA-OO-VQE you can obtain the following quantities:

+ + +

Potential energy surfaces

+
+ +

Circuit (or Ansatz) gradients

+
+ +

Orbital gradients

+
+ +

Gradients of potential energy surfaces

+
+ +

Non-adiabatic couplings

+
+
+

Also, for numerical optimization, you can use any of the optimizers + supported by Qiskit1 and our own + implementation of

+ + +

Particle Swarm Optimization

+
+
+
+ + Getting Started +

The package is prepared with a priority of being very simple to use + and the concise documentation can be found at + sa-oo-vqe-qiskit.rtfd.io. + To simplify the installation part, we recommend utilizing the Conda + management system2 together with + the prepared environment.yml file.

+

At first, users should clone the repository.

+ git clone git@gitlab.com:MartinBeseda/sa-oo-vqe-qiskit.git +

And install all the dependencies.

+ $ cd sa-oo-vqe-qiskit +$ conda env create -f environment.yml +$ conda activate saoovqe-env +$ python3 -m pip install . +

These commands run in a terminal that will download and install all + the necessary packages. The package availability can be tested + afterward simply by importing the package and looking at its + version.

+ $ python3 + +>>> import saoovqe +>>> saoovqe.__version__ +

Finally, usage examples are located both in the + examples folder and in the documentation.

+
+ + Acknowledgements +

This work/project was publicly funded through ANR (the French + National Research Agency) under the “Investissements d’avenir” program + with the reference ANR-16-IDEX-0006. This work was also supported by + the Ministry of Education, Youth and Sports of the Czech Republic + through the e-INFRA CZ (ID:90254).

+
+ + + + + + + + OmiyaKeita + NakagawaYuya O + KohSho + MizukamiWataru + GaoQi + KobayashiTakao + + Analytical energy gradient for state-averaged orbital-optimized variational quantum eigensolvers and its application to a photochemical reaction + Journal of Chemical Theory and Computation + ACS Publications + 2022 + 18 + 2 + 10.1021/acs.jctc.1c00877 + 741 + 748 + + + + + + MalmqvistPer-Åke + RoosBjörn O + + The CASSCF state interaction method + Chemical physics letters + Elsevier + 1989 + 155 + 2 + 10.1016/0009-2614(89)85347-3 + 189 + 194 + + + + + + Li ManniGiovanni + Fdez. GalvánIgnacio + AlaviAli + AleottiFlavia + AquilanteFrancesco + AutschbachJochen + AvaglianoDavide + BaiardiAlberto + BaoJie J + BattagliaStefano + others + + The OpenMolcas web: A community-driven approach to advancing computational chemistry + Journal of Chemical Theory and Computation + ACS Publications + 2023 + 10.1021/acs.jctc.3c00182 + + + + + + YalouzSaad + KoridonEmiel + SenjeanBruno + LasorneBenjamin + BudaFrancesco + VisscherLucas + + Analytical nonadiabatic couplings and gradients within the state-averaged orbital-optimized variational quantum eigensolver + Journal of chemical theory and computation + ACS Publications + 2022 + 18 + 2 + 10.1021/acs.jctc.1c00995 + 776 + 794 + + + + + + YalouzSaad + SenjeanBruno + GüntherJakob + BudaFrancesco + O’BrienThomas E + VisscherLucas + + A state-averaged orbital-optimized hybrid quantum–classical algorithm for a democratic description of ground and excited states + Quantum Science and Technology + IOP Publishing + 2021 + 6 + 2 + 10.1088/2058-9565/abd334 + 024004 + + + + + + + TakeshitaTyler + RubinNicholas C + JiangZhang + LeeEunseok + BabbushRyan + McCleanJarrod R + + Increasing the representation accuracy of quantum simulations of chemistry without extra quantum resources + Physical Review X + APS + 2020 + 10 + 1 + 10.1103/PhysRevX.10.011004 + 011004 + + + + + + + ParkJae Woo + + Analytical gradient theory for quasidegenerate n-electron valence state perturbation theory (QD-NEVPT2) + Journal of chemical theory and computation + ACS Publications + 2019 + 16 + 1 + 10.1021/acs.jctc.9b00919 + 326 + 339 + + + + + + GranovskyAlexander A + + Extended multi-configuration quasi-degenerate perturbation theory: The new approach to multi-state multi-reference perturbation theory + The Journal of chemical physics + American Institute of Physics + 2011 + 134 + 21 + 10.1063/1.3596699 + 214113 + + + + + + + HelgakerTrygve + JorgensenPoul + OlsenJeppe + + Molecular electronic-structure theory + John Wiley & Sons + 2013 + 10.1002/9781119019572 + + + + + + BauerBela + BravyiSergey + MottaMario + ChanGarnet Kin-Lic + + Quantum algorithms for quantum chemistry and quantum materials science + Chemical Reviews + ACS Publications + 2020 + 120 + 22 + 10.1021/acs.chemrev.9b00829 + 12685 + 12717 + + + + + + McArdleSam + EndoSuguru + Aspuru-GuzikAlán + BenjaminSimon C + YuanXiao + + Quantum computational chemistry + Reviews of Modern Physics + APS + 2020 + 92 + 1 + 10.1103/RevModPhys.92.015003 + 015003 + + + + + + + ReiherMarkus + WiebeNathan + SvoreKrysta M + WeckerDave + TroyerMatthias + + Elucidating reaction mechanisms on quantum computers + Proceedings of the national academy of sciences + National Acad Sciences + 2017 + 114 + 29 + 10.1073/pnas.1619152114 + 7555 + 7560 + + + + + +

https://qiskit.org/documentation/stubs/qiskit.algorithms.optimizers.html

+
+ +

https://docs.conda.io/en/latest/

+
+
+
+
diff --git a/joss.06036/paper.jats/energies.svg b/joss.06036/paper.jats/energies.svg new file mode 100644 index 0000000000..afea2e9a6f --- /dev/null +++ b/joss.06036/paper.jats/energies.svg @@ -0,0 +1,1683 @@ + + + + + + + + 2023-07-20T00:39:50.055833 + image/svg+xml + + + Matplotlib v3.7.1, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/joss.06036/paper.jats/formaldimine.svg b/joss.06036/paper.jats/formaldimine.svg new file mode 100644 index 0000000000..c1e6ffbf6c --- /dev/null +++ b/joss.06036/paper.jats/formaldimine.svg @@ -0,0 +1,209 @@ + + + +Created with Fabric.js 5.3.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + bending angle + α + + + dihedral angle + Φ + + + N + + + H + + + H + + + H + + + C + + \ No newline at end of file diff --git a/joss.06036/paper.jats/grad_0_1d.svg b/joss.06036/paper.jats/grad_0_1d.svg new file mode 100644 index 0000000000..e54a6428d7 --- /dev/null +++ b/joss.06036/paper.jats/grad_0_1d.svg @@ -0,0 +1,987 @@ + + + + + + + + 2023-07-20T00:39:05.877330 + image/svg+xml + + + Matplotlib v3.7.1, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/joss.06036/paper.jats/total_nac_1d_.svg b/joss.06036/paper.jats/total_nac_1d_.svg new file mode 100644 index 0000000000..b90c230b78 --- /dev/null +++ b/joss.06036/paper.jats/total_nac_1d_.svg @@ -0,0 +1,836 @@ + + + + + + + + 2023-07-20T00:39:04.713986 + image/svg+xml + + + Matplotlib v3.7.1, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +