Skip to content

Add ROHF GDM#453

Open
v-boqinzhang wants to merge 37 commits into
mainfrom
gh-feature/gdm_rohf
Open

Add ROHF GDM#453
v-boqinzhang wants to merge 37 commits into
mainfrom
gh-feature/gdm_rohf

Conversation

@v-boqinzhang
Copy link
Copy Markdown
Contributor

No description provided.

Copilot AI review requested due to automatic review settings April 21, 2026 21:35
@v-boqinzhang v-boqinzhang marked this pull request as draft April 21, 2026 21:35
@v-boqinzhang v-boqinzhang self-assigned this Apr 21, 2026
@v-boqinzhang v-boqinzhang linked an issue Apr 21, 2026 that may be closed by this pull request
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR enables ROHF (restricted open-shell) support in the SCF GDM/DIIS_GDM convergence path by adding ROHF-specific convergence matrix handling to the SCFAlgorithm base and extending GDM to handle ROHF orbital rotations/gradients.

Changes:

  • Allow ROHF runs to use SCFAlgorithmName::GDM and SCFAlgorithmName::DIIS_GDM (previously blocked).
  • Centralize ROHF “effective Fock + total density” convergence-matrix caching in SCFAlgorithm and reuse it from DIIS/convergence checks.
  • Add ROHF-specific kappa packing, orbital rotation, pseudo-canonical transformations, and gradient computation in GDM.

Reviewed changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
cpp/tests/test_scf.cpp Removes the test that asserted ROHF+GDM is invalid (no replacement added).
cpp/src/qdk/chemistry/algorithms/microsoft/scf/src/scf_algorithm/scf_algorithm.cpp Enables ROHF+GDM/DIIS_GDM in the factory; adds ROHF convergence-matrix caching in base algorithm.
cpp/src/qdk/chemistry/algorithms/microsoft/scf/src/scf_algorithm/gdm.cpp Implements ROHF-specific rotations, gradients, and pseudo-canonical/Hessian logic for GDM line search + iteration.
cpp/src/qdk/chemistry/algorithms/microsoft/scf/src/scf_algorithm/diis.h Removes DIIS-owned ROHF cache API and updates internal helper signature.
cpp/src/qdk/chemistry/algorithms/microsoft/scf/src/scf_algorithm/diis.cpp Switches DIIS ROHF handling to use SCFAlgorithm’s shared ROHF convergence cache.
cpp/src/qdk/chemistry/algorithms/microsoft/scf/src/scf/scf_impl.h Exposes core Hamiltonian accessor and a J/K build helper for use by GDM ROHF gradient code.
cpp/src/qdk/chemistry/algorithms/microsoft/scf/src/scf/scf_impl.cpp Updates trial-density Fock build to treat ROHF like unrestricted; implements build_jk_matrices.
cpp/src/qdk/chemistry/algorithms/microsoft/scf/include/qdk/chemistry/scf/core/scf_algorithm.h Adds ROHF convergence-matrix hook + cache accessors and stores ROHF caches in base class.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread cpp/src/qdk/chemistry/algorithms/microsoft/scf/src/scf_algorithm/gdm.cpp Outdated
Comment thread cpp/tests/test_scf.cpp
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 21, 2026

📊 Coverage Summary

Component Coverage
C++ Library 78%
Python Package 87%
Pybind11 Bindings 88%

Detailed Coverage Reports

C++ Coverage Details
------------------------------------------------------------------------------
                           GCC Code Coverage Report
Directory: cpp
------------------------------------------------------------------------------
File                                       Lines    Exec  Cover   Missing
------------------------------------------------------------------------------
include/qdk/chemistry/algorithms/active_space.hpp
                                               5       5   100%
include/qdk/chemistry/algorithms/algorithm.hpp
                                              70      55    78%   117,119-121,124,126-128,130-131,219,241,243-244,302
include/qdk/chemistry/algorithms/dynamical_correlation_calculator.hpp
                                               7       6    85%   115
include/qdk/chemistry/algorithms/hamiltonian.hpp
                                               5       5   100%
include/qdk/chemistry/algorithms/localization.hpp
                                               5       5   100%
include/qdk/chemistry/algorithms/mc.hpp       22      22   100%
include/qdk/chemistry/algorithms/mcscf.hpp
                                              13      13   100%
include/qdk/chemistry/algorithms/pmc.hpp       8       6    75%   41,186
include/qdk/chemistry/algorithms/scf.hpp      13      12    92%   23
include/qdk/chemistry/algorithms/stability.hpp
                                               5       4    80%   131
include/qdk/chemistry/data/ansatz.hpp          3       3   100%
include/qdk/chemistry/data/basis_set.hpp      35      30    85%   108-109,112,114,319
include/qdk/chemistry/data/configuration.hpp
                                              32      30    93%   71,119
include/qdk/chemistry/data/configuration_set.hpp
                                               3       2    66%   35
include/qdk/chemistry/data/data_class.hpp
                                               4       4   100%
include/qdk/chemistry/data/element_data.hpp
                                              18      18   100%
include/qdk/chemistry/data/hamiltonian.hpp
                                              12      12   100%
include/qdk/chemistry/data/hamiltonian_containers/canonical_four_center.hpp
                                               1       1   100%
include/qdk/chemistry/data/hamiltonian_containers/cholesky.hpp
                                               1       1   100%
include/qdk/chemistry/data/hamiltonian_containers/sparse.hpp
                                               1       1   100%
include/qdk/chemistry/data/lattice_graph.hpp
                                               3       1    33%   413-414
include/qdk/chemistry/data/orbitals.hpp        6       6   100%
include/qdk/chemistry/data/pauli_operator.hpp
                                              88      83    94%   1203,1227,1262,1274,1288
include/qdk/chemistry/data/settings.hpp       93      68    73%   76,79,82,305-306,441,483,618,987,994,996,1011-1012,1016-1018,1022-1023,1025-1027,1029-1030,1119,1123
include/qdk/chemistry/data/stability_result.hpp
                                              38      38   100%
include/qdk/chemistry/data/structure.hpp       8       8   100%
include/qdk/chemistry/data/wavefunction.hpp
                                              25      19    76%   496,502,510-512,673
include/qdk/chemistry/data/wavefunction_containers/cas.hpp
                                               1       1   100%
include/qdk/chemistry/data/wavefunction_containers/cc.hpp
                                               1       1   100%
include/qdk/chemistry/data/wavefunction_containers/mp2.hpp
                                               1       1   100%
include/qdk/chemistry/data/wavefunction_containers/sci.hpp
                                               1       1   100%
include/qdk/chemistry/data/wavefunction_containers/sd.hpp
                                               1       1   100%
include/qdk/chemistry/utils/hash.hpp           4       4   100%
include/qdk/chemistry/utils/logger.hpp        41      35    85%   223-224,226,233-234,236
include/qdk/chemistry/utils/model_hamiltonians.hpp
                                             128     122    95%   59-60,89-90,137,141
include/qdk/chemistry/utils/string_utils.hpp
                                              11      10    90%   41
src/qdk/chemistry/algorithms/active_space.cpp
                                             232     142    61%   35-36,40-41,45-46,116-118,143-145,147,151-154,156-159,162-163,165-168,173-174,176-179,182-184,187-189,191,194-196,218,220,224,226-229,231-232,236-239,241,243,246-249,251,253,255-256,277-278,307,310,342,347-348,350-353,355-357,359-360,363,367,369-371,413,415,417
src/qdk/chemistry/algorithms/algorithm_defaults.cpp
                                              15       9    60%   41-45,49
src/qdk/chemistry/algorithms/dynamical_correlation_calculator.cpp
                                               8       8   100%
src/qdk/chemistry/algorithms/hamiltonian.cpp
                                              14      14   100%
src/qdk/chemistry/algorithms/localization.cpp
                                              15      15   100%
src/qdk/chemistry/algorithms/mc.cpp           11      11   100%
src/qdk/chemistry/algorithms/microsoft/active_space/autocas_active_space.cpp
                                              80      78    97%   103,133
src/qdk/chemistry/algorithms/microsoft/active_space/autocas_active_space.hpp
                                              16      16   100%
src/qdk/chemistry/algorithms/microsoft/active_space/entropy_active_space.cpp
                                              45      45   100%
src/qdk/chemistry/algorithms/microsoft/active_space/entropy_active_space.hpp
                                              10      10   100%
src/qdk/chemistry/algorithms/microsoft/active_space/occupation_active_space.cpp
                                              60      54    90%   46,48,81,83,101-102
src/qdk/chemistry/algorithms/microsoft/active_space/occupation_active_space.hpp
                                               6       6   100%
src/qdk/chemistry/algorithms/microsoft/active_space/valence_active_space.cpp
                                              75      63    84%   34,36,68-69,76-77,104-105,120-121,124-125
src/qdk/chemistry/algorithms/microsoft/active_space/valence_active_space.hpp
                                               9       9   100%
src/qdk/chemistry/algorithms/microsoft/cholesky_hamiltonian.cpp
                                             457     407    89%   98,102,420,439,442-443,462,473,476-477,507-508,557-558,564-566,573-574,581-582,613,616-617,632,640,642-644,679-683,774,776,788,794,807,813,875-876,878-879,882,987-988,990-991,994
src/qdk/chemistry/algorithms/microsoft/cholesky_hamiltonian.hpp
                                              13      13   100%
src/qdk/chemistry/algorithms/microsoft/hamiltonian.cpp
                                             252     230    91%   46-47,53-55,62-63,105-106,164-165,182-186,300,302,313,325,387,495
src/qdk/chemistry/algorithms/microsoft/hamiltonian.hpp
                                              10      10   100%
src/qdk/chemistry/algorithms/microsoft/localization/iterative_localizer_base.cpp
                                               5       5   100%
src/qdk/chemistry/algorithms/microsoft/localization/iterative_localizer_base.hpp
                                               8       8   100%
src/qdk/chemistry/algorithms/microsoft/localization/mp2_natural_orbitals.cpp
                                              79      74    93%   44,81,83,104,106
src/qdk/chemistry/algorithms/microsoft/localization/mp2_natural_orbitals.hpp
                                               3       3   100%
src/qdk/chemistry/algorithms/microsoft/localization/pipek_mezey.cpp
                                             169     160    94%   26,34,41,43,47,49,246,329,332
src/qdk/chemistry/algorithms/microsoft/localization/pipek_mezey.hpp
                                               6       6   100%
src/qdk/chemistry/algorithms/microsoft/localization/vvhv.cpp
                                             646     574    88%   336,338-339,452-453,476,534,695,739,741,746,762-765,768,778-781,784,819-821,827-831,859-862,865,887,889-891,968-972,1018-1022,1040-1043,1047-1050,1052-1054,1057,1131,1194-1196,1225,1267,1286,1289,1293,1295,1300-1301
src/qdk/chemistry/algorithms/microsoft/localization/vvhv.hpp
                                               6       6   100%
src/qdk/chemistry/algorithms/microsoft/macis_asci.cpp
                                              69      66    95%   51,167,169
src/qdk/chemistry/algorithms/microsoft/macis_asci.hpp
                                              73      73   100%
src/qdk/chemistry/algorithms/microsoft/macis_base.cpp
                                              70      56    80%   29-31,91-92,95,99-100,103-105,112-114
src/qdk/chemistry/algorithms/microsoft/macis_base.hpp
                                              99      77    77%   84,86,88,90,92,94,205-207,209,212,214,217-219,221-223,225-227,229
src/qdk/chemistry/algorithms/microsoft/macis_cas.cpp
                                              59      56    94%   48,132,134
src/qdk/chemistry/algorithms/microsoft/macis_cas.hpp
                                               5       5   100%
src/qdk/chemistry/algorithms/microsoft/macis_pmc.cpp
                                              78      76    97%   110,149
src/qdk/chemistry/algorithms/microsoft/macis_pmc.hpp
                                               5       5   100%
src/qdk/chemistry/algorithms/microsoft/mp2.cpp
                                             202     184    91%   33,78,82-83,93-94,97,101-102,149-150,153-154,164-165,168,172-173
src/qdk/chemistry/algorithms/microsoft/mp2.hpp
                                               2       2   100%
src/qdk/chemistry/algorithms/microsoft/scf.cpp
                                             286     265    92%   62-63,75-76,91-92,118-119,149-150,214,261,332,364,369,371,397-399,418,489
src/qdk/chemistry/algorithms/microsoft/scf.hpp
                                              19      19   100%
src/qdk/chemistry/algorithms/microsoft/scf/include/qdk/chemistry/scf/core/basis_set.h
                                               9       8    88%   134
src/qdk/chemistry/algorithms/microsoft/scf/include/qdk/chemistry/scf/core/enums.h
                                              16       0     0%   38-39,48-49,54-59,70-75
src/qdk/chemistry/algorithms/microsoft/scf/include/qdk/chemistry/scf/core/eri.h
                                              15      12    80%   46-47,49
src/qdk/chemistry/algorithms/microsoft/scf/include/qdk/chemistry/scf/core/exc.h
                                               3       3   100%
src/qdk/chemistry/algorithms/microsoft/scf/include/qdk/chemistry/scf/core/moeri.h
                                               3       3   100%
src/qdk/chemistry/algorithms/microsoft/scf/include/qdk/chemistry/scf/core/molecule.h
                                               1       1   100%
src/qdk/chemistry/algorithms/microsoft/scf/include/qdk/chemistry/scf/eri/eri_multiplexer.h
                                               6       3    50%   126-127,135
src/qdk/chemistry/algorithms/microsoft/scf/include/qdk/chemistry/scf/util/cache.h
                                              27      26    96%   44
src/qdk/chemistry/algorithms/microsoft/scf/include/qdk/chemistry/scf/util/class_registry.h
                                              13      13   100%
src/qdk/chemistry/algorithms/microsoft/scf/include/qdk/chemistry/scf/util/gauxc_registry.h
                                               6       5    83%   39
src/qdk/chemistry/algorithms/microsoft/scf/include/qdk/chemistry/scf/util/gauxc_util.h
                                              21      21   100%
src/qdk/chemistry/algorithms/microsoft/scf/include/qdk/chemistry/scf/util/int1e.h
                                               2       2   100%
src/qdk/chemistry/algorithms/microsoft/scf/include/qdk/chemistry/scf/util/singleton.h
                                              13      13   100%
src/qdk/chemistry/algorithms/microsoft/scf/src/core/basis_set.cpp
                                             361     279    77%   33-34,92-93,97-98,146,150-154,157-161,172,183-184,188,190-191,197-198,201-206,210,212-215,217,219,223,225-226,228-229,231,248,257,265-266,313-314,335,337,342-343,345-346,348,401,406-407,415,436,458,460-461,463-465,478,480,482-485,487,490,493-494,542,544,548-549
src/qdk/chemistry/algorithms/microsoft/scf/src/core/scf.cpp
                                               7       7   100%
src/qdk/chemistry/algorithms/microsoft/scf/src/eri/eri.cpp
                                              36      29    80%   58-60,65-66,89-90
src/qdk/chemistry/algorithms/microsoft/scf/src/eri/eri_df_base.cpp
                                              34      32    94%   29-30
src/qdk/chemistry/algorithms/microsoft/scf/src/eri/eri_df_base.h
                                               2       2   100%
src/qdk/chemistry/algorithms/microsoft/scf/src/eri/eri_multiplexer.cpp
                                              61      37    60%   16-17,26-29,40,46-49,52-55,79,81,83-85,87-88,91,93
src/qdk/chemistry/algorithms/microsoft/scf/src/eri/INCORE/incore.cpp
                                              42      29    69%   40,42,44,66,68,70-72,74-75,77-79
src/qdk/chemistry/algorithms/microsoft/scf/src/eri/INCORE/incore_impl.cpp
                                              96      88    91%   44,136,138,235,237,239,287,289
src/qdk/chemistry/algorithms/microsoft/scf/src/eri/INCORE/incore_impl_df.cpp
                                             102      60    58%   86-87,89,203,205,207-214,216-221,224,227-233,236,253,256,263-264,286,291,305-306,309,320-321,323-324,326
src/qdk/chemistry/algorithms/microsoft/scf/src/eri/LIBINT2_DIRECT/libint2_direct.cpp
                                             182     170    93%   606,608,610,908,910-913,916,918-920
src/qdk/chemistry/algorithms/microsoft/scf/src/eri/moeri.cpp
                                              36      34    94%   32-33
src/qdk/chemistry/algorithms/microsoft/scf/src/eri/schwarz.cpp
                                              33      13    39%   80-81,83-88,90-93,95-98,101-102,104,106
src/qdk/chemistry/algorithms/microsoft/scf/src/eri/SNK/snk.cpp
                                              66       0     0%   36,58-60,62-65,67,69-70,72,98,100,102-104,107-110,114-116,119-121,124-127,146,148,150,167-168,170,187,191,193-194,200-201,203,205-207,209,212,214,216-218,221,223,225-227,230,232,234-235,239-240,242-243
src/qdk/chemistry/algorithms/microsoft/scf/src/exc/exc.cpp
                                              16      14    87%   42-43
src/qdk/chemistry/algorithms/microsoft/scf/src/exc/GauXC/gauxc.cpp
                                              34      25    73%   42,46-47,50-52,54,56,67
src/qdk/chemistry/algorithms/microsoft/scf/src/exc/GauXC/gauxc_impl.cpp
                                             229     163    71%   79,119,160-161,249-258,260,262-270,352-353,360-364,366,368-377,380-381,383-384,387-389,396,398-399,405-409,411,413-417,419-420,426
src/qdk/chemistry/algorithms/microsoft/scf/src/scf/cpscf.cpp
                                             234     232    99%   232,237
src/qdk/chemistry/algorithms/microsoft/scf/src/scf/guess.cpp
                                              63      63   100%
src/qdk/chemistry/algorithms/microsoft/scf/src/scf/ks_impl.cpp
                                              81      63    77%   73,75-82,142,157-160,162-163,173-174
src/qdk/chemistry/algorithms/microsoft/scf/src/scf/scf_impl.cpp
                                             558     427    76%   74,102,117,123,169-170,186-187,330-331,340-343,468,472,552,589,608-610,677,716-717,721-722,731-736,746,750-753,755-762,775-779,781-784,786-787,794-795,797-802,804-809,811,819-822,832-833,844-846,860-865,868-871,874,877,879,978-980,983,985,989-990,992-996,998-1001,1003-1004,1008,1010,1012-1020,1023-1026,1029-1031,1033,1035
src/qdk/chemistry/algorithms/microsoft/scf/src/scf/scf_impl.h
                                              22      17    77%   98-100,113,184
src/qdk/chemistry/algorithms/microsoft/scf/src/scf/scf_solver.cpp
                                              82      54    65%   35,37,51,55-59,66,68,90,92-93,101-103,111-113,126-128,131-133,141-143
src/qdk/chemistry/algorithms/microsoft/scf/src/scf/soad.cpp
                                              15       0     0%   189,192-204,208
src/qdk/chemistry/algorithms/microsoft/scf/src/scf_algorithm/asahf.cpp
                                             286     275    96%   49,51,68-69,101,271,464-465,506,530-531
src/qdk/chemistry/algorithms/microsoft/scf/src/scf_algorithm/diis.cpp
                                             146     141    96%   125,316-319
src/qdk/chemistry/algorithms/microsoft/scf/src/scf_algorithm/diis_gdm.cpp
                                              36      36   100%
src/qdk/chemistry/algorithms/microsoft/scf/src/scf_algorithm/gdm.cpp
                                             709     664    93%   51,178,325,402,548,563,780,782-785,803-807,810-814,840-843,847,959-963,1093,1282,1285-1291,1391,1395,1484,1488,1490
src/qdk/chemistry/algorithms/microsoft/scf/src/scf_algorithm/scf_algorithm.cpp
                                             279     245    87%   43,46,54-55,62,108,116-117,124-127,213-214,218-219,224-225,244-245,268,270,293,295,304-305,379,385,392,397,404,413,421,434
src/qdk/chemistry/algorithms/microsoft/scf/src/scf_algorithm/scf_helper.h
                                              64      63    98%   93
src/qdk/chemistry/algorithms/microsoft/scf/src/util/gauxc_util.cpp
                                              85      20    23%   26-31,34-43,48-49,52-59,63-66,68,70,72-74,81-88,92-99,106-111,115-118,122-123,134-135
src/qdk/chemistry/algorithms/microsoft/scf/src/util/int1e.cpp
                                             336     226    67%   206-209,211,243,288,290-296,298-303,305-311,314-315,326,328-329,569,592,622,699,702-703,705,713,755,757-758,762-771,780,782-783,787-796,805,807-808,812-824,826-829,838,941-942,946-954,956-962,964-967,976
src/qdk/chemistry/algorithms/microsoft/scf/src/util/libint2_util.cpp
                                             181      91    50%   39,42-45,47,49-51,53-54,58-60,64-66,72,74,76-79,81-82,85-91,94-95,97-102,104-107,109-119,125-126,477,483-490,492-495,497,499,503-504,506,560,562,566-569,571-573,576,580-582,584,627
src/qdk/chemistry/algorithms/microsoft/scf/src/util/matrix_exp.cpp
                                              53      53   100%
src/qdk/chemistry/algorithms/microsoft/scf/src/util/mpi_vars.h
                                               2       2   100%
src/qdk/chemistry/algorithms/microsoft/scf/src/util/opt/gmresxx/arnoldi/arnoldi.h
                                              12      12   100%
src/qdk/chemistry/algorithms/microsoft/scf/src/util/opt/gmresxx/arnoldi/arnoldi_gmres.h
                                             202     168    83%   53-55,176,183,185-188,190-194,196,198,202,205,209,212,217-218,221,223,290,293-294,298,481-482,493,522-523,589
src/qdk/chemistry/algorithms/microsoft/scf/src/util/opt/gmresxx/linalg.h
                                              40      40   100%
src/qdk/chemistry/algorithms/microsoft/scf/src/util/timer.h
                                              29      29   100%
src/qdk/chemistry/algorithms/microsoft/stability.cpp
                                             317     294    92%   191-192,321-323,411,413,430,433-442,446,448,452,454,493
src/qdk/chemistry/algorithms/microsoft/stability.hpp
                                              13      13   100%
src/qdk/chemistry/algorithms/microsoft/utils.cpp
                                             248     171    69%   45-46,52,54,111-112,123-124,126-127,133,135,138-139,141,143-147,150-151,182,184,186,190-191,195,198-205,207-209,211,214-218,220-225,227-229,231,234-235,237,240-245,251,253-255,258-262,387-388,427,429
src/qdk/chemistry/algorithms/pmc.cpp           8       8   100%
src/qdk/chemistry/algorithms/scf.cpp           7       7   100%
src/qdk/chemistry/algorithms/stability.cpp
                                               6       6   100%
src/qdk/chemistry/data/ansatz.cpp            553     380    68%   26,36,39,46-48,50-51,53,55-56,58-60,62,69,84,99,104-105,107-108,115,120,122,148,150,207,209,280,295,297,302-303,336-340,345,347,357,359,362,364,374,376,379,381,394,396,401,403-404,410,412,417,419-420,434,436,441,443-444,449,451,456,458-459,461-462,464,468-469,471-472,474-475,477-478,480-484,486-487,489,492,495-500,502-503,506-508,510,513,515-516,549,559,569,579,601,608,612,626,630-631,641,651-652,659,668,684-687,690-691,694-696,698-699,701-703,719,727,744-747,782-783,792-793,804,812-813,824,835-836,843,852,869-872,875-876,879-881,883-884,886-888,894-895,906-907,931-934
src/qdk/chemistry/data/basis_set.cpp        1438    1250    86%   31,38,70,91-92,221,225,259-260,276-277,326-327,341,361,387,402,433,460,493,506-507,513-514,529-530,545-546,565,568-569,615,618-620,648,651-653,719,761,785,814,845,881,914,936,966,1006,1023,1032,1050,1067,1079,1090,1180-1181,1235,1249,1262,1276,1291,1298,1308,1310,1317,1331-1332,1465,1522-1523,1537-1539,1541-1542,1548-1551,1560-1561,1727,1791-1792,1805-1806,1906,1914,1926,1962-1966,1968-1970,1973-1977,2010,2024-2028,2031-2040,2042-2045,2047-2051,2053-2055,2058-2061,2065-2066,2068,2070-2074,2077-2078,2082-2086,2090-2092,2098-2101,2103-2105,2108,2110,2112,2132-2133,2142-2143,2151-2153,2160-2161,2181-2182,2184,2201-2203,2268-2269,2271-2276,2282,2390
src/qdk/chemistry/data/configuration.cpp     279     171    61%   67,167,170,172-173,176-177,179-180,183-184,186,190,194-195,204,210,236-238,266-268,271-272,274-283,285,287,289-292,294-295,297,299-300,302-304,307-308,310-311,313,315-316,318-325,327,329,331-334,336-337,341-342,344-348,351-352,354-355,358-359,361-368,370-371,373-381,421-422,432,434
src/qdk/chemistry/data/configuration_set.cpp
                                             328     209    63%   33-34,85-87,90-92,234,247,272-277,287-288,331-333,350-354,356,376-377,400-402,421,425,427,429,431-434,436-437,439,441-442,444-447,450-451,453-455,458-463,465-466,468-478,480,482,484-487,489-490,494-495,497-501,503,506-508,510-514,517-524,526-527,529-540
src/qdk/chemistry/data/filename_utils.hpp
                                              44      26    59%   30-33,35-36,51-53,72-75,77-78,93-95
src/qdk/chemistry/data/hamiltonian.cpp       554     400    72%   41,46-47,68,73-74,82,95,97-99,102-104,108-115,132,140,160-162,194-195,213-217,232-236,241,243,249,251,269,271-274,311,322,324,328,331,409-422,424,427-428,431-434,436-439,442-445,447-450,454-457,459-462,465-469,471-474,476-479,481-484,487-488,494,508,517-518,536,539-540,572,585,597,610,623,636,643,662,680,687,694,701-703,709,720-721,741-742,758-759,767-768,793-797,826,828-829,892-894
src/qdk/chemistry/data/hamiltonian_containers/canonical_four_center.cpp
                                             420     360    85%   38-39,67-68,98,110,128-129,156,163,169-171,204-205,213,276,309,349,353,361,373,385,391-392,423,432,437-438,443-444,462,470,477-484,487-494,514-516,597-598,607-608,634,656,721-722
src/qdk/chemistry/data/hamiltonian_containers/cholesky.cpp
                                             474     303    63%   44-45,72-73,86-90,103,162-165,167-168,172-174,177,179,181-182,185-187,190-191,194-195,198-207,209-210,227,234,240-242,265-270,279-280,328-331,333,335-338,340,364-367,369,371-374,377,382,384-387,389,391-393,396-400,402,404-408,417,432,440,452,468-469,487-488,490,499,504,506,510-511,516-517,519,521,530-531,534-537,543,550-557,560-567,585,588,592-594,642-643,651-652,658-662,673,677-678,687-688,714,736,753,764-766,772-773,779-780,786-787,798,801,805-806
src/qdk/chemistry/data/hamiltonian_containers/sparse.cpp
                                             396     347    87%   89,103,153-155,212,232-235,260-263,364-366,398,435-441,443,471-479,481,484,487-488,494-497,506-507,512,600,609,625
src/qdk/chemistry/data/hdf5_error_handling.hpp
                                              10       3    30%   20-21,23,25-26,28-29
src/qdk/chemistry/data/hdf5_serialization.cpp
                                             240     119    49%   13,15-22,24,26-32,34,36-44,46,48-56,65-67,69-71,73-74,77-79,82-85,95,98,106-109,111-113,115-116,119-121,124-127,138,141,143-150,153-160,238-240,249-251,253-255,258-260,277-280,282-286,288-289,308-310,312-316,318-319
src/qdk/chemistry/data/json_serialization.cpp
                                             177      86    48%   29,38,45-47,57,64-68,70-71,83,90-92,94-98,100,102-103,105,114,120-121,128-129,131,133-134,136-139,141,143-146,148-149,152-153,155,163-164,173,178-179,188-189,196,201,210,212,214,216-217,219-222,225-229,231-236,246-249,252-256,260-264
src/qdk/chemistry/data/lattice_graph.cpp     590     320    54%   39-42,53-56,102,104-105,107-110,112,114-115,117-120,169,196,199,202,245,248,251,306,309,312,359,362,365,445,456,524,612,626,639-640,642-649,651,653,655-658,660-661,663,665-666,669-673,677-680,682-685,687-688,690-691,693-694,696-698,700-702,704,706-707,709-710,713-715,718-721,724-726,728-736,740-742,745-755,757-765,767-768,770-777,779,781,783-786,788-789,793-794,796-800,802-805,807-808,810-811,813-814,816-817,820-821,823-832,834,836-839,841-848,850-851,853-854,856-857,859-864,866-867,869-877,879-881,884-886,888-890,892-895,897-898,900,902-913,915,918-921,923-937,939-940,942-943
src/qdk/chemistry/data/orbitals.cpp         1177     913    77%   106-107,128,144-145,151-152,156-157,178,180,220-221,237,251,292,307,321,363,373,377,400,403,405-406,409-413,416-417,421-424,426-427,429,431,433-434,437-440,443,447,449,453,455,457-458,461-467,470-471,474-475,477-478,480,482,484-485,488-492,495,498,500,563-567,570-571,573-574,576-577,580-581,584,586,589-590,592-593,595-596,599-601,604,606,609-610,612-613,615-616,619-620,623,625,665,668,691,759,770,776,781,808,818,862-866,904,917,929,942,962,980,989,1065-1068,1083-1084,1109-1113,1121-1122,1157,1181-1182,1191-1192,1198-1199,1205-1206,1208-1209,1212-1213,1215-1216,1229,1231-1232,1236-1237,1243,1285-1286,1314,1320,1364-1368,1396-1397,1399-1403,1406,1409,1411,1414,1416,1419,1421-1423,1425-1427,1430-1432,1434-1436,1438-1441,1460-1462,1465-1467,1470-1472,1534-1535,1564-1566,1581-1583,1617-1618,1630-1631,1789-1793,1806-1807,1810,1813-1814,1817-1819,1821,1860,1897,1912-1914,1963-1964,1999-2000,2006-2007,2013-2014,2016-2017,2020-2021,2023-2024,2031,2047-2048
src/qdk/chemistry/data/pauli_operator.cpp
                                             756     683    90%   60,63,87-88,190,202-203,224,397,407,421-423,517,555-557,559-561,577-579,581-583,606,609,721,806,818,820-821,855,860-862,877,882-884,912,938-942,944,946,951,956,996,1014-1016,1029,1036-1037,1039-1044,1062,1073-1076,1202,1222,1300,1343
src/qdk/chemistry/data/settings.cpp         1236     598    48%   40-43,68-70,81,85,95-101,126-134,136-140,158-163,166-169,171-175,177-181,183,185-188,190-195,197-201,203-213,217-226,239,243,280,292-295,297-299,302-306,308-309,311-313,315-316,318-319,362-363,366,381,412-413,416-418,420-425,427,429-434,437,457-461,464-465,468,470,476,478,480,484,486,488,492,536-537,539,541,543-544,546-549,553-554,556-558,561-562,566-568,571-573,577,579,582-587,592-596,598-608,610-613,615-619,621-625,628,632-635,639-643,647-650,653-657,659-660,662,664-667,669-671,673-674,676-678,680,682-684,686-690,693-697,699,701-703,705-707,709-713,716-720,722,724-726,729-731,733,736-738,741-742,745-752,754-755,757-758,761-762,764-770,773-779,783,786-787,790-791,794-795,798-799,802-806,808,810,812-813,815-818,820-821,823-824,826-829,831-832,834,836-839,842,844-847,851-856,860-861,863,865-868,872,875-876,889,895,898,905,908,916,920,937,941-942,959-962,971,974,982-983,999-1004,1006,1008-1009,1052-1055,1057-1059,1071-1072,1084,1086,1231,1235-1238,1240-1241,1244,1246-1248,1250-1253,1255-1259,1264,1266-1269,1272,1274-1275,1281-1282,1285-1290,1292,1296,1298,1301,1308,1312-1314,1320,1324,1327-1328,1333,1335-1337,1341,1386,1393,1411,1462-1464,1494,1500-1503,1525-1526,1561-1562,1564,1593-1595,1614-1619,1645-1647,1649,1651-1652,1655-1657,1659-1661,1667,1688-1695,1698-1701,1757,1785,1800-1802,1808-1816,1818,1821-1824,1826-1835,1837-1846,1849-1856,1858-1860,1863-1873,1875-1880,1882-1884,1886-1892,1894-1896,1898,1900,1902-1906,1908-1912,1914-1916,1918-1919,1921-1928,1930-1939,1941-1943,1945-1947,1963
src/qdk/chemistry/data/stability_result.cpp
                                             317     292    92%   25,32,42,176,213,218,271,281,299,315,344,346,350,356,379,419,421,425,451,458,503-507
src/qdk/chemistry/data/structure.cpp         761     703    92%   86,101,115-116,127,140,159,176-177,204,245-246,295,479,492,512,530,649,665,802,816,964-966,974-975,985,995-996,1018-1019,1027,1055-1057,1063,1076,1122-1123,1126,1132-1135,1138-1147,1151-1153,1156
src/qdk/chemistry/data/wavefunction.cpp     1319    1137    86%   45,65,175,178,186-188,269-270,286,307-310,312-315,318,336-341,344,386,417,454,467,488,493,509-510,531,548,551,574,577,580-589,620-626,628-630,732-741,838-842,937-939,984,998,1011,1013,1018,1020,1042-1043,1102,1104-1105,1119,1121,1124-1125,1146-1149,1151,1186,1188-1189,1214,1231,1357,1456-1459,1487,1494,1500,1507,1523,1529-1531,1537,1548,1578-1579,1594-1595,1602-1603,1623,1628-1629,1635,1646,1682,1792-1793,1803-1804,1831,1857-1858,1888-1889,1961,1963,1966-1967,1975-1977,1995-1997,1999-2000,2006-2009,2012-2022,2024-2025,2027-2030,2033-2036,2038-2040,2042-2043,2045-2046
src/qdk/chemistry/data/wavefunction_containers/cas.cpp
                                             252     199    79%   76-77,79-82,84-85,87-88,90,92-93,95-96,98-99,101,116,161-162,166,168,172,174,178-179,191-193,199,201-204,207-210,227-228,231-232,337-339,359,377-378,387,398,421-422
src/qdk/chemistry/data/wavefunction_containers/cc.cpp
                                             878     525    59%   48,52,57,59,62,66,71-72,74-77,79,87-88,122-127,153-160,169-175,203-204,206-220,222-224,226-228,231,233-234,250,258-259,261,267,277,287,299,319,324,326-328,331-334,337,339-340,343,345-349,351-352,354-355,358-359,381-383,385-387,389-391,393-395,397-399,425,432,463-466,528-529,595-596,599,601,603,606-607,609-610,612,615,617-620,622-624,627-628,630,633,637,639-640,643,687,696-697,699,705-706,708-709,716,728,737-738,747-748,754,790,800,810,820,830,841,940-950,952-956,969-979,981,983-985,1058-1069,1071-1083,1085-1091,1093-1100,1115-1126,1128-1140,1142-1148,1150-1156,1171-1181,1183-1195,1197-1200,1202,1204-1207,1223-1232,1234-1246,1248-1251,1253-1257,1322-1324,1326-1327,1330,1332-1333,1335,1337-1338,1342-1344
src/qdk/chemistry/data/wavefunction_containers/mp2.cpp
                                             626     433    69%   32,36,40-41,45-47,60-62,78,85,110,139,150-151,178-179,227-228,243,313,318,320-322,325-327,330-333,336-341,343-349,351-353,374,437-438,468-469,477,490-492,494,498-500,502,535,544-545,547,553-554,556-557,564,576,585-586,606,623-624,627-628,631,633-639,641-644,646,648,650,652-658,660-663,665,667,669,671-677,679-682,684,688-697,703-712,718-727,734-736,738-739,743,745-746,748-750,754-757,759,925,931,933,964-965,968-969,973,975,1006,1023,1057,1081,1083,1088,1092-1102
src/qdk/chemistry/data/wavefunction_containers/sci.cpp
                                             213     176    82%   78-79,81-84,86-87,89-90,92,94-95,97-98,100-101,103,117,151,153,155-156,166-167,170-171,260-262,282,300-301,310,321,344-345
src/qdk/chemistry/data/wavefunction_containers/sd.cpp
                                             399     336    84%   17,42-46,54,56-60,111,113,118,120,136-137,140,143-144,156,158,161-162,200,202,205-206,275,277,280-282,309,311,314,316,369,371,467,497-498,501,511-512,515,562,571,577,591,599-602,646-647,664-665,683-684,694-695
src/qdk/chemistry/utils/logger.cpp           120     115    95%   201-203,237,281
src/qdk/chemistry/utils/orbital_rotation.cpp
                                              93      56    60%   60-62,140-142,145,149-150,152,154-155,176,178,180,182,185-186,188,192-193,196-197,200,202-203,205,208-211,214,218-219,221,223-224
src/qdk/chemistry/utils/valence_space.cpp
                                              57      54    94%   73,102,106
------------------------------------------------------------------------------
TOTAL                                      23223   18200    78%
------------------------------------------------------------------------------
Python Coverage Details
src/qdk_chemistry/data/unitary_representation/containers/base.py                                     26      0   100%
src/qdk_chemistry/data/unitary_representation/containers/pauli_product_formula.py                    93      4    96%
src/qdk_chemistry/definitions.py                                                                      8      0   100%
src/qdk_chemistry/plugins/__init__.py                                                                 0      0   100%
src/qdk_chemistry/plugins/networkx/__init__.py                                                       19      0   100%
src/qdk_chemistry/plugins/networkx/term_grouper.py                                                   36      1    97%
src/qdk_chemistry/plugins/openfermion/__init__.py                                                    19      0   100%
src/qdk_chemistry/plugins/openfermion/conversion.py                                                  78     22    72%
src/qdk_chemistry/plugins/openfermion/qubit_mapper.py                                                63      1    98%
src/qdk_chemistry/plugins/pyscf/__init__.py                                                          18      0   100%
src/qdk_chemistry/plugins/pyscf/active_space_avas.py                                                 80      7    91%
src/qdk_chemistry/plugins/pyscf/conversion.py                                                       264     16    94%
src/qdk_chemistry/plugins/pyscf/coupled_cluster.py                                                  101     27    73%
src/qdk_chemistry/plugins/pyscf/localization.py                                                      72      8    89%
src/qdk_chemistry/plugins/pyscf/mcscf.py                                                            125     15    88%
src/qdk_chemistry/plugins/pyscf/scf_solver.py                                                       102      5    95%
src/qdk_chemistry/plugins/pyscf/stability.py                                                        154      2    99%
src/qdk_chemistry/plugins/qiskit/__init__.py                                                         43      0   100%
src/qdk_chemistry/plugins/qiskit/_interop/__init__.py                                                 0      0   100%
src/qdk_chemistry/plugins/qiskit/_interop/circuit.py                                                130      0   100%
src/qdk_chemistry/plugins/qiskit/_interop/noise_model.py                                             26      4    85%
src/qdk_chemistry/plugins/qiskit/_interop/qir.py                                                     87     25    71%
src/qdk_chemistry/plugins/qiskit/_interop/transpiler.py                                             151      0   100%
src/qdk_chemistry/plugins/qiskit/circuit_executor.py                                                 38      0   100%
src/qdk_chemistry/plugins/qiskit/conversion.py                                                       31      0   100%
src/qdk_chemistry/plugins/qiskit/qubit_mapper.py                                                     36      1    97%
src/qdk_chemistry/plugins/qiskit/regular_isometry.py                                                 40      0   100%
src/qdk_chemistry/plugins/qiskit/standard_phase_estimation.py                                        67      4    94%
src/qdk_chemistry/utils/__init__.py                                                                   4      0   100%
src/qdk_chemistry/utils/cubegen.py                                                                   54     54     0%
src/qdk_chemistry/utils/enum.py                                                                      23      3    87%
src/qdk_chemistry/utils/model_hamiltonians.py                                                        95     10    89%
src/qdk_chemistry/utils/pauli_commutation.py                                                         97      3    97%
src/qdk_chemistry/utils/pauli_matrix.py                                                              74      0   100%
src/qdk_chemistry/utils/phase.py                                                                     39      1    97%
src/qdk_chemistry/utils/qsharp/__init__.py                                                           17      0   100%
src/qdk_chemistry/utils/telemetry.py                                                                142     87    39%
src/qdk_chemistry/utils/telemetry_events.py                                                          59     48    19%
src/qdk_chemistry/utils/wavefunction.py                                                              57     57     0%
---------------------------------------------------------------------------------------------------------------------
TOTAL                                                                                              5775    740    87%
Coverage HTML written to dir ../coverage-reports/python_coverage_html
Coverage XML written to file ../coverage-reports/python_coverage.xml
=========================== short test summary info ============================
SKIPPED [2] tests/test_docs_examples.py:195: Skipping slow test. Set QDK_CHEMISTRY_RUN_SLOW_TESTS=1 to enable.
SKIPPED [1] tests/test_docs_examples.py:195: release_notes example requires v1.1.x (installed: 2.0.0+local)
SKIPPED [1] tests/test_sample_workflow.py:238: Skipping slow test. Set QDK_CHEMISTRY_RUN_SLOW_TESTS=1 to enable.
SKIPPED [1] tests/test_sample_workflow.py:262: Skipping slow test. Set QDK_CHEMISTRY_RUN_SLOW_TESTS=1 to enable.
SKIPPED [1] tests/test_sample_workflow_rdkit.py:30: Skipping: RDKit not installed
=========== 1523 passed, 6 skipped, 3 warnings in 1110.15s (0:18:30) ===========
Pybind11 Coverage Details
------------------------------------------------------------------------------
                           GCC Code Coverage Report
Directory: .
------------------------------------------------------------------------------
File                                       Lines     Exec  Cover   Missing
------------------------------------------------------------------------------
src/pybind11/algorithms/active_space.cpp      38       38   100%
src/pybind11/algorithms/davidson_solver.cpp
                                              35       34    97%   28
src/pybind11/algorithms/dynamical_correlation_calculator.cpp
                                              31       31   100%
src/pybind11/algorithms/factory_bindings.hpp
                                             288      239    83%   32,32,32,32,32,32,32,32-33,33,33,33,33,33,33,33-34,34,34,34,34,34,34,34-35,35,35,35,35,35,35,35-36,36,36,36,36,36,36,36,249,249,249,249,249,249,249,249,249
src/pybind11/algorithms/hamiltonian.cpp       36       36   100%
src/pybind11/algorithms/localizer.cpp         38       38   100%
src/pybind11/algorithms/mc.cpp                37       37   100%
src/pybind11/algorithms/mcscf.cpp             34       34   100%
src/pybind11/algorithms/pmc.cpp               36       35    97%   178
src/pybind11/algorithms/scf.cpp               35       35   100%
src/pybind11/algorithms/stability.cpp         34       34   100%
src/pybind11/algorithms/syev_solver.cpp       19       18    94%   43
src/pybind11/constants.cpp                    89       89   100%
src/pybind11/data/ansatz.cpp                  69       69   100%
src/pybind11/data/basis_set.cpp              204      204   100%
src/pybind11/data/configuration.cpp           30       29    96%   200
src/pybind11/data/configuration_set.cpp       84       84   100%
src/pybind11/data/data_class.cpp             109       27    24%   19-20,23-24,27,29,32,34-37,39-44,46,48-49,52,54,57-59,64,67,71-72,75,78-79,81-82,90,92,94-96,98,101,104-105,107,110,113-115,117-120,124,126,128-129,131,133,135-137,139,141,143-145,150-151,153,156-157,159,162-163,165,168-169,171,174,176,178,249
src/pybind11/data/element_data.cpp           123      123   100%
src/pybind11/data/hamiltonian.cpp            247      238    96%   62,65,67,458,477,650,670,855,876
src/pybind11/data/lattice_graph.cpp          122       96    78%   20,23,25,27,29-30,51,53-54,66-69,71-72,249,476-478,482,501,512,615,617,619,621
src/pybind11/data/orbitals.cpp               138      137    99%   940
src/pybind11/data/path_utils.hpp              19       11    57%   37,39,42-47
src/pybind11/data/pauli_operator.cpp         274      254    92%   146,257,322,398,403,409,415,427,467,473,505,511,517,529,604,636,641,655,659,667
src/pybind11/data/property_binding_helpers.hpp
                                             312      312   100%
src/pybind11/data/serialization.cpp            5        5   100%
src/pybind11/data/settings.cpp               834      570    68%   40-41,57-58,110-111,117-118,123-124,129,131,136,138,164-168,177-179,182-185,190-194,198-200,210-213,217-221,230-233,237-242,246-249,259-262,266-270,273-277,281-291,293-311,313-327,333,335,337-338,342,345-347,400,450,452-453,536,544-546,548,552,571-577,633-636,643-649,651,654,656,658-661,668,670,713,784,1444,1452,1458,1461,1580,1614,1692,1755,1780,1805,1831,1895,1983-1984,1986-1990,2024-2028,2030-2035,2086,2140,2166-2167,2169,2172-2175,2201,2243-2244,2246-2247,2278-2279,2281,2284-2287,2314-2316,2337-2339,2341-2342,2361-2367,2387-2389,2391-2392,2414-2418,2420-2425,2456-2457,2475-2481,2503-2504,2522-2528,2658
src/pybind11/data/stability_result.cpp       112      112   100%
src/pybind11/data/structure.cpp              199      184    92%   69,72,75-78,82-84,87,90-91,969,977,999
src/pybind11/data/wavefunction.cpp           365      347    95%   39,98,100,264-265,268,272,278,473-477,479,1016,1018,1064,1067
src/pybind11/module.cpp                       46       46   100%
src/pybind11/qdk_scf_config.cpp               12       12   100%
src/pybind11/utils/logger.cpp                191      177    92%   27,54,68-69,92,97-99,105-106,262-263,476,480
src/pybind11/utils/model_hamiltonians.cpp
                                              62       62   100%
src/pybind11/utils/orbital_rotation.cpp        7        7   100%
src/pybind11/utils/valence_space.cpp           6        6   100%
------------------------------------------------------------------------------
TOTAL                                       4320     3810    88%
------------------------------------------------------------------------------

@v-boqinzhang v-boqinzhang marked this pull request as ready for review April 23, 2026 04:46
Copilot AI review requested due to automatic review settings April 23, 2026 04:46
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 9 out of 9 changed files in this pull request and generated 3 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread cpp/tests/test_scf.cpp Outdated
Comment thread cpp/tests/test_scf.cpp Outdated
Comment thread cpp/src/qdk/chemistry/algorithms/microsoft/scf/src/scf_algorithm/gdm.cpp Outdated
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 11 out of 11 changed files in this pull request and generated 8 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread cpp/src/qdk/chemistry/algorithms/microsoft/scf/src/scf_algorithm/gdm.cpp Outdated
Comment thread cpp/src/qdk/chemistry/algorithms/microsoft/scf/src/scf_algorithm/gdm.cpp Outdated
Comment thread cpp/src/qdk/chemistry/algorithms/microsoft/scf/src/scf_algorithm/gdm.cpp Outdated
Copilot AI review requested due to automatic review settings May 1, 2026 16:32
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 12 out of 12 changed files in this pull request and generated 3 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread cpp/src/qdk/chemistry/algorithms/microsoft/scf/src/scf_algorithm/gdm.cpp Outdated
Comment thread cpp/src/qdk/chemistry/algorithms/microsoft/scf/src/scf_algorithm/gdm.cpp Outdated
@wavefunction91 wavefunction91 removed a link to an issue May 8, 2026
Copilot AI review requested due to automatic review settings May 18, 2026 19:37
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 12 out of 12 changed files in this pull request and generated 3 comments.

Comment thread cpp/src/qdk/chemistry/algorithms/microsoft/scf/src/scf/ks_impl.cpp
Copilot AI review requested due to automatic review settings May 18, 2026 21:35
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 12 out of 12 changed files in this pull request and generated 3 comments.

Comments suppressed due to low confidence (2)

cpp/src/qdk/chemistry/algorithms/microsoft/scf/src/scf_algorithm/gdm.cpp:1261

  • This calls ERI::build_JK() from inside GDM::iterate(), but SCFImpl::iterate_() invokes the SCF algorithm only on world_rank == 0, while ERI::build_JK() performs collective MPI reductions when world_size > 1. As a result, ROHF GDM will hang under MPI because the non-root ranks never enter this call. The ROHF GDM path should either coordinate the JK build across all ranks or be rejected when MPI is enabled.
    scf_impl.build_jk_matrices(scf_impl.get_density_matrix(), J_ao, K_ao);

cpp/src/qdk/chemistry/algorithms/microsoft/scf/src/scf_algorithm/scf_helper.h:31

  • This documentation says callers may pass arbitrary sub-block starts, but compute_atba_gemm() hardcodes the leading dimensions from m and n and has no way to accept the parent matrix stride. That is only correct for contiguous/full-width blocks; a true interior row-major sub-block would be read with the wrong stride. Please either restrict the contract to contiguous blocks or add leading-dimension parameters.

Comment thread cpp/tests/test_scf.cpp
Comment thread python/tests/test_scf.py
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 18, 2026

📊 Coverage Summary

Component Coverage
C++ Library 78%
Python Package 87%
Pybind11 Bindings 88%

Detailed Coverage Reports

C++ Coverage Details
------------------------------------------------------------------------------
                           GCC Code Coverage Report
Directory: cpp
------------------------------------------------------------------------------
File                                       Lines    Exec  Cover   Missing
------------------------------------------------------------------------------
include/qdk/chemistry/algorithms/active_space.hpp
                                               5       5   100%
include/qdk/chemistry/algorithms/algorithm.hpp
                                              70      55    78%   117,119-121,124,126-128,130-131,219,241,243-244,302
include/qdk/chemistry/algorithms/dynamical_correlation_calculator.hpp
                                               7       6    85%   115
include/qdk/chemistry/algorithms/hamiltonian.hpp
                                               5       5   100%
include/qdk/chemistry/algorithms/localization.hpp
                                               5       5   100%
include/qdk/chemistry/algorithms/mc.hpp       22      22   100%
include/qdk/chemistry/algorithms/mcscf.hpp
                                              13      13   100%
include/qdk/chemistry/algorithms/pmc.hpp       8       6    75%   41,186
include/qdk/chemistry/algorithms/scf.hpp      13      12    92%   23
include/qdk/chemistry/algorithms/stability.hpp
                                               5       4    80%   131
include/qdk/chemistry/data/ansatz.hpp          3       3   100%
include/qdk/chemistry/data/basis_set.hpp      35      30    85%   108-109,112,114,319
include/qdk/chemistry/data/configuration.hpp
                                              32      30    93%   71,119
include/qdk/chemistry/data/configuration_set.hpp
                                               3       2    66%   35
include/qdk/chemistry/data/data_class.hpp
                                               4       4   100%
include/qdk/chemistry/data/element_data.hpp
                                              18      18   100%
include/qdk/chemistry/data/hamiltonian.hpp
                                              12      12   100%
include/qdk/chemistry/data/hamiltonian_containers/canonical_four_center.hpp
                                               1       1   100%
include/qdk/chemistry/data/hamiltonian_containers/cholesky.hpp
                                               1       1   100%
include/qdk/chemistry/data/hamiltonian_containers/sparse.hpp
                                               1       1   100%
include/qdk/chemistry/data/lattice_graph.hpp
                                               3       1    33%   413-414
include/qdk/chemistry/data/orbitals.hpp        6       6   100%
include/qdk/chemistry/data/pauli_operator.hpp
                                              88      83    94%   1203,1227,1262,1274,1288
include/qdk/chemistry/data/settings.hpp       93      68    73%   76,79,82,305-306,441,483,618,987,994,996,1011-1012,1016-1018,1022-1023,1025-1027,1029-1030,1119,1123
include/qdk/chemistry/data/stability_result.hpp
                                              38      38   100%
include/qdk/chemistry/data/structure.hpp       8       8   100%
include/qdk/chemistry/data/wavefunction.hpp
                                              25      19    76%   496,502,510-512,673
include/qdk/chemistry/data/wavefunction_containers/cas.hpp
                                               1       1   100%
include/qdk/chemistry/data/wavefunction_containers/cc.hpp
                                               1       1   100%
include/qdk/chemistry/data/wavefunction_containers/mp2.hpp
                                               1       1   100%
include/qdk/chemistry/data/wavefunction_containers/sci.hpp
                                               1       1   100%
include/qdk/chemistry/data/wavefunction_containers/sd.hpp
                                               1       1   100%
include/qdk/chemistry/utils/hash.hpp           4       4   100%
include/qdk/chemistry/utils/logger.hpp        41      35    85%   223-224,226,233-234,236
include/qdk/chemistry/utils/model_hamiltonians.hpp
                                             128     122    95%   59-60,89-90,137,141
include/qdk/chemistry/utils/string_utils.hpp
                                              11      10    90%   41
src/qdk/chemistry/algorithms/active_space.cpp
                                             232     142    61%   35-36,40-41,45-46,116-118,143-145,147,151-154,156-159,162-163,165-168,173-174,176-179,182-184,187-189,191,194-196,218,220,224,226-229,231-232,236-239,241,243,246-249,251,253,255-256,277-278,307,310,342,347-348,350-353,355-357,359-360,363,367,369-371,413,415,417
src/qdk/chemistry/algorithms/algorithm_defaults.cpp
                                              15       9    60%   41-45,49
src/qdk/chemistry/algorithms/dynamical_correlation_calculator.cpp
                                               8       8   100%
src/qdk/chemistry/algorithms/hamiltonian.cpp
                                              14      14   100%
src/qdk/chemistry/algorithms/localization.cpp
                                              15      15   100%
src/qdk/chemistry/algorithms/mc.cpp           11      11   100%
src/qdk/chemistry/algorithms/microsoft/active_space/autocas_active_space.cpp
                                              80      78    97%   103,133
src/qdk/chemistry/algorithms/microsoft/active_space/autocas_active_space.hpp
                                              16      16   100%
src/qdk/chemistry/algorithms/microsoft/active_space/entropy_active_space.cpp
                                              45      45   100%
src/qdk/chemistry/algorithms/microsoft/active_space/entropy_active_space.hpp
                                              10      10   100%
src/qdk/chemistry/algorithms/microsoft/active_space/occupation_active_space.cpp
                                              60      54    90%   46,48,81,83,101-102
src/qdk/chemistry/algorithms/microsoft/active_space/occupation_active_space.hpp
                                               6       6   100%
src/qdk/chemistry/algorithms/microsoft/active_space/valence_active_space.cpp
                                              75      63    84%   34,36,68-69,76-77,104-105,120-121,124-125
src/qdk/chemistry/algorithms/microsoft/active_space/valence_active_space.hpp
                                               9       9   100%
src/qdk/chemistry/algorithms/microsoft/cholesky_hamiltonian.cpp
                                             457     407    89%   98,102,420,439,442-443,462,473,476-477,507-508,557-558,564-566,573-574,581-582,613,616-617,632,640,642-644,679-683,774,776,788,794,807,813,875-876,878-879,882,987-988,990-991,994
src/qdk/chemistry/algorithms/microsoft/cholesky_hamiltonian.hpp
                                              13      13   100%
src/qdk/chemistry/algorithms/microsoft/hamiltonian.cpp
                                             252     230    91%   46-47,53-55,62-63,105-106,164-165,182-186,300,302,313,325,387,495
src/qdk/chemistry/algorithms/microsoft/hamiltonian.hpp
                                              10      10   100%
src/qdk/chemistry/algorithms/microsoft/localization/iterative_localizer_base.cpp
                                               5       5   100%
src/qdk/chemistry/algorithms/microsoft/localization/iterative_localizer_base.hpp
                                               8       8   100%
src/qdk/chemistry/algorithms/microsoft/localization/mp2_natural_orbitals.cpp
                                              79      74    93%   44,81,83,104,106
src/qdk/chemistry/algorithms/microsoft/localization/mp2_natural_orbitals.hpp
                                               3       3   100%
src/qdk/chemistry/algorithms/microsoft/localization/pipek_mezey.cpp
                                             169     160    94%   26,34,41,43,47,49,246,329,332
src/qdk/chemistry/algorithms/microsoft/localization/pipek_mezey.hpp
                                               6       6   100%
src/qdk/chemistry/algorithms/microsoft/localization/vvhv.cpp
                                             646     575    89%   336,338-339,452-453,476,534,695,739,741,746,762-765,768,778-781,784,819-821,827-831,859-862,865,887,889-891,968-972,1018-1022,1040-1043,1047-1050,1052-1054,1057,1131,1194-1196,1267,1286,1289,1293,1295,1300-1301
src/qdk/chemistry/algorithms/microsoft/localization/vvhv.hpp
                                               6       6   100%
src/qdk/chemistry/algorithms/microsoft/macis_asci.cpp
                                              69      66    95%   51,167,169
src/qdk/chemistry/algorithms/microsoft/macis_asci.hpp
                                              73      73   100%
src/qdk/chemistry/algorithms/microsoft/macis_base.cpp
                                              70      56    80%   29-31,91-92,95,99-100,103-105,112-114
src/qdk/chemistry/algorithms/microsoft/macis_base.hpp
                                              99      77    77%   84,86,88,90,92,94,205-207,209,212,214,217-219,221-223,225-227,229
src/qdk/chemistry/algorithms/microsoft/macis_cas.cpp
                                              59      56    94%   48,132,134
src/qdk/chemistry/algorithms/microsoft/macis_cas.hpp
                                               5       5   100%
src/qdk/chemistry/algorithms/microsoft/macis_pmc.cpp
                                              78      76    97%   110,149
src/qdk/chemistry/algorithms/microsoft/macis_pmc.hpp
                                               5       5   100%
src/qdk/chemistry/algorithms/microsoft/mp2.cpp
                                             202     184    91%   33,78,82-83,93-94,97,101-102,149-150,153-154,164-165,168,172-173
src/qdk/chemistry/algorithms/microsoft/mp2.hpp
                                               2       2   100%
src/qdk/chemistry/algorithms/microsoft/scf.cpp
                                             286     265    92%   62-63,75-76,91-92,118-119,149-150,214,261,332,364,369,371,397-399,418,489
src/qdk/chemistry/algorithms/microsoft/scf.hpp
                                              19      19   100%
src/qdk/chemistry/algorithms/microsoft/scf/include/qdk/chemistry/scf/core/basis_set.h
                                               9       8    88%   134
src/qdk/chemistry/algorithms/microsoft/scf/include/qdk/chemistry/scf/core/enums.h
                                              16       0     0%   38-39,48-49,54-59,70-75
src/qdk/chemistry/algorithms/microsoft/scf/include/qdk/chemistry/scf/core/eri.h
                                              15      12    80%   46-47,49
src/qdk/chemistry/algorithms/microsoft/scf/include/qdk/chemistry/scf/core/exc.h
                                               3       3   100%
src/qdk/chemistry/algorithms/microsoft/scf/include/qdk/chemistry/scf/core/moeri.h
                                               3       3   100%
src/qdk/chemistry/algorithms/microsoft/scf/include/qdk/chemistry/scf/core/molecule.h
                                               1       1   100%
src/qdk/chemistry/algorithms/microsoft/scf/include/qdk/chemistry/scf/eri/eri_multiplexer.h
                                               6       3    50%   126-127,135
src/qdk/chemistry/algorithms/microsoft/scf/include/qdk/chemistry/scf/util/cache.h
                                              27      26    96%   44
src/qdk/chemistry/algorithms/microsoft/scf/include/qdk/chemistry/scf/util/class_registry.h
                                              13      13   100%
src/qdk/chemistry/algorithms/microsoft/scf/include/qdk/chemistry/scf/util/gauxc_registry.h
                                               6       5    83%   39
src/qdk/chemistry/algorithms/microsoft/scf/include/qdk/chemistry/scf/util/gauxc_util.h
                                              21      21   100%
src/qdk/chemistry/algorithms/microsoft/scf/include/qdk/chemistry/scf/util/int1e.h
                                               2       2   100%
src/qdk/chemistry/algorithms/microsoft/scf/include/qdk/chemistry/scf/util/singleton.h
                                              13      13   100%
src/qdk/chemistry/algorithms/microsoft/scf/src/core/basis_set.cpp
                                             361     279    77%   33-34,92-93,97-98,146,150-154,157-161,172,183-184,188,190-191,197-198,201-206,210,212-215,217,219,223,225-226,228-229,231,248,257,265-266,313-314,335,337,342-343,345-346,348,401,406-407,415,436,458,460-461,463-465,478,480,482-485,487,490,493-494,542,544,548-549
src/qdk/chemistry/algorithms/microsoft/scf/src/core/scf.cpp
                                               7       7   100%
src/qdk/chemistry/algorithms/microsoft/scf/src/eri/eri.cpp
                                              36      29    80%   58-60,65-66,89-90
src/qdk/chemistry/algorithms/microsoft/scf/src/eri/eri_df_base.cpp
                                              34      32    94%   29-30
src/qdk/chemistry/algorithms/microsoft/scf/src/eri/eri_df_base.h
                                               2       2   100%
src/qdk/chemistry/algorithms/microsoft/scf/src/eri/eri_multiplexer.cpp
                                              61      37    60%   16-17,26-29,40,46-49,52-55,79,81,83-85,87-88,91,93
src/qdk/chemistry/algorithms/microsoft/scf/src/eri/INCORE/incore.cpp
                                              42      29    69%   40,42,44,66,68,70-72,74-75,77-79
src/qdk/chemistry/algorithms/microsoft/scf/src/eri/INCORE/incore_impl.cpp
                                              96      88    91%   44,136,138,235,237,239,287,289
src/qdk/chemistry/algorithms/microsoft/scf/src/eri/INCORE/incore_impl_df.cpp
                                             102      60    58%   86-87,89,203,205,207-214,216-221,224,227-233,236,253,256,263-264,286,291,305-306,309,320-321,323-324,326
src/qdk/chemistry/algorithms/microsoft/scf/src/eri/LIBINT2_DIRECT/libint2_direct.cpp
                                             182     170    93%   606,608,610,908,910-913,916,918-920
src/qdk/chemistry/algorithms/microsoft/scf/src/eri/moeri.cpp
                                              36      34    94%   32-33
src/qdk/chemistry/algorithms/microsoft/scf/src/eri/schwarz.cpp
                                              33      13    39%   80-81,83-88,90-93,95-98,101-102,104,106
src/qdk/chemistry/algorithms/microsoft/scf/src/eri/SNK/snk.cpp
                                              66       0     0%   36,58-60,62-65,67,69-70,72,98,100,102-104,107-110,114-116,119-121,124-127,146,148,150,167-168,170,187,191,193-194,200-201,203,205-207,209,212,214,216-218,221,223,225-227,230,232,234-235,239-240,242-243
src/qdk/chemistry/algorithms/microsoft/scf/src/exc/exc.cpp
                                              16      14    87%   42-43
src/qdk/chemistry/algorithms/microsoft/scf/src/exc/GauXC/gauxc.cpp
                                              34      25    73%   42,46-47,50-52,54,56,67
src/qdk/chemistry/algorithms/microsoft/scf/src/exc/GauXC/gauxc_impl.cpp
                                             229     163    71%   79,119,160-161,249-258,260,262-270,352-353,360-364,366,368-377,380-381,383-384,387-389,396,398-399,405-409,411,413-417,419-420,426
src/qdk/chemistry/algorithms/microsoft/scf/src/scf/cpscf.cpp
                                             234     232    99%   232,237
src/qdk/chemistry/algorithms/microsoft/scf/src/scf/guess.cpp
                                              63      63   100%
src/qdk/chemistry/algorithms/microsoft/scf/src/scf/ks_impl.cpp
                                              84      64    76%   40,42,78,80-87,147,162-165,167-168,178-179
src/qdk/chemistry/algorithms/microsoft/scf/src/scf/scf_impl.cpp
                                             576     443    76%   74,102,117,123,169-170,186-187,330-331,340-343,468,472,552,589,608-610,687,726-727,731-732,741-746,756,760-763,765-772,785-789,791-794,796-797,804-805,807-812,814-819,821,829-832,842-843,854-856,870-875,878-881,884,887,889,988-990,993,995,999-1000,1002-1006,1008-1011,1013-1014,1018,1020,1022-1030,1033-1036,1039-1041,1043,1045,1056,1058
src/qdk/chemistry/algorithms/microsoft/scf/src/scf/scf_impl.h
                                              22      17    77%   98-100,113,184
src/qdk/chemistry/algorithms/microsoft/scf/src/scf/scf_solver.cpp
                                              82      54    65%   35,37,51,55-59,66,68,90,92-93,101-103,111-113,126-128,131-133,141-143
src/qdk/chemistry/algorithms/microsoft/scf/src/scf/soad.cpp
                                              15       0     0%   189,192-204,208
src/qdk/chemistry/algorithms/microsoft/scf/src/scf_algorithm/asahf.cpp
                                             286     275    96%   49,51,68-69,101,271,464-465,506,530-531
src/qdk/chemistry/algorithms/microsoft/scf/src/scf_algorithm/diis.cpp
                                             146     141    96%   125,316-319
src/qdk/chemistry/algorithms/microsoft/scf/src/scf_algorithm/diis_gdm.cpp
                                              36      36   100%
src/qdk/chemistry/algorithms/microsoft/scf/src/scf_algorithm/gdm.cpp
                                             716     667    93%   51,180,266,268,335,412,558,573,790,792-795,813-817,820-824,850-853,857,969-973,1103,1256,1258,1299,1302-1308,1408,1412,1501,1505,1507
src/qdk/chemistry/algorithms/microsoft/scf/src/scf_algorithm/scf_algorithm.cpp
                                             279     245    87%   43,46,54-55,62,108,116-117,124-127,213-214,218-219,224-225,244-245,268,270,293,295,304-305,379,385,392,397,404,413,421,434
src/qdk/chemistry/algorithms/microsoft/scf/src/scf_algorithm/scf_helper.h
                                              64      63    98%   93
src/qdk/chemistry/algorithms/microsoft/scf/src/util/gauxc_util.cpp
                                              85      20    23%   26-31,34-43,48-49,52-59,63-66,68,70,72-74,81-88,92-99,106-111,115-118,122-123,134-135
src/qdk/chemistry/algorithms/microsoft/scf/src/util/int1e.cpp
                                             336     226    67%   206-209,211,243,288,290-296,298-303,305-311,314-315,326,328-329,569,592,622,699,702-703,705,713,755,757-758,762-771,780,782-783,787-796,805,807-808,812-824,826-829,838,941-942,946-954,956-962,964-967,976
src/qdk/chemistry/algorithms/microsoft/scf/src/util/libint2_util.cpp
                                             181      91    50%   39,42-45,47,49-51,53-54,58-60,64-66,72,74,76-79,81-82,85-91,94-95,97-102,104-107,109-119,125-126,477,483-490,492-495,497,499,503-504,506,560,562,566-569,571-573,576,580-582,584,627
src/qdk/chemistry/algorithms/microsoft/scf/src/util/matrix_exp.cpp
                                              53      53   100%
src/qdk/chemistry/algorithms/microsoft/scf/src/util/mpi_vars.h
                                               2       2   100%
src/qdk/chemistry/algorithms/microsoft/scf/src/util/opt/gmresxx/arnoldi/arnoldi.h
                                              12      12   100%
src/qdk/chemistry/algorithms/microsoft/scf/src/util/opt/gmresxx/arnoldi/arnoldi_gmres.h
                                             202     168    83%   53-55,176,183,185-188,190-194,196,198,202,205,209,212,217-218,221,223,290,293-294,298,481-482,493,522-523,589
src/qdk/chemistry/algorithms/microsoft/scf/src/util/opt/gmresxx/linalg.h
                                              40      40   100%
src/qdk/chemistry/algorithms/microsoft/scf/src/util/timer.h
                                              29      29   100%
src/qdk/chemistry/algorithms/microsoft/stability.cpp
                                             317     294    92%   191-192,321-323,411,413,430,433-442,446,448,452,454,493
src/qdk/chemistry/algorithms/microsoft/stability.hpp
                                              13      13   100%
src/qdk/chemistry/algorithms/microsoft/utils.cpp
                                             248     171    69%   45-46,52,54,111-112,123-124,126-127,133,135,138-139,141,143-147,150-151,182,184,186,190-191,195,198-205,207-209,211,214-218,220-225,227-229,231,234-235,237,240-245,251,253-255,258-262,387-388,427,429
src/qdk/chemistry/algorithms/pmc.cpp           8       8   100%
src/qdk/chemistry/algorithms/scf.cpp           7       7   100%
src/qdk/chemistry/algorithms/stability.cpp
                                               6       6   100%
src/qdk/chemistry/data/ansatz.cpp            553     380    68%   26,36,39,46-48,50-51,53,55-56,58-60,62,69,84,99,104-105,107-108,115,120,122,148,150,207,209,280,295,297,302-303,336-340,345,347,357,359,362,364,374,376,379,381,394,396,401,403-404,410,412,417,419-420,434,436,441,443-444,449,451,456,458-459,461-462,464,468-469,471-472,474-475,477-478,480-484,486-487,489,492,495-500,502-503,506-508,510,513,515-516,549,559,569,579,601,608,612,626,630-631,641,651-652,659,668,684-687,690-691,694-696,698-699,701-703,719,727,744-747,782-783,792-793,804,812-813,824,835-836,843,852,869-872,875-876,879-881,883-884,886-888,894-895,906-907,931-934
src/qdk/chemistry/data/basis_set.cpp        1438    1250    86%   31,38,70,91-92,221,225,259-260,276-277,326-327,341,361,387,402,433,460,493,506-507,513-514,529-530,545-546,565,568-569,615,618-620,648,651-653,719,761,785,814,845,881,914,936,966,1006,1023,1032,1050,1067,1079,1090,1180-1181,1235,1249,1262,1276,1291,1298,1308,1310,1317,1331-1332,1465,1522-1523,1537-1539,1541-1542,1548-1551,1560-1561,1727,1791-1792,1805-1806,1906,1914,1926,1962-1966,1968-1970,1973-1977,2010,2024-2028,2031-2040,2042-2045,2047-2051,2053-2055,2058-2061,2065-2066,2068,2070-2074,2077-2078,2082-2086,2090-2092,2098-2101,2103-2105,2108,2110,2112,2132-2133,2142-2143,2151-2153,2160-2161,2181-2182,2184,2201-2203,2268-2269,2271-2276,2282,2390
src/qdk/chemistry/data/configuration.cpp     279     171    61%   67,167,170,172-173,176-177,179-180,183-184,186,190,194-195,204,210,236-238,266-268,271-272,274-283,285,287,289-292,294-295,297,299-300,302-304,307-308,310-311,313,315-316,318-325,327,329,331-334,336-337,341-342,344-348,351-352,354-355,358-359,361-368,370-371,373-381,421-422,432,434
src/qdk/chemistry/data/configuration_set.cpp
                                             328     209    63%   33-34,85-87,90-92,234,247,272-277,287-288,331-333,350-354,356,376-377,400-402,421,425,427,429,431-434,436-437,439,441-442,444-447,450-451,453-455,458-463,465-466,468-478,480,482,484-487,489-490,494-495,497-501,503,506-508,510-514,517-524,526-527,529-540
src/qdk/chemistry/data/filename_utils.hpp
                                              44      26    59%   30-33,35-36,51-53,72-75,77-78,93-95
src/qdk/chemistry/data/hamiltonian.cpp       554     400    72%   41,46-47,68,73-74,82,95,97-99,102-104,108-115,132,140,160-162,194-195,213-217,232-236,241,243,249,251,269,271-274,311,322,324,328,331,409-422,424,427-428,431-434,436-439,442-445,447-450,454-457,459-462,465-469,471-474,476-479,481-484,487-488,494,508,517-518,536,539-540,572,585,597,610,623,636,643,662,680,687,694,701-703,709,720-721,741-742,758-759,767-768,793-797,826,828-829,892-894
src/qdk/chemistry/data/hamiltonian_containers/canonical_four_center.cpp
                                             420     360    85%   38-39,67-68,98,110,128-129,156,163,169-171,204-205,213,276,309,349,353,361,373,385,391-392,423,432,437-438,443-444,462,470,477-484,487-494,514-516,597-598,607-608,634,656,721-722
src/qdk/chemistry/data/hamiltonian_containers/cholesky.cpp
                                             474     303    63%   44-45,72-73,86-90,103,162-165,167-168,172-174,177,179,181-182,185-187,190-191,194-195,198-207,209-210,227,234,240-242,265-270,279-280,328-331,333,335-338,340,364-367,369,371-374,377,382,384-387,389,391-393,396-400,402,404-408,417,432,440,452,468-469,487-488,490,499,504,506,510-511,516-517,519,521,530-531,534-537,543,550-557,560-567,585,588,592-594,642-643,651-652,658-662,673,677-678,687-688,714,736,753,764-766,772-773,779-780,786-787,798,801,805-806
src/qdk/chemistry/data/hamiltonian_containers/sparse.cpp
                                             396     347    87%   89,103,153-155,212,232-235,260-263,364-366,398,435-441,443,471-479,481,484,487-488,494-497,506-507,512,600,609,625
src/qdk/chemistry/data/hdf5_error_handling.hpp
                                              10       3    30%   20-21,23,25-26,28-29
src/qdk/chemistry/data/hdf5_serialization.cpp
                                             240     119    49%   13,15-22,24,26-32,34,36-44,46,48-56,65-67,69-71,73-74,77-79,82-85,95,98,106-109,111-113,115-116,119-121,124-127,138,141,143-150,153-160,238-240,249-251,253-255,258-260,277-280,282-286,288-289,308-310,312-316,318-319
src/qdk/chemistry/data/json_serialization.cpp
                                             177      86    48%   29,38,45-47,57,64-68,70-71,83,90-92,94-98,100,102-103,105,114,120-121,128-129,131,133-134,136-139,141,143-146,148-149,152-153,155,163-164,173,178-179,188-189,196,201,210,212,214,216-217,219-222,225-229,231-236,246-249,252-256,260-264
src/qdk/chemistry/data/lattice_graph.cpp     590     320    54%   39-42,53-56,102,104-105,107-110,112,114-115,117-120,169,196,199,202,245,248,251,306,309,312,359,362,365,445,456,524,612,626,639-640,642-649,651,653,655-658,660-661,663,665-666,669-673,677-680,682-685,687-688,690-691,693-694,696-698,700-702,704,706-707,709-710,713-715,718-721,724-726,728-736,740-742,745-755,757-765,767-768,770-777,779,781,783-786,788-789,793-794,796-800,802-805,807-808,810-811,813-814,816-817,820-821,823-832,834,836-839,841-848,850-851,853-854,856-857,859-864,866-867,869-877,879-881,884-886,888-890,892-895,897-898,900,902-913,915,918-921,923-937,939-940,942-943
src/qdk/chemistry/data/orbitals.cpp         1177     913    77%   106-107,128,144-145,151-152,156-157,178,180,220-221,237,251,292,307,321,363,373,377,400,403,405-406,409-413,416-417,421-424,426-427,429,431,433-434,437-440,443,447,449,453,455,457-458,461-467,470-471,474-475,477-478,480,482,484-485,488-492,495,498,500,563-567,570-571,573-574,576-577,580-581,584,586,589-590,592-593,595-596,599-601,604,606,609-610,612-613,615-616,619-620,623,625,665,668,691,759,770,776,781,808,818,862-866,904,917,929,942,962,980,989,1065-1068,1083-1084,1109-1113,1121-1122,1157,1181-1182,1191-1192,1198-1199,1205-1206,1208-1209,1212-1213,1215-1216,1229,1231-1232,1236-1237,1243,1285-1286,1314,1320,1364-1368,1396-1397,1399-1403,1406,1409,1411,1414,1416,1419,1421-1423,1425-1427,1430-1432,1434-1436,1438-1441,1460-1462,1465-1467,1470-1472,1534-1535,1564-1566,1581-1583,1617-1618,1630-1631,1789-1793,1806-1807,1810,1813-1814,1817-1819,1821,1860,1897,1912-1914,1963-1964,1999-2000,2006-2007,2013-2014,2016-2017,2020-2021,2023-2024,2031,2047-2048
src/qdk/chemistry/data/pauli_operator.cpp
                                             756     683    90%   60,63,87-88,190,202-203,224,397,407,421-423,517,555-557,559-561,577-579,581-583,606,609,721,806,818,820-821,855,860-862,877,882-884,912,938-942,944,946,951,956,996,1014-1016,1029,1036-1037,1039-1044,1062,1073-1076,1202,1222,1300,1343
src/qdk/chemistry/data/settings.cpp         1236     598    48%   40-43,68-70,81,85,95-101,126-134,136-140,158-163,166-169,171-175,177-181,183,185-188,190-195,197-201,203-213,217-226,239,243,280,292-295,297-299,302-306,308-309,311-313,315-316,318-319,362-363,366,381,412-413,416-418,420-425,427,429-434,437,457-461,464-465,468,470,476,478,480,484,486,488,492,536-537,539,541,543-544,546-549,553-554,556-558,561-562,566-568,571-573,577,579,582-587,592-596,598-608,610-613,615-619,621-625,628,632-635,639-643,647-650,653-657,659-660,662,664-667,669-671,673-674,676-678,680,682-684,686-690,693-697,699,701-703,705-707,709-713,716-720,722,724-726,729-731,733,736-738,741-742,745-752,754-755,757-758,761-762,764-770,773-779,783,786-787,790-791,794-795,798-799,802-806,808,810,812-813,815-818,820-821,823-824,826-829,831-832,834,836-839,842,844-847,851-856,860-861,863,865-868,872,875-876,889,895,898,905,908,916,920,937,941-942,959-962,971,974,982-983,999-1004,1006,1008-1009,1052-1055,1057-1059,1071-1072,1084,1086,1231,1235-1238,1240-1241,1244,1246-1248,1250-1253,1255-1259,1264,1266-1269,1272,1274-1275,1281-1282,1285-1290,1292,1296,1298,1301,1308,1312-1314,1320,1324,1327-1328,1333,1335-1337,1341,1386,1393,1411,1462-1464,1494,1500-1503,1525-1526,1561-1562,1564,1593-1595,1614-1619,1645-1647,1649,1651-1652,1655-1657,1659-1661,1667,1688-1695,1698-1701,1757,1785,1800-1802,1808-1816,1818,1821-1824,1826-1835,1837-1846,1849-1856,1858-1860,1863-1873,1875-1880,1882-1884,1886-1892,1894-1896,1898,1900,1902-1906,1908-1912,1914-1916,1918-1919,1921-1928,1930-1939,1941-1943,1945-1947,1963
src/qdk/chemistry/data/stability_result.cpp
                                             317     292    92%   25,32,42,176,213,218,271,281,299,315,344,346,350,356,379,419,421,425,451,458,503-507
src/qdk/chemistry/data/structure.cpp         761     703    92%   86,101,115-116,127,140,159,176-177,204,245-246,295,479,492,512,530,649,665,802,816,964-966,974-975,985,995-996,1018-1019,1027,1055-1057,1063,1076,1122-1123,1126,1132-1135,1138-1147,1151-1153,1156
src/qdk/chemistry/data/wavefunction.cpp     1319    1137    86%   45,65,175,178,186-188,269-270,286,307-310,312-315,318,336-341,344,386,417,454,467,488,493,509-510,531,548,551,574,577,580-589,620-626,628-630,732-741,838-842,937-939,984,998,1011,1013,1018,1020,1042-1043,1102,1104-1105,1119,1121,1124-1125,1146-1149,1151,1186,1188-1189,1214,1231,1357,1456-1459,1487,1494,1500,1507,1523,1529-1531,1537,1548,1578-1579,1594-1595,1602-1603,1623,1628-1629,1635,1646,1682,1792-1793,1803-1804,1831,1857-1858,1888-1889,1961,1963,1966-1967,1975-1977,1995-1997,1999-2000,2006-2009,2012-2022,2024-2025,2027-2030,2033-2036,2038-2040,2042-2043,2045-2046
src/qdk/chemistry/data/wavefunction_containers/cas.cpp
                                             252     199    79%   76-77,79-82,84-85,87-88,90,92-93,95-96,98-99,101,116,161-162,166,168,172,174,178-179,191-193,199,201-204,207-210,227-228,231-232,337-339,359,377-378,387,398,421-422
src/qdk/chemistry/data/wavefunction_containers/cc.cpp
                                             878     525    59%   48,52,57,59,62,66,71-72,74-77,79,87-88,122-127,153-160,169-175,203-204,206-220,222-224,226-228,231,233-234,250,258-259,261,267,277,287,299,319,324,326-328,331-334,337,339-340,343,345-349,351-352,354-355,358-359,381-383,385-387,389-391,393-395,397-399,425,432,463-466,528-529,595-596,599,601,603,606-607,609-610,612,615,617-620,622-624,627-628,630,633,637,639-640,643,687,696-697,699,705-706,708-709,716,728,737-738,747-748,754,790,800,810,820,830,841,940-950,952-956,969-979,981,983-985,1058-1069,1071-1083,1085-1091,1093-1100,1115-1126,1128-1140,1142-1148,1150-1156,1171-1181,1183-1195,1197-1200,1202,1204-1207,1223-1232,1234-1246,1248-1251,1253-1257,1322-1324,1326-1327,1330,1332-1333,1335,1337-1338,1342-1344
src/qdk/chemistry/data/wavefunction_containers/mp2.cpp
                                             626     433    69%   32,36,40-41,45-47,60-62,78,85,110,139,150-151,178-179,227-228,243,313,318,320-322,325-327,330-333,336-341,343-349,351-353,374,437-438,468-469,477,490-492,494,498-500,502,535,544-545,547,553-554,556-557,564,576,585-586,606,623-624,627-628,631,633-639,641-644,646,648,650,652-658,660-663,665,667,669,671-677,679-682,684,688-697,703-712,718-727,734-736,738-739,743,745-746,748-750,754-757,759,925,931,933,964-965,968-969,973,975,1006,1023,1057,1081,1083,1088,1092-1102
src/qdk/chemistry/data/wavefunction_containers/sci.cpp
                                             213     176    82%   78-79,81-84,86-87,89-90,92,94-95,97-98,100-101,103,117,151,153,155-156,166-167,170-171,260-262,282,300-301,310,321,344-345
src/qdk/chemistry/data/wavefunction_containers/sd.cpp
                                             399     336    84%   17,42-46,54,56-60,111,113,118,120,136-137,140,143-144,156,158,161-162,200,202,205-206,275,277,280-282,309,311,314,316,369,371,467,497-498,501,511-512,515,562,571,577,591,599-602,646-647,664-665,683-684,694-695
src/qdk/chemistry/utils/logger.cpp           120     115    95%   201-203,237,281
src/qdk/chemistry/utils/orbital_rotation.cpp
                                              93      56    60%   60-62,140-142,145,149-150,152,154-155,176,178,180,182,185-186,188,192-193,196-197,200,202-203,205,208-211,214,218-219,221,223-224
src/qdk/chemistry/utils/valence_space.cpp
                                              57      54    94%   73,102,106
------------------------------------------------------------------------------
TOTAL                                      23251   18221    78%
------------------------------------------------------------------------------
Python Coverage Details
src/qdk_chemistry/data/unitary_representation/containers/__init__.py                                  0      0   100%
src/qdk_chemistry/data/unitary_representation/containers/base.py                                     26      0   100%
src/qdk_chemistry/data/unitary_representation/containers/pauli_product_formula.py                    93      4    96%
src/qdk_chemistry/definitions.py                                                                      8      0   100%
src/qdk_chemistry/plugins/__init__.py                                                                 0      0   100%
src/qdk_chemistry/plugins/networkx/__init__.py                                                       19      0   100%
src/qdk_chemistry/plugins/networkx/term_grouper.py                                                   36      1    97%
src/qdk_chemistry/plugins/openfermion/__init__.py                                                    19      0   100%
src/qdk_chemistry/plugins/openfermion/conversion.py                                                  78     22    72%
src/qdk_chemistry/plugins/openfermion/qubit_mapper.py                                                63      1    98%
src/qdk_chemistry/plugins/pyscf/__init__.py                                                          18      0   100%
src/qdk_chemistry/plugins/pyscf/active_space_avas.py                                                 80      7    91%
src/qdk_chemistry/plugins/pyscf/conversion.py                                                       264     16    94%
src/qdk_chemistry/plugins/pyscf/coupled_cluster.py                                                  101     27    73%
src/qdk_chemistry/plugins/pyscf/localization.py                                                      72      8    89%
src/qdk_chemistry/plugins/pyscf/mcscf.py                                                            125     15    88%
src/qdk_chemistry/plugins/pyscf/scf_solver.py                                                       102      5    95%
src/qdk_chemistry/plugins/pyscf/stability.py                                                        154      2    99%
src/qdk_chemistry/plugins/qiskit/__init__.py                                                         43      0   100%
src/qdk_chemistry/plugins/qiskit/_interop/__init__.py                                                 0      0   100%
src/qdk_chemistry/plugins/qiskit/_interop/circuit.py                                                130      0   100%
src/qdk_chemistry/plugins/qiskit/_interop/noise_model.py                                             26      4    85%
src/qdk_chemistry/plugins/qiskit/_interop/qir.py                                                     87     25    71%
src/qdk_chemistry/plugins/qiskit/_interop/transpiler.py                                             151      0   100%
src/qdk_chemistry/plugins/qiskit/circuit_executor.py                                                 38      0   100%
src/qdk_chemistry/plugins/qiskit/conversion.py                                                       31      0   100%
src/qdk_chemistry/plugins/qiskit/qubit_mapper.py                                                     36      1    97%
src/qdk_chemistry/plugins/qiskit/regular_isometry.py                                                 40      0   100%
src/qdk_chemistry/plugins/qiskit/standard_phase_estimation.py                                        67      4    94%
src/qdk_chemistry/utils/__init__.py                                                                   4      0   100%
src/qdk_chemistry/utils/cubegen.py                                                                   54     54     0%
src/qdk_chemistry/utils/enum.py                                                                      23      3    87%
src/qdk_chemistry/utils/model_hamiltonians.py                                                        95     10    89%
src/qdk_chemistry/utils/pauli_commutation.py                                                         97      3    97%
src/qdk_chemistry/utils/pauli_matrix.py                                                              74      0   100%
src/qdk_chemistry/utils/phase.py                                                                     39      1    97%
src/qdk_chemistry/utils/qsharp/__init__.py                                                           17      0   100%
src/qdk_chemistry/utils/telemetry.py                                                                142     87    39%
src/qdk_chemistry/utils/telemetry_events.py                                                          59     48    19%
src/qdk_chemistry/utils/wavefunction.py                                                              57     57     0%
---------------------------------------------------------------------------------------------------------------------
TOTAL                                                                                              5775    740    87%
Coverage HTML written to dir ../coverage-reports/python_coverage_html
Coverage XML written to file ../coverage-reports/python_coverage.xml
=========================== short test summary info ============================
SKIPPED [2] tests/test_docs_examples.py:195: Skipping slow test. Set QDK_CHEMISTRY_RUN_SLOW_TESTS=1 to enable.
SKIPPED [1] tests/test_docs_examples.py:195: release_notes example requires v1.1.x (installed: 2.0.0+local)
SKIPPED [1] tests/test_sample_workflow.py:238: Skipping slow test. Set QDK_CHEMISTRY_RUN_SLOW_TESTS=1 to enable.
SKIPPED [1] tests/test_sample_workflow.py:262: Skipping slow test. Set QDK_CHEMISTRY_RUN_SLOW_TESTS=1 to enable.
=========== 1525 passed, 5 skipped, 4 warnings in 1194.61s (0:19:54) ===========
Pybind11 Coverage Details
------------------------------------------------------------------------------
                           GCC Code Coverage Report
Directory: .
------------------------------------------------------------------------------
File                                       Lines     Exec  Cover   Missing
------------------------------------------------------------------------------
src/pybind11/algorithms/active_space.cpp      38       38   100%
src/pybind11/algorithms/davidson_solver.cpp
                                              35       34    97%   28
src/pybind11/algorithms/dynamical_correlation_calculator.cpp
                                              31       31   100%
src/pybind11/algorithms/factory_bindings.hpp
                                             288      239    83%   32,32,32,32,32,32,32,32-33,33,33,33,33,33,33,33-34,34,34,34,34,34,34,34-35,35,35,35,35,35,35,35-36,36,36,36,36,36,36,36,249,249,249,249,249,249,249,249,249
src/pybind11/algorithms/hamiltonian.cpp       36       36   100%
src/pybind11/algorithms/localizer.cpp         38       38   100%
src/pybind11/algorithms/mc.cpp                37       37   100%
src/pybind11/algorithms/mcscf.cpp             34       34   100%
src/pybind11/algorithms/pmc.cpp               36       35    97%   178
src/pybind11/algorithms/scf.cpp               35       35   100%
src/pybind11/algorithms/stability.cpp         34       34   100%
src/pybind11/algorithms/syev_solver.cpp       19       18    94%   43
src/pybind11/constants.cpp                    89       89   100%
src/pybind11/data/ansatz.cpp                  69       69   100%
src/pybind11/data/basis_set.cpp              204      204   100%
src/pybind11/data/configuration.cpp           30       29    96%   200
src/pybind11/data/configuration_set.cpp       84       84   100%
src/pybind11/data/data_class.cpp             109       27    24%   19-20,23-24,27,29,32,34-37,39-44,46,48-49,52,54,57-59,64,67,71-72,75,78-79,81-82,90,92,94-96,98,101,104-105,107,110,113-115,117-120,124,126,128-129,131,133,135-137,139,141,143-145,150-151,153,156-157,159,162-163,165,168-169,171,174,176,178,249
src/pybind11/data/element_data.cpp           123      123   100%
src/pybind11/data/hamiltonian.cpp            247      238    96%   62,65,67,458,477,650,670,855,876
src/pybind11/data/lattice_graph.cpp          122       96    78%   20,23,25,27,29-30,51,53-54,66-69,71-72,249,476-478,482,501,512,615,617,619,621
src/pybind11/data/orbitals.cpp               138      137    99%   940
src/pybind11/data/path_utils.hpp              19       11    57%   37,39,42-47
src/pybind11/data/pauli_operator.cpp         274      254    92%   146,257,322,398,403,409,415,427,467,473,505,511,517,529,604,636,641,655,659,667
src/pybind11/data/property_binding_helpers.hpp
                                             312      312   100%
src/pybind11/data/serialization.cpp            5        5   100%
src/pybind11/data/settings.cpp               834      570    68%   40-41,57-58,110-111,117-118,123-124,129,131,136,138,164-168,177-179,182-185,190-194,198-200,210-213,217-221,230-233,237-242,246-249,259-262,266-270,273-277,281-291,293-311,313-327,333,335,337-338,342,345-347,400,450,452-453,536,544-546,548,552,571-577,633-636,643-649,651,654,656,658-661,668,670,713,784,1444,1452,1458,1461,1580,1614,1692,1755,1780,1805,1831,1895,1983-1984,1986-1990,2024-2028,2030-2035,2086,2140,2166-2167,2169,2172-2175,2201,2243-2244,2246-2247,2278-2279,2281,2284-2287,2314-2316,2337-2339,2341-2342,2361-2367,2387-2389,2391-2392,2414-2418,2420-2425,2456-2457,2475-2481,2503-2504,2522-2528,2658
src/pybind11/data/stability_result.cpp       112      112   100%
src/pybind11/data/structure.cpp              199      184    92%   69,72,75-78,82-84,87,90-91,969,977,999
src/pybind11/data/wavefunction.cpp           365      347    95%   39,98,100,264-265,268,272,278,473-477,479,1016,1018,1064,1067
src/pybind11/module.cpp                       46       46   100%
src/pybind11/qdk_scf_config.cpp               12       12   100%
src/pybind11/utils/logger.cpp                191      177    92%   27,54,68-69,92,97-99,105-106,262-263,476,480
src/pybind11/utils/model_hamiltonians.cpp
                                              62       62   100%
src/pybind11/utils/orbital_rotation.cpp        7        7   100%
src/pybind11/utils/valence_space.cpp           6        6   100%
------------------------------------------------------------------------------
TOTAL                                       4320     3810    88%
------------------------------------------------------------------------------

Copilot AI review requested due to automatic review settings May 19, 2026 17:39
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 12 out of 12 changed files in this pull request and generated 3 comments.

Comment thread cpp/src/qdk/chemistry/algorithms/microsoft/scf/src/scf/scf_impl.cpp Outdated
Comment thread cpp/src/qdk/chemistry/algorithms/microsoft/scf/src/scf/scf_impl.cpp
Copilot AI review requested due to automatic review settings May 21, 2026 18:55
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 12 out of 12 changed files in this pull request and generated 1 comment.

Comments suppressed due to low confidence (1)

cpp/src/qdk/chemistry/algorithms/microsoft/scf/src/scf_algorithm/scf_helper.h:33

  • The compute_atba_gemm doc says the input pointers may reference sub-block starts, but the implementation hard-codes leading dimensions (e.g., lda = n for RowMajor). That only works when the referenced blocks are stored contiguously with those exact strides; for typical Eigen sub-blocks from a larger matrix, the stride is the parent’s column count and the result would be incorrect. Please either (a) tighten the doc to state the required memory layout/stride constraints, or (b) extend the helper to accept explicit leading dimensions (lda/ldb/ldc) so true sub-block pointers are supported.

Comment thread cpp/src/qdk/chemistry/algorithms/microsoft/scf/src/scf/scf_impl.h
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants