quant-met 0.0.23__tar.gz → 0.0.24__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (286) hide show
  1. {quant_met-0.0.23 → quant_met-0.0.24}/CHANGELOG.rst +19 -0
  2. {quant_met-0.0.23 → quant_met-0.0.24}/PKG-INFO +1 -1
  3. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/example_input_dmft.yaml +4 -4
  4. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/example_input_scf.yaml +3 -3
  5. quant_met-0.0.24/docs/source/examples/EG-X bands.pdf +0 -0
  6. quant_met-0.0.24/docs/source/examples/EG-X bands.pdf.license +3 -0
  7. quant_met-0.0.24/docs/source/examples/band_structures.ipynb +165 -0
  8. {quant_met-0.0.23 → quant_met-0.0.24}/pyproject.toml +4 -1
  9. {quant_met-0.0.23 → quant_met-0.0.24}/src/quant_met/cli/_utils.py +8 -4
  10. {quant_met-0.0.23 → quant_met-0.0.24}/src/quant_met/cli/dmft.py +24 -19
  11. {quant_met-0.0.23 → quant_met-0.0.24}/src/quant_met/dmft/dmft_loop.py +25 -36
  12. quant_met-0.0.24/src/quant_met/dmft/utils.py +207 -0
  13. {quant_met-0.0.23 → quant_met-0.0.24}/src/quant_met/mean_field/hamiltonians/base_hamiltonian.py +12 -10
  14. {quant_met-0.0.23 → quant_met-0.0.24}/src/quant_met/mean_field/hamiltonians/dressed_graphene.py +7 -3
  15. quant_met-0.0.24/tests/test_quantum_metric/test_quantum_metric_dressed_graphene.npz +0 -0
  16. quant_met-0.0.24/tests/test_superfluid_weight/test_superfluid_weight_dressed_graphene.npz +0 -0
  17. {quant_met-0.0.23 → quant_met-0.0.24}/tests/test_superfluid_weight.py +2 -2
  18. quant_met-0.0.23/docs/source/examples/band_structures.ipynb +0 -3998
  19. quant_met-0.0.23/src/quant_met/dmft/utils.py +0 -98
  20. quant_met-0.0.23/tests/test_quantum_metric/test_quantum_metric_bdg_dressed_graphene.npz +0 -0
  21. quant_met-0.0.23/tests/test_quantum_metric/test_quantum_metric_bdg_graphene.npz +0 -0
  22. quant_met-0.0.23/tests/test_quantum_metric/test_quantum_metric_dressed_graphene.npz +0 -0
  23. quant_met-0.0.23/tests/test_superfluid_weight/test_superfluid_weight_dressed_graphene.npz +0 -0
  24. {quant_met-0.0.23 → quant_met-0.0.24}/.coveragerc +0 -0
  25. {quant_met-0.0.23 → quant_met-0.0.24}/.github/dependabot.yml +0 -0
  26. {quant_met-0.0.23 → quant_met-0.0.24}/.github/workflows/check_version.yml +0 -0
  27. {quant_met-0.0.23 → quant_met-0.0.24}/.github/workflows/integration_tests.yml +0 -0
  28. {quant_met-0.0.23 → quant_met-0.0.24}/.github/workflows/publish.yml +0 -0
  29. {quant_met-0.0.23 → quant_met-0.0.24}/.github/workflows/unit_tests.yml +0 -0
  30. {quant_met-0.0.23 → quant_met-0.0.24}/.gitignore +0 -0
  31. {quant_met-0.0.23 → quant_met-0.0.24}/.pre-commit-config.yaml +0 -0
  32. {quant_met-0.0.23 → quant_met-0.0.24}/.readthedocs.yaml +0 -0
  33. {quant_met-0.0.23 → quant_met-0.0.24}/LICENSE.txt +0 -0
  34. {quant_met-0.0.23 → quant_met-0.0.24}/LICENSES/MIT.txt +0 -0
  35. {quant_met-0.0.23 → quant_met-0.0.24}/Makefile +0 -0
  36. {quant_met-0.0.23 → quant_met-0.0.24}/README.md +0 -0
  37. {quant_met-0.0.23 → quant_met-0.0.24}/changelog.d/scriv.ini +0 -0
  38. {quant_met-0.0.23 → quant_met-0.0.24}/check_version.sh +0 -0
  39. {quant_met-0.0.23 → quant_met-0.0.24}/docs/Makefile +0 -0
  40. {quant_met-0.0.23 → quant_met-0.0.24}/docs/make.bat +0 -0
  41. {quant_met-0.0.23 → quant_met-0.0.24}/docs/requirements.txt +0 -0
  42. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/_static/custom.css +0 -0
  43. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/_templates/autosummary/attribute.rst +0 -0
  44. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/_templates/autosummary/class.rst +0 -0
  45. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/_templates/autosummary/function.rst +0 -0
  46. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/_templates/autosummary/method.rst +0 -0
  47. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/_templates/autosummary/module.rst +0 -0
  48. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/_templates/autosummary/property.rst +0 -0
  49. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/_templates/autosummary/pydantic.rst +0 -0
  50. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/changelog.rst +0 -0
  51. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/conf.py +0 -0
  52. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/development.rst +0 -0
  53. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/example_input_T_C.yaml +0 -0
  54. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/example_input_T_C_one_band.yaml +0 -0
  55. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/examples/band_structures.ipynb.license +0 -0
  56. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/extra/versions.json +0 -0
  57. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/extra/versions.json.license +0 -0
  58. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/index.rst +0 -0
  59. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/cli.rst +0 -0
  60. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.BaseHamiltonian.bdg_hamiltonian.rst +0 -0
  61. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.BaseHamiltonian.bdg_hamiltonian_derivative.rst +0 -0
  62. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.BaseHamiltonian.calculate_bandstructure.rst +0 -0
  63. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.BaseHamiltonian.calculate_density_of_states.rst +0 -0
  64. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.BaseHamiltonian.calculate_spectral_gap.rst +0 -0
  65. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.BaseHamiltonian.diagonalize_bdg.rst +0 -0
  66. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.BaseHamiltonian.diagonalize_nonint.rst +0 -0
  67. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.BaseHamiltonian.from_file.rst +0 -0
  68. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.BaseHamiltonian.gap_equation.rst +0 -0
  69. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.BaseHamiltonian.get_parameters_model.rst +0 -0
  70. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.BaseHamiltonian.hamiltonian.rst +0 -0
  71. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.BaseHamiltonian.hamiltonian_derivative.rst +0 -0
  72. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.BaseHamiltonian.rst +0 -0
  73. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.BaseHamiltonian.save.rst +0 -0
  74. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.BaseHamiltonian.setup_lattice.rst +0 -0
  75. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.DressedGraphene.bdg_hamiltonian.rst +0 -0
  76. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.DressedGraphene.bdg_hamiltonian_derivative.rst +0 -0
  77. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.DressedGraphene.calculate_bandstructure.rst +0 -0
  78. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.DressedGraphene.calculate_density_of_states.rst +0 -0
  79. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.DressedGraphene.calculate_spectral_gap.rst +0 -0
  80. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.DressedGraphene.diagonalize_bdg.rst +0 -0
  81. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.DressedGraphene.diagonalize_nonint.rst +0 -0
  82. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.DressedGraphene.from_file.rst +0 -0
  83. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.DressedGraphene.gap_equation.rst +0 -0
  84. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.DressedGraphene.get_parameters_model.rst +0 -0
  85. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.DressedGraphene.hamiltonian.rst +0 -0
  86. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.DressedGraphene.hamiltonian_derivative.rst +0 -0
  87. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.DressedGraphene.rst +0 -0
  88. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.DressedGraphene.save.rst +0 -0
  89. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.DressedGraphene.setup_lattice.rst +0 -0
  90. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.Graphene.bdg_hamiltonian.rst +0 -0
  91. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.Graphene.bdg_hamiltonian_derivative.rst +0 -0
  92. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.Graphene.calculate_bandstructure.rst +0 -0
  93. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.Graphene.calculate_density_of_states.rst +0 -0
  94. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.Graphene.calculate_spectral_gap.rst +0 -0
  95. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.Graphene.diagonalize_bdg.rst +0 -0
  96. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.Graphene.diagonalize_nonint.rst +0 -0
  97. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.Graphene.from_file.rst +0 -0
  98. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.Graphene.gap_equation.rst +0 -0
  99. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.Graphene.get_parameters_model.rst +0 -0
  100. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.Graphene.hamiltonian.rst +0 -0
  101. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.Graphene.hamiltonian_derivative.rst +0 -0
  102. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.Graphene.rst +0 -0
  103. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.Graphene.save.rst +0 -0
  104. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.Graphene.setup_lattice.rst +0 -0
  105. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.OneBand.bdg_hamiltonian.rst +0 -0
  106. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.OneBand.bdg_hamiltonian_derivative.rst +0 -0
  107. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.OneBand.calculate_bandstructure.rst +0 -0
  108. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.OneBand.calculate_density_of_states.rst +0 -0
  109. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.OneBand.calculate_spectral_gap.rst +0 -0
  110. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.OneBand.diagonalize_bdg.rst +0 -0
  111. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.OneBand.diagonalize_nonint.rst +0 -0
  112. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.OneBand.from_file.rst +0 -0
  113. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.OneBand.gap_equation.rst +0 -0
  114. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.OneBand.get_parameters_model.rst +0 -0
  115. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.OneBand.hamiltonian.rst +0 -0
  116. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.OneBand.hamiltonian_derivative.rst +0 -0
  117. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.OneBand.rst +0 -0
  118. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.OneBand.save.rst +0 -0
  119. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.OneBand.setup_lattice.rst +0 -0
  120. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.ThreeBand.bdg_hamiltonian.rst +0 -0
  121. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.ThreeBand.bdg_hamiltonian_derivative.rst +0 -0
  122. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.ThreeBand.calculate_bandstructure.rst +0 -0
  123. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.ThreeBand.calculate_density_of_states.rst +0 -0
  124. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.ThreeBand.calculate_spectral_gap.rst +0 -0
  125. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.ThreeBand.diagonalize_bdg.rst +0 -0
  126. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.ThreeBand.diagonalize_nonint.rst +0 -0
  127. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.ThreeBand.from_file.rst +0 -0
  128. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.ThreeBand.gap_equation.rst +0 -0
  129. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.ThreeBand.get_parameters_model.rst +0 -0
  130. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.ThreeBand.hamiltonian.rst +0 -0
  131. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.ThreeBand.hamiltonian_derivative.rst +0 -0
  132. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.ThreeBand.rst +0 -0
  133. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.ThreeBand.save.rst +0 -0
  134. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.ThreeBand.setup_lattice.rst +0 -0
  135. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.TwoBand.bdg_hamiltonian.rst +0 -0
  136. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.TwoBand.bdg_hamiltonian_derivative.rst +0 -0
  137. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.TwoBand.calculate_bandstructure.rst +0 -0
  138. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.TwoBand.calculate_density_of_states.rst +0 -0
  139. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.TwoBand.calculate_spectral_gap.rst +0 -0
  140. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.TwoBand.diagonalize_bdg.rst +0 -0
  141. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.TwoBand.diagonalize_nonint.rst +0 -0
  142. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.TwoBand.from_file.rst +0 -0
  143. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.TwoBand.gap_equation.rst +0 -0
  144. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.TwoBand.get_parameters_model.rst +0 -0
  145. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.TwoBand.hamiltonian.rst +0 -0
  146. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.TwoBand.hamiltonian_derivative.rst +0 -0
  147. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.TwoBand.rst +0 -0
  148. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.TwoBand.save.rst +0 -0
  149. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/hamiltonians/quant_met.mean_field.hamiltonians.TwoBand.setup_lattice.rst +0 -0
  150. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/parameters/hamiltonians/quant_met.parameters.hamiltonians.DressedGrapheneParameters.rst +0 -0
  151. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/parameters/hamiltonians/quant_met.parameters.hamiltonians.GrapheneParameters.rst +0 -0
  152. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/parameters/hamiltonians/quant_met.parameters.hamiltonians.HamiltonianParameters.rst +0 -0
  153. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/parameters/hamiltonians/quant_met.parameters.hamiltonians.OneBandParameters.rst +0 -0
  154. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/parameters/hamiltonians/quant_met.parameters.hamiltonians.ThreeBandParameters.rst +0 -0
  155. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/parameters/hamiltonians/quant_met.parameters.hamiltonians.TwoBandParameters.rst +0 -0
  156. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/parameters/hamiltonians/quant_met.parameters.hamiltonians.rst +0 -0
  157. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/parameters/quant_met.parameters.Control.rst +0 -0
  158. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/parameters/quant_met.parameters.KPoints.rst +0 -0
  159. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/parameters/quant_met.parameters.Parameters.rst +0 -0
  160. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/quant_met.cli.cli.rst +0 -0
  161. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/quant_met.geometry.BaseLattice.bz_corners.rst +0 -0
  162. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/quant_met.geometry.BaseLattice.generate_bz_grid.rst +0 -0
  163. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/quant_met.geometry.BaseLattice.generate_high_symmetry_path.rst +0 -0
  164. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/quant_met.geometry.BaseLattice.high_symmetry_points.rst +0 -0
  165. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/quant_met.geometry.BaseLattice.lattice_constant.rst +0 -0
  166. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/quant_met.geometry.BaseLattice.reciprocal_basis.rst +0 -0
  167. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/quant_met.geometry.BaseLattice.rst +0 -0
  168. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/quant_met.geometry.GrapheneLattice.bz_corners.rst +0 -0
  169. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/quant_met.geometry.GrapheneLattice.generate_bz_grid.rst +0 -0
  170. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/quant_met.geometry.GrapheneLattice.generate_high_symmetry_path.rst +0 -0
  171. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/quant_met.geometry.GrapheneLattice.high_symmetry_points.rst +0 -0
  172. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/quant_met.geometry.GrapheneLattice.lattice_constant.rst +0 -0
  173. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/quant_met.geometry.GrapheneLattice.reciprocal_basis.rst +0 -0
  174. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/quant_met.geometry.GrapheneLattice.rst +0 -0
  175. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/quant_met.geometry.SquareLattice.bz_corners.rst +0 -0
  176. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/quant_met.geometry.SquareLattice.generate_bz_grid.rst +0 -0
  177. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/quant_met.geometry.SquareLattice.generate_high_symmetry_path.rst +0 -0
  178. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/quant_met.geometry.SquareLattice.high_symmetry_points.rst +0 -0
  179. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/quant_met.geometry.SquareLattice.lattice_constant.rst +0 -0
  180. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/quant_met.geometry.SquareLattice.reciprocal_basis.rst +0 -0
  181. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/quant_met.geometry.SquareLattice.rst +0 -0
  182. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/quant_met.geometry.generate_bz_path.rst +0 -0
  183. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/quant_met.mean_field.hamiltonians.rst +0 -0
  184. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/quant_met.mean_field.quantum_metric.rst +0 -0
  185. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/quant_met.mean_field.search_crit_temp.rst +0 -0
  186. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/quant_met.mean_field.self_consistency_loop.rst +0 -0
  187. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/quant_met.mean_field.superfluid_weight.rst +0 -0
  188. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/quant_met.plotting.format_plot.rst +0 -0
  189. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/quant_met.plotting.plot_bandstructure.rst +0 -0
  190. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/quant_met.plotting.plot_superfluid_weight.rst +0 -0
  191. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/quant_met.plotting.scatter_into_bz.rst +0 -0
  192. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/generated/quant_met.utils.generate_uniform_grid.rst +0 -0
  193. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/geometry.rst +0 -0
  194. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/index.rst +0 -0
  195. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/mean_field.rst +0 -0
  196. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/parameters.rst +0 -0
  197. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/plotting.rst +0 -0
  198. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/reference/utils.rst +0 -0
  199. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/user_guide/first-scf.rst +0 -0
  200. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/user_guide/search_T_C.rst +0 -0
  201. {quant_met-0.0.23 → quant_met-0.0.24}/docs/source/user_guide.rst +0 -0
  202. {quant_met-0.0.23 → quant_met-0.0.24}/environment.yml +0 -0
  203. {quant_met-0.0.23 → quant_met-0.0.24}/src/quant_met/__init__.py +0 -0
  204. {quant_met-0.0.23 → quant_met-0.0.24}/src/quant_met/cli/__init__.py +0 -0
  205. {quant_met-0.0.23 → quant_met-0.0.24}/src/quant_met/cli/crit_temp.py +0 -0
  206. {quant_met-0.0.23 → quant_met-0.0.24}/src/quant_met/cli/main.py +0 -0
  207. {quant_met-0.0.23 → quant_met-0.0.24}/src/quant_met/cli/scf.py +0 -0
  208. {quant_met-0.0.23 → quant_met-0.0.24}/src/quant_met/dmft/__init__.py +0 -0
  209. {quant_met-0.0.23 → quant_met-0.0.24}/src/quant_met/geometry/__init__.py +0 -0
  210. {quant_met-0.0.23 → quant_met-0.0.24}/src/quant_met/geometry/base_lattice.py +0 -0
  211. {quant_met-0.0.23 → quant_met-0.0.24}/src/quant_met/geometry/bz_path.py +0 -0
  212. {quant_met-0.0.23 → quant_met-0.0.24}/src/quant_met/geometry/graphene.py +0 -0
  213. {quant_met-0.0.23 → quant_met-0.0.24}/src/quant_met/geometry/square.py +0 -0
  214. {quant_met-0.0.23 → quant_met-0.0.24}/src/quant_met/mean_field/__init__.py +0 -0
  215. {quant_met-0.0.23 → quant_met-0.0.24}/src/quant_met/mean_field/_utils.py +0 -0
  216. {quant_met-0.0.23 → quant_met-0.0.24}/src/quant_met/mean_field/hamiltonians/__init__.py +0 -0
  217. {quant_met-0.0.23 → quant_met-0.0.24}/src/quant_met/mean_field/hamiltonians/graphene.py +0 -0
  218. {quant_met-0.0.23 → quant_met-0.0.24}/src/quant_met/mean_field/hamiltonians/one_band_tight_binding.py +0 -0
  219. {quant_met-0.0.23 → quant_met-0.0.24}/src/quant_met/mean_field/hamiltonians/three_band_tight_binding.py +0 -0
  220. {quant_met-0.0.23 → quant_met-0.0.24}/src/quant_met/mean_field/hamiltonians/two_band_tight_binding.py +0 -0
  221. {quant_met-0.0.23 → quant_met-0.0.24}/src/quant_met/mean_field/search_crit_temp.py +0 -0
  222. {quant_met-0.0.23 → quant_met-0.0.24}/src/quant_met/mean_field/self_consistency.py +0 -0
  223. {quant_met-0.0.23 → quant_met-0.0.24}/src/quant_met/parameters/__init__.py +0 -0
  224. {quant_met-0.0.23 → quant_met-0.0.24}/src/quant_met/parameters/hamiltonians.py +0 -0
  225. {quant_met-0.0.23 → quant_met-0.0.24}/src/quant_met/parameters/main.py +0 -0
  226. {quant_met-0.0.23 → quant_met-0.0.24}/src/quant_met/plotting/__init__.py +0 -0
  227. {quant_met-0.0.23 → quant_met-0.0.24}/src/quant_met/plotting/plotting.py +0 -0
  228. {quant_met-0.0.23 → quant_met-0.0.24}/src/quant_met/utils.py +0 -0
  229. {quant_met-0.0.23 → quant_met-0.0.24}/tests/__init__.py +0 -0
  230. {quant_met-0.0.23 → quant_met-0.0.24}/tests/baseline_images/test_plotting/nonint_bandstructure_dressed_graphene.png +0 -0
  231. {quant_met-0.0.23 → quant_met-0.0.24}/tests/baseline_images/test_plotting/nonint_bandstructure_dressed_graphene.png.license +0 -0
  232. {quant_met-0.0.23 → quant_met-0.0.24}/tests/baseline_images/test_plotting/nonint_bandstructure_graphene.png +0 -0
  233. {quant_met-0.0.23 → quant_met-0.0.24}/tests/baseline_images/test_plotting/nonint_bandstructure_graphene.png.license +0 -0
  234. {quant_met-0.0.23 → quant_met-0.0.24}/tests/baseline_images/test_plotting/nonint_bandstructure_one_band.png +0 -0
  235. {quant_met-0.0.23 → quant_met-0.0.24}/tests/baseline_images/test_plotting/nonint_bandstructure_one_band.png.license +0 -0
  236. {quant_met-0.0.23 → quant_met-0.0.24}/tests/baseline_images/test_plotting/scatter_into_bz.png +0 -0
  237. {quant_met-0.0.23 → quant_met-0.0.24}/tests/baseline_images/test_plotting/scatter_into_bz.png.license +0 -0
  238. {quant_met-0.0.23 → quant_met-0.0.24}/tests/baseline_images/test_plotting/scatter_into_bz_with_data.png +0 -0
  239. {quant_met-0.0.23 → quant_met-0.0.24}/tests/baseline_images/test_plotting/scatter_into_bz_with_data.png.license +0 -0
  240. {quant_met-0.0.23 → quant_met-0.0.24}/tests/baseline_images/test_plotting/sf_weight.png +0 -0
  241. {quant_met-0.0.23 → quant_met-0.0.24}/tests/baseline_images/test_plotting/sf_weight.png.license +0 -0
  242. {quant_met-0.0.23 → quant_met-0.0.24}/tests/test_benchmarks.py +0 -0
  243. {quant_met-0.0.23 → quant_met-0.0.24}/tests/test_cli.py +0 -0
  244. {quant_met-0.0.23 → quant_met-0.0.24}/tests/test_geometry.py +0 -0
  245. {quant_met-0.0.23 → quant_met-0.0.24}/tests/test_hamiltonians/__init__.py +0 -0
  246. {quant_met-0.0.23 → quant_met-0.0.24}/tests/test_hamiltonians/test_fixed_values.py +0 -0
  247. {quant_met-0.0.23 → quant_met-0.0.24}/tests/test_hamiltonians/test_invalid_values.py +0 -0
  248. {quant_met-0.0.23 → quant_met-0.0.24}/tests/test_hamiltonians/test_random_samples.py +0 -0
  249. {quant_met-0.0.23 → quant_met-0.0.24}/tests/test_hamiltonians/test_regressions/test_bdg_hamiltonian_derivative_graphene.npz +0 -0
  250. {quant_met-0.0.23 → quant_met-0.0.24}/tests/test_hamiltonians/test_regressions/test_bdg_hamiltonian_derivative_graphene.npz.license +0 -0
  251. {quant_met-0.0.23 → quant_met-0.0.24}/tests/test_hamiltonians/test_regressions/test_current.npz +0 -0
  252. {quant_met-0.0.23 → quant_met-0.0.24}/tests/test_hamiltonians/test_regressions/test_current.npz.license +0 -0
  253. {quant_met-0.0.23 → quant_met-0.0.24}/tests/test_hamiltonians/test_regressions/test_density_of_states.npz +0 -0
  254. {quant_met-0.0.23 → quant_met-0.0.24}/tests/test_hamiltonians/test_regressions/test_density_of_states.npz.license +0 -0
  255. {quant_met-0.0.23 → quant_met-0.0.24}/tests/test_hamiltonians/test_regressions/test_free_energy.npz +0 -0
  256. {quant_met-0.0.23 → quant_met-0.0.24}/tests/test_hamiltonians/test_regressions/test_free_energy.npz.license +0 -0
  257. {quant_met-0.0.23 → quant_met-0.0.24}/tests/test_hamiltonians/test_regressions/test_hamiltonian_derivative_graphene.npz +0 -0
  258. {quant_met-0.0.23 → quant_met-0.0.24}/tests/test_hamiltonians/test_regressions/test_hamiltonian_derivative_graphene.npz.license +0 -0
  259. {quant_met-0.0.23 → quant_met-0.0.24}/tests/test_hamiltonians/test_regressions/test_hamiltonian_derivative_one_band.npz +0 -0
  260. {quant_met-0.0.23 → quant_met-0.0.24}/tests/test_hamiltonians/test_regressions/test_hamiltonian_derivative_one_band.npz.license +0 -0
  261. {quant_met-0.0.23 → quant_met-0.0.24}/tests/test_hamiltonians/test_regressions/test_hamiltonian_three_band.npz +0 -0
  262. {quant_met-0.0.23 → quant_met-0.0.24}/tests/test_hamiltonians/test_regressions/test_hamiltonian_three_band.npz.license +0 -0
  263. {quant_met-0.0.23 → quant_met-0.0.24}/tests/test_hamiltonians/test_regressions/test_hamiltonian_two_band.npz +0 -0
  264. {quant_met-0.0.23 → quant_met-0.0.24}/tests/test_hamiltonians/test_regressions/test_hamiltonian_two_band.npz.license +0 -0
  265. {quant_met-0.0.23 → quant_met-0.0.24}/tests/test_hamiltonians/test_regressions/test_spectral_gap.npz +0 -0
  266. {quant_met-0.0.23 → quant_met-0.0.24}/tests/test_hamiltonians/test_regressions/test_spectral_gap.npz.license +0 -0
  267. {quant_met-0.0.23 → quant_met-0.0.24}/tests/test_hamiltonians/test_regressions.py +0 -0
  268. {quant_met-0.0.23 → quant_met-0.0.24}/tests/test_hamiltonians/test_save.py +0 -0
  269. {quant_met-0.0.23 → quant_met-0.0.24}/tests/test_integration/__init__.py +0 -0
  270. {quant_met-0.0.23 → quant_met-0.0.24}/tests/test_integration/test_crit_temp.py +0 -0
  271. {quant_met-0.0.23 → quant_met-0.0.24}/tests/test_integration/test_scf.py +0 -0
  272. {quant_met-0.0.23 → quant_met-0.0.24}/tests/test_plotting.py +0 -0
  273. {quant_met-0.0.23 → quant_met-0.0.24}/tests/test_quantum_metric/test_quantum_metric_bdg_dressed_graphene.npz.license +0 -0
  274. {quant_met-0.0.23 → quant_met-0.0.24}/tests/test_quantum_metric/test_quantum_metric_bdg_graphene.npz.license +0 -0
  275. {quant_met-0.0.23 → quant_met-0.0.24}/tests/test_quantum_metric/test_quantum_metric_dressed_graphene.npz.license +0 -0
  276. {quant_met-0.0.23 → quant_met-0.0.24}/tests/test_quantum_metric/test_quantum_metric_graphene.npz +0 -0
  277. {quant_met-0.0.23 → quant_met-0.0.24}/tests/test_quantum_metric/test_quantum_metric_graphene.npz.license +0 -0
  278. {quant_met-0.0.23 → quant_met-0.0.24}/tests/test_quantum_metric.py +0 -0
  279. {quant_met-0.0.23 → quant_met-0.0.24}/tests/test_self_consistency.py +0 -0
  280. {quant_met-0.0.23 → quant_met-0.0.24}/tests/test_superfluid_weight/test_superfluid_weight_dressed_graphene.npz.license +0 -0
  281. {quant_met-0.0.23 → quant_met-0.0.24}/tests/test_superfluid_weight/test_superfluid_weight_graphene.npz +0 -0
  282. {quant_met-0.0.23 → quant_met-0.0.24}/tests/test_superfluid_weight/test_superfluid_weight_graphene.npz.license +0 -0
  283. {quant_met-0.0.23 → quant_met-0.0.24}/tests/test_utils.py +0 -0
  284. {quant_met-0.0.23 → quant_met-0.0.24}/tox.ini +0 -0
  285. {quant_met-0.0.23 → quant_met-0.0.24}/uv.lock +0 -0
  286. {quant_met-0.0.23 → quant_met-0.0.24}/uv.lock.license +0 -0
@@ -2,6 +2,25 @@
2
2
  ..
3
3
  .. SPDX-License-Identifier: MIT
4
4
 
5
+ .. _changelog-0.0.24:
6
+
7
+ 0.0.24 — 2025-03-13
8
+ -------------------
9
+
10
+ Changed
11
+ ^^^^^^^
12
+
13
+ - Add orbital positions into the Fourier transform
14
+
15
+ - Implemented a more efficient version of the gap equation using direkt matrix multiplication
16
+
17
+ Fixed
18
+ ^^^^^
19
+
20
+ - Fix orbital positions in TBLattice for decorated Graphene
21
+
22
+ - Fix definition of TBLattice for dressed Graphene
23
+
5
24
  .. _changelog-0.0.23:
6
25
 
7
26
  0.0.23 — 2025-03-10
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: quant-met
3
- Version: 0.0.23
3
+ Version: 0.0.24
4
4
  Summary: Calculate superconductivity in flat-band systems.
5
5
  Author-email: Tjark Sievers <tsievers@physnet.uni-hamburg.de>
6
6
  License-File: LICENSE.txt
@@ -8,8 +8,8 @@ model:
8
8
  hopping_x: 0
9
9
  hopping_x_gr_a: 1
10
10
  chemical_potential: 0.0
11
- hubbard_int_orbital_basis: [1.0, 1.0, 1.0]
12
- lattice_constant: 3
11
+ hubbard_int_orbital_basis: [-1.0, -1.0, -1.0]
12
+ lattice_constant: 1.73205080757
13
13
  q: [0.0, 0.0]
14
14
  beta: 100
15
15
 
@@ -17,12 +17,12 @@ control:
17
17
  calculation: dmft-scf
18
18
  prefix: test
19
19
  outdir: test/
20
- conv_treshold: 1e-2
20
+ conv_treshold: 1e-4
21
21
  max_iter: 100
22
22
  n_spin: 1
23
23
  n_success: 1
24
24
  wmixing: 0.5
25
- n_bath: 3
25
+ n_bath: 2
26
26
  n_iw: 1024
27
27
  n_w: 4000
28
28
  broadening: 0.005
@@ -5,10 +5,10 @@
5
5
  model:
6
6
  name: DressedGraphene
7
7
  hopping_gr: 1
8
- hopping_x: 0.01
8
+ hopping_x: 0
9
9
  hopping_x_gr_a: 1
10
10
  chemical_potential: 0.0
11
- hubbard_int_orbital_basis: [0.001, 0.001, 0.001]
11
+ hubbard_int_orbital_basis: [0.1 , 0.1, 0.1]
12
12
  lattice_constant: 3
13
13
  q: [0.0, 0.0]
14
14
  beta: 100
@@ -17,7 +17,7 @@ control:
17
17
  calculation: scf
18
18
  prefix: test
19
19
  outdir: test/
20
- conv_treshold: 1e-6
20
+ conv_treshold: 1e-1
21
21
  max_iter: 1000
22
22
  calculate_additional: true
23
23
 
@@ -0,0 +1,3 @@
1
+ SPDX-FileCopyrightText: 2025 Tjark Sievers
2
+
3
+ SPDX-License-Identifier: MIT
@@ -0,0 +1,165 @@
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "markdown",
5
+ "id": "5a227fd4395b199e",
6
+ "metadata": {},
7
+ "source": "# Band structure calculations"
8
+ },
9
+ {
10
+ "metadata": {},
11
+ "cell_type": "code",
12
+ "outputs": [],
13
+ "execution_count": null,
14
+ "source": [
15
+ "import matplotlib as mpl\n",
16
+ "import matplotlib.pyplot as plt\n",
17
+ "import numpy as np\n",
18
+ "from quant_met import geometry, mean_field, parameters, plotting"
19
+ ],
20
+ "id": "b22b860fe454346"
21
+ },
22
+ {
23
+ "metadata": {},
24
+ "cell_type": "code",
25
+ "outputs": [],
26
+ "execution_count": null,
27
+ "source": [
28
+ "mpl.style.use(\"default\")\n",
29
+ "\n",
30
+ "graphene_lattice = geometry.GrapheneLattice(lattice_constant=np.sqrt(3))\n",
31
+ "n = 1000 # number of points across the whole k space path\n",
32
+ "t_gr = 1\n",
33
+ "t_x = 0.01\n",
34
+ "band_path, band_path_plot, ticks, labels = graphene_lattice.generate_high_symmetry_path(\n",
35
+ " number_of_points=n\n",
36
+ ")"
37
+ ],
38
+ "id": "f85888e34d3c736f"
39
+ },
40
+ {
41
+ "metadata": {},
42
+ "cell_type": "code",
43
+ "outputs": [],
44
+ "execution_count": null,
45
+ "source": [
46
+ "V_list = [0, 0.5, 1.4, 3]\n",
47
+ "\n",
48
+ "fig, axs = plt.subplots(nrows=1, ncols=len(V_list), figsize=(len(V_list) * 10, 10))\n",
49
+ "\n",
50
+ "for V, ax in zip(V_list, axs, strict=False):\n",
51
+ " egx_h = mean_field.hamiltonians.DressedGraphene(\n",
52
+ " parameters.hamiltonians.DressedGrapheneParameters(\n",
53
+ " hopping_gr=t_gr,\n",
54
+ " hopping_x=t_x,\n",
55
+ " hopping_x_gr_a=V,\n",
56
+ " lattice_constant=graphene_lattice.lattice_constant,\n",
57
+ " chemical_potential=0,\n",
58
+ " hubbard_int_orbital_basis=[0.0, 0.0, 0.0],\n",
59
+ " )\n",
60
+ " )\n",
61
+ "\n",
62
+ " band_structure = egx_h.calculate_bandstructure(\n",
63
+ " band_path, overlaps=np.array([[0, 0, 1], [1, 0, 0]])\n",
64
+ " )\n",
65
+ "\n",
66
+ " bands = band_structure[[\"band_0\", \"band_1\", \"band_2\"]]\n",
67
+ " overlaps = band_structure[[\"wx_0\", \"wx_1\", \"wx_2\"]]\n",
68
+ "\n",
69
+ " plotting.plot_bandstructure(\n",
70
+ " bands=bands.to_numpy().T,\n",
71
+ " overlaps=overlaps.to_numpy().T,\n",
72
+ " k_point_list=band_path_plot,\n",
73
+ " ticks=ticks,\n",
74
+ " labels=labels,\n",
75
+ " ax_in=ax,\n",
76
+ " fig_in=fig,\n",
77
+ " overlap_labels=[r\"$w_{\\mathrm{Gr}_1}$\", r\"$w_X$\"],\n",
78
+ " )\n",
79
+ "\n",
80
+ " ax.set_title(f\"V = {V:.2f}\", fontsize=30)\n",
81
+ " ax.tick_params(axis=\"x\", labelsize=20)\n",
82
+ "\n",
83
+ "fig.savefig(\"EG-X bands.pdf\", bbox_inches=\"tight\")"
84
+ ],
85
+ "id": "be9baaf277e035e0"
86
+ },
87
+ {
88
+ "cell_type": "code",
89
+ "execution_count": 4,
90
+ "id": "8de39516c2786a21",
91
+ "metadata": {
92
+ "ExecuteTime": {
93
+ "end_time": "2025-03-11T17:32:31.243574Z",
94
+ "start_time": "2025-03-11T17:32:31.075630Z"
95
+ }
96
+ },
97
+ "outputs": [
98
+ {
99
+ "data": {
100
+ "image/png": "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SkwFAAAAAAAAAABQiakAAAAAAAAAAAAqMRUAAAAAAAAAAEAlpgIAAAAAAAAAAKjEVAAAAAAAAAAAAJWYCgAAAAAAAAAAoBJTAQAAAAAAAAAAVGIqAAAAAAAAAACASkwFAAAAAAAAAABQiakAAAAAAAAAAAAqMRUAAAAAAAAAAEAlpgIAAAAAAAAAAKjEVAAAAAAAAAAAAJWYCgAAAAAAAAAAoBJTAQAAAAAAAAAAVGIqAAAAAAAAAACASkwFAAAAAAAAAABQiakAAAAAAAAAAAAqMRUAAAAAAAAAAEAlpgIAAAAAAAAAAKjEVAAAAAAAAAAAAJWYCgAAAAAAAAAAoBJTAQAAAAAAAAAAVGIqAAAAAAAAAACASkwFAAAAAAAAAABQiakAAAAAAAAAAAAqMRUAAAAAAAAAAEAlpgIAAAAAAAAAAKjEVAAAAAAAAAAAAJWYCgAAAAAAAAAAoBJTAQAAAAAAAAAAVGIqAAAAAAAAAACASkwFAAAAAAAAAABQiakAAAAAAAAAAAAqMRUAAAAAAAAAAEAlpgIAAAAAAAAAAKjEVAAAAAAAAAAAAJWYCgAAAAAAAAAAoBJTAQAAAAAAAAAAVGIqAAAAAAAAAACASkwFAAAAAAAAAABQiakAAAAAAAAAAAAqMRUAAAAAAAAAAEAlpgIAAAAAAAAAAKjEVAAAAAAAAAAAAJWYCgAAAAAAAAAAoBJTAQAAAAAAAAAAVGIqAAAAAAAAAACASkwFAAAAAAAAAABQiakAAAAAAAAAAAAqMRUAAAAAAAAAAEAlpgIAAAAAAAAAAKjEVAAAAAAAAAAAAJWYCgAAAAAAAAAAoBJTAQAAAAAAAAAAVGIqAAAAAAAAAACASkwFAAAAAAAAAABQiakAAAAAAAAAAAAqMRUAAAAAAAAAAEAlpgIAAAAAAAAAAKjEVAAAAAAAAAAAAJWYCgAAAAAAAAAAoBJTAQAAAAAAAAAAVGIqAAAAAAAAAACASkwFAAAAAAAAAABQiakAAAAAAAAAAAAqMRUAAAAAAAAAAEAlpgIAAAAAAAAAAKjEVAAAAAAAAAAAAJWYCgAAAAAAAAAAoBJTAQAAAAAAAAAAVGIqAAAAAAAAAACASkwFAAAAAAAAAABQiakAAAAAAAAAAAAqMRUAAAAAAAAAAEAlpgIAAAAAAAAAAKjEVAAAAAAAAAAAAJWYCgAA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AAAAAABQiakAAAAAAAAAAAAqMRUAAAAAAAAAAEAlpgIAAAAAAAAAAKjEVAAAAAAAAAAAAJWYCgAAAAAAAAAAoBJTAQAAAAAAAAAAVGIqAAAAAAAAAACASkwFAAAAAAAAAABQiakAAAAAAAAAAAAqMRUAAAAAAAAAAEAlpgIAAAAAAAAAAKjEVAAAAAAAAAAAAJWYCgAAAAAAAAAAoBJTAQAAAAAAAAAAVGIqAAAAAAAAAACASkwFAAAAAAAAAABQiakAAAAAAAAAAAAqMRUAAAAAAAAAAEAlpgIAAAAAAAAAAKjEVAAAAAAAAAAAAJWYCgAAAAAAAAAAoBJTAQAAAAAAAAAAVGIqAAAAAAAAAACASkwFAAAAAAAAAABQiakAAAAAAAAAAAAqMRUAAAAAAAAAAEAlpgIAAAAAAAAAAKjEVAAAAAAAAAAAAJWYCgAAAAAAAAAAoBJTAQAAAAAAAAAAVGIqAAAAAAAAAACASkwFAAAAAAAAAABQiakAAAAAAAAAAAAqMRUAAAAAAAAAAEAlpgIAAAAAAAAAAKjEVAAAAAAAAAAAAJWYCgAAAAAAAAAAoBJTAQAAAAAAAAAAVGIqAAAAAAAAAACASkwFAAAAAAAAAABQiakAAAAAAAAAAAAqMRUAAAAAAAAAAEAlpgIAAAAAAAAAAKjEVAAAAAAAAAAAAJWYCgAAAAAAAAAAoBJTAQAAAAAAAAAAVGIqAAAAAAAAAACASkwFAAAAAAAAAABQiakAAAAAAAAAAAAqMRUAAAAAAAAAAEAlpgIAAAAAAAAAAKjEVAAAAAAAAAAAAJWYCgAAAAAAAAAAoBJTAQAAAAAAAAAAVGIqAAAAAAAAAACASkwFAAAAAAAAAABQiakAAAAAAAAAAAAqMRUAAAAAAAAAAEAlpgIAAAAAAAAAAKjEVAAAAAAAAAAAAJWYCgAAAAAAAAAAoBJTAQAAAAAAAAAAVGIqAAAAAAAAAACASkwFAAAAAAAAAABQiakAAAAAAAAAAAAqMRUAAAAAAAAAAEAlpgIAAAAAAAAAAKjEVAAAAAAAAAAAAJWYCgAAAAAAAAAAoBJTAQAAAAAAAAAAVGIqAAAAAAAAAACASkwFAAAAAAAAAABQiakAAAAAAAAAAAAqMRUAAAAAAAAAAEAlpgIAAAAAAAAAAKjEVAAAAAAAAAAAAJWYCgAAAAAAAAAA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AAAAAFCJqQAAAAAAAAAAACoxFQAAAAAAAAAAQCWmAgAAAAAAAAAAqMRUAAAAAAAAAAAAlZgKAAAAAAAAAACgElMBAAAAAAAAAABUYioAAAAAAAAAAIBKTAUAAAAAAAAAAFCJqQAAAAAAAAAAACoxFQAAAAAAAAAAQCWmAgAAAAAAAAAAqMRUAAAAAAAAAAAAlZgKAAAAAAAAAACgElMBAAAAAAAAAABUYioAAAAAAAAAAIBKTAUAAAAAAAAAAFCJqQAAAAAAAAAAACoxFQAAAAAAAAAAQCWmAgAAAAAAAAAAqMRUAAAAAAAAAAAAlZgKAAAAAAAAAACgElMBAAAAAAAAAABUYioAAAAAAAAAAIBKTAUAAAAAAAAAAFCJqQAAAAAAAAAAACoxFQAAAAAAAAAAQCWmAgAAAAAAAAAAqMRUAAAAAAAAAAAAlZgKAAAAAAAAAACgElMBAAAAAAAAAABUYioAAAAAAAAAAIBKTAUAAAAAAAAAAFCJqQAAAAAAAAAAACoxFQAAAAAAAAAAQCWmAgAAAAAAAAAAqMRUAAAAAAAAAAAAlZgKAAAAAAAAAACgElMBAAAAAAAAAABUYioAAAAAAAAAAIBKTAUAAAAAAAAAAFCJqQAAAAAAAAAAACoxFQAAAAAAAAAAQCWmAgAAAAAAAAAAqMRUAAAAAAAAAAAAlZgKAAAAAAAAAACgElMBAAAAAAAAAABUYioAAAAAAAAAAIBKTAUAAAAAAAAAAFCJqQAAAAAAAAAAACoxFQAAAAAAAAAAQCWmAgAAAAAAAAAAqMRUAAAAAAAAAAAAlZgKAAAAAAAAAACgElMBAAAAAAAAAABUYioAAAAAAAAAAIBKTAUAAAAAAAAAAFCJqQAAAAAAAAAAACoxFQAAAAAAAAAAQCWmAgAAAAAAAAAAqMRUAAAAAAAAAAAAlZgKAAAAAAAAAACgElMBAAAAAAAAAABUYioAAAAAAAAAAIBKTAUAAAAAAAAAAFCJqQAAAAAAAAAAACoxFQAAAAAAAAAAQCWmAgAAAAAAAAAAqMRUAAAAAAAAAAAAlZgKAAAAAAAAAACgElMBAAAAAAAAAABUYioAAAAAAAAAAIBKTAUAAAAAAAAAAFCJqQAAAAAAAAAAACoxFQAAAAAAAAAAQCWmAgAAAAAAAAAAqMRUAAAAAAAAAAAAlZgKAAAAAAAAAACg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",
101
+ "text/plain": [
102
+ "<Figure size 3000x1000 with 3 Axes>"
103
+ ]
104
+ },
105
+ "metadata": {},
106
+ "output_type": "display_data"
107
+ }
108
+ ],
109
+ "source": [
110
+ "import matplotlib as mpl\n",
111
+ "\n",
112
+ "mpl.style.use(\"default\")\n",
113
+ "\n",
114
+ "V_list = [0.01, 0.5, 2]\n",
115
+ "\n",
116
+ "fig, axs = plt.subplots(nrows=1, ncols=len(V_list), figsize=(len(V_list) * 10, 10))\n",
117
+ "\n",
118
+ "egx_h = mean_field.hamiltonians.OneBand(\n",
119
+ " parameters.hamiltonians.OneBandParameters(\n",
120
+ " hopping=t_gr,\n",
121
+ " lattice_constant=graphene_lattice.lattice_constant,\n",
122
+ " chemical_potential=0,\n",
123
+ " hubbard_int_orbital_basis=[0.0],\n",
124
+ " )\n",
125
+ ")\n",
126
+ "\n",
127
+ "band_structure = egx_h.calculate_bandstructure(band_path, overlaps=np.array([[0, 0, 1], [1, 0, 0]]))"
128
+ ]
129
+ },
130
+ {
131
+ "cell_type": "code",
132
+ "execution_count": null,
133
+ "id": "d98e492c13d6bf",
134
+ "metadata": {
135
+ "ExecuteTime": {
136
+ "end_time": "2025-03-11T17:32:31.254281Z",
137
+ "start_time": "2025-03-11T17:32:31.252711Z"
138
+ }
139
+ },
140
+ "outputs": [],
141
+ "source": []
142
+ }
143
+ ],
144
+ "metadata": {
145
+ "kernelspec": {
146
+ "display_name": "Python 3 (ipykernel)",
147
+ "language": "python",
148
+ "name": "python3"
149
+ },
150
+ "language_info": {
151
+ "codemirror_mode": {
152
+ "name": "ipython",
153
+ "version": 3
154
+ },
155
+ "file_extension": ".py",
156
+ "mimetype": "text/x-python",
157
+ "name": "python",
158
+ "nbconvert_exporter": "python",
159
+ "pygments_lexer": "ipython3",
160
+ "version": "3.11.3"
161
+ }
162
+ },
163
+ "nbformat": 4,
164
+ "nbformat_minor": 5
165
+ }
@@ -4,7 +4,7 @@
4
4
 
5
5
  [project]
6
6
  name = "quant-met"
7
- version = "0.0.23"
7
+ version = "0.0.24"
8
8
  description = "Calculate superconductivity in flat-band systems."
9
9
  authors = [{name="Tjark Sievers", email="tsievers@physnet.uni-hamburg.de"}]
10
10
  readme = "README.md"
@@ -50,8 +50,11 @@ ignore = [
50
50
  "S101", # This checks against using assert
51
51
  "PLR0913", # This checks against using more than 5 function arguments
52
52
  "PLR0915", # This checks against too long functions
53
+ "PLR0912", # Check against too many branches
54
+ "C901", # Check against too complex functions
53
55
  "PLR2004", # Check against "magic values"
54
56
  "T201", # Warn about print statements
57
+ "PLW0603" # Warn about global updates
55
58
  ]
56
59
 
57
60
  [tool.ruff.lint.pydocstyle]
@@ -41,7 +41,11 @@ def _tbl_factory(h: BaseHamiltonian[GenericParameters]) -> TBLattice:
41
41
  0.5 * lattice_constant * np.array([1, np.sqrt(3), 0]),
42
42
  0.5 * lattice_constant * np.array([1, -np.sqrt(3), 0]),
43
43
  ]
44
- orbital_positions = [(0, 0.5, 0), (0, -0.5, 0), (0, -0.5, 0)]
44
+ orbital_positions = [
45
+ (0.5 * (np.sqrt(3) - 1), 0, 0),
46
+ (0.5 * (np.sqrt(3) + 1), 0, 0),
47
+ (0.5 * (np.sqrt(3) - 1), 0, 0),
48
+ ]
45
49
  hoppings = {
46
50
  (0, 0): [
47
51
  [0, h.hopping_gr, h.hopping_x_gr_a],
@@ -50,13 +54,13 @@ def _tbl_factory(h: BaseHamiltonian[GenericParameters]) -> TBLattice:
50
54
  ],
51
55
  (1, 0): [[0, 0, 0], [h.hopping_gr, 0, 0], [0, 0, 0]],
52
56
  (-1, 0): [[0, h.hopping_gr, 0], [0, 0, 0], [0, 0, 0]],
53
- (0, 1): [[0, 0, 0], [h.hopping_gr, 0, 0], [0, 0, 0]],
54
- (0, -1): [[0, h.hopping_gr, 0], [0, 0, 0], [0, 0, 0]],
57
+ (0, 1): [[0, h.hopping_gr, 0], [0, 0, 0], [0, 0, 0]],
58
+ (0, -1): [[0, 0, 0], [h.hopping_gr, 0, 0], [0, 0, 0]],
55
59
  }
56
60
 
57
61
  return TBLattice(
58
62
  units=basis_vectors,
59
63
  hoppings=hoppings,
60
64
  orbital_positions=orbital_positions,
61
- orbital_names=["C1", "C2", "X"],
65
+ orbital_names=["A", "B", "X"],
62
66
  )
@@ -8,7 +8,8 @@ import logging
8
8
  from pathlib import Path
9
9
 
10
10
  from h5 import HDFArchive
11
- from triqs.gf import Gf, Idx
11
+ from mpi4py import MPI
12
+ from triqs.gf import Gf
12
13
 
13
14
  from quant_met.cli._utils import _hamiltonian_factory, _tbl_factory
14
15
  from quant_met.dmft.dmft_loop import dmft_loop
@@ -43,7 +44,13 @@ def dmft_scf(parameters: Parameters) -> None:
43
44
  h0_nambu_k[k][:n_orbitals, :n_orbitals] = enk(k)
44
45
  h0_nambu_k[k][n_orbitals:, n_orbitals:] = -enk(-k)
45
46
 
46
- xmu = -h.hubbard_int_orbital_basis[0] / 2
47
+ ust = 0
48
+ jh = 0
49
+ xmu = (
50
+ h.hubbard_int_orbital_basis[0] / 2
51
+ + (tbl.n_orbitals - 1) * ust / 2
52
+ + (tbl.n_orbitals - 1) * (ust - jh) / 2
53
+ )
47
54
 
48
55
  solver = dmft_loop(
49
56
  tbl=tbl,
@@ -69,23 +76,21 @@ def dmft_scf(parameters: Parameters) -> None:
69
76
  g_iw, g_an_iw = get_gloc(s_iw, s_an_iw, h0_nambu_k, xmu, parameters.control.broadening, kmesh)
70
77
  g_w, g_an_w = get_gloc(s_w, s_an_w, h0_nambu_k, xmu, parameters.control.broadening, kmesh)
71
78
 
72
- n_iw0 = int(0.5 * len(s_iw.mesh))
73
- iw_0 = s_iw.mesh[n_iw0].value.imag
74
-
75
- gap = s_an_iw[Idx(0)][0, 0].real / (1 - (s_iw[Idx(0)][0, 0].imag / iw_0))
79
+ comm = MPI.COMM_WORLD
80
+ rank = comm.Get_rank()
76
81
 
77
- data_dir = Path("data/DressedGraphene/dmft/sweep_V/")
78
- data_dir.mkdir(parents=True, exist_ok=True)
82
+ if rank == 0:
83
+ data_dir = Path("data/DressedGraphene/dmft/sweep_V/")
84
+ data_dir.mkdir(parents=True, exist_ok=True)
79
85
 
80
- # Save calculation results
81
- result_file = result_path / f"{parameters.control.prefix}.hdf5"
82
- with HDFArchive(f"{result_file}", "w") as ar:
83
- ar["s_iw"] = s_iw
84
- ar["s_an_iw"] = s_an_iw
85
- ar["g_iw"] = g_iw
86
- ar["g_an_iw"] = g_an_iw
87
- ar["g_w"] = g_w
88
- ar["g_an_w"] = g_an_w
89
- ar["gap"] = gap
86
+ # Save calculation results
87
+ result_file = result_path / f"{parameters.control.prefix}.hdf5"
88
+ with HDFArchive(f"{result_file}", "w") as ar:
89
+ ar["s_iw"] = s_iw
90
+ ar["s_an_iw"] = s_an_iw
91
+ ar["g_iw"] = g_iw
92
+ ar["g_an_iw"] = g_an_iw
93
+ ar["g_w"] = g_w
94
+ ar["g_an_w"] = g_an_w
90
95
 
91
- logger.info("Results saved to %s", result_file)
96
+ logger.info("Results saved to %s", result_file)
@@ -18,7 +18,7 @@ from triqs.operators import c, c_dag, dagger, n
18
18
  from quant_met.mean_field.hamiltonians import BaseHamiltonian
19
19
  from quant_met.parameters import GenericParameters
20
20
 
21
- from .utils import _dmft_weiss_field, get_gloc
21
+ from .utils import _check_convergence, _dmft_weiss_field, get_gloc
22
22
 
23
23
  logger = logging.getLogger(__name__)
24
24
 
@@ -80,8 +80,27 @@ def dmft_loop(
80
80
  h_loc[o1, o2] * c_dag(spin, o1) * c(spin, o2) for spin, o1, o2 in product(spins, orbs, orbs)
81
81
  )
82
82
 
83
+ ust = 0
84
+ jh = 0
85
+ jx = 0
86
+ jp = 0
87
+
83
88
  # Interaction part
84
- hamiltonian += -h.hubbard_int_orbital_basis[0] * sum(n("up", o) * n("dn", o) for o in orbs)
89
+ hamiltonian += h.hubbard_int_orbital_basis[0] * sum(n("up", o) * n("dn", o) for o in orbs)
90
+ hamiltonian += ust * sum(
91
+ int(o1 != o2) * n("up", o1) * n("dn", o2) for o1, o2 in product(orbs, orbs)
92
+ )
93
+ hamiltonian += (ust - jh) * sum(
94
+ int(o1 < o2) * n(s, o1) * n(s, o2) for s, o1, o2 in product(spins, orbs, orbs)
95
+ )
96
+ hamiltonian -= jx * sum(
97
+ int(o1 != o2) * c_dag("up", o1) * c("dn", o1) * c_dag("dn", o2) * c("up", o2)
98
+ for o1, o2 in product(orbs, orbs)
99
+ )
100
+ hamiltonian += jp * sum(
101
+ int(o1 != o2) * c_dag("up", o1) * c_dag("dn", o1) * c("dn", o2) * c("up", o2)
102
+ for o1, o2 in product(orbs, orbs)
103
+ )
85
104
 
86
105
  # Matrix dimensions of eps and V: 3 orbitals x 2 bath states
87
106
  eps = np.array([[-1.0, -0.5, 0.5, 1.0] for _ in range(tbl.n_orbitals)])
@@ -119,8 +138,6 @@ def dmft_loop(
119
138
  bath_fitting_params=fit_params,
120
139
  )
121
140
 
122
- gooditer = 0
123
- g0_prev = np.zeros((2, 2 * n_iw, tbl.n_orbitals, tbl.n_orbitals), dtype=complex)
124
141
  for iloop in range(max_iter):
125
142
  print(f"\nLoop {iloop + 1} of {max_iter}")
126
143
 
@@ -151,39 +168,11 @@ def dmft_loop(
151
168
 
152
169
  # Check convergence of the Weiss field
153
170
  g0 = np.asarray([g0_iw.data, g0_an_iw.data])
154
- errvec = np.real(np.sum(abs(g0 - g0_prev), axis=1) / np.sum(abs(g0), axis=1))
155
- # First iteration
156
- if iloop == 0:
157
- errvec = np.ones_like(errvec)
158
- errmin, err, errmax = np.min(errvec), np.average(errvec), np.max(errvec)
159
-
160
- g0_prev = np.copy(g0)
161
-
162
- if err < epsilon:
163
- gooditer += 1 # Increase good iterations count
164
- else:
165
- gooditer = 0 # Reset good iterations count
166
-
167
- conv_bool = ((err < epsilon) and (gooditer > n_success) and (iloop < max_iter)) or (
168
- iloop >= max_iter
169
- )
171
+ # Check convergence of the Weiss field
172
+ g0 = np.asarray([g0_iw.data, g0_an_iw.data])
173
+ err, converged = _check_convergence(g0, epsilon, n_success, max_iter)
170
174
 
171
- # Print convergence message
172
- if iloop < max_iter:
173
- if errvec.size > 1:
174
- print(f"max error={errmax:.6e}")
175
- print(" " * (errvec.size > 1) + f"error={err:.6e}")
176
- if errvec.size > 1:
177
- print(f"min error={errmin:.6e}")
178
- else:
179
- if errvec.size > 1:
180
- print(f"max error={errmax:.6e}")
181
- print(" " * (errvec.size > 1) + f"error={err:.6e}")
182
- if errvec.size > 1:
183
- print(f"min error={errmin:.6e}")
184
- print(f"Not converged after {max_iter} iterations.")
185
-
186
- if conv_bool:
175
+ if converged:
187
176
  break
188
177
 
189
178
  return solver