quant-met 0.0.25__py3-none-any.whl → 0.0.27__py3-none-any.whl
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.
- quant_met/__init__.py +5 -0
- quant_met/cli/__init__.py +1 -0
- quant_met/cli/_utils.py +2 -36
- quant_met/cli/crit_temp.py +1 -0
- quant_met/cli/main.py +1 -4
- quant_met/cli/scf.py +1 -0
- quant_met/geometry/__init__.py +1 -0
- quant_met/geometry/base_lattice.py +1 -0
- quant_met/geometry/bz_path.py +1 -0
- quant_met/geometry/graphene.py +1 -0
- quant_met/geometry/square.py +1 -0
- quant_met/mean_field/__init__.py +1 -2
- quant_met/mean_field/_utils.py +1 -0
- quant_met/mean_field/hamiltonians/__init__.py +1 -0
- quant_met/mean_field/hamiltonians/base_hamiltonian.py +3 -2
- quant_met/mean_field/hamiltonians/dressed_graphene.py +4 -7
- quant_met/mean_field/hamiltonians/graphene.py +1 -0
- quant_met/mean_field/hamiltonians/one_band_tight_binding.py +1 -0
- quant_met/mean_field/hamiltonians/three_band_tight_binding.py +1 -0
- quant_met/mean_field/hamiltonians/two_band_tight_binding.py +1 -0
- quant_met/mean_field/search_crit_temp.py +1 -0
- quant_met/mean_field/self_consistency.py +2 -1
- quant_met/parameters/__init__.py +1 -0
- quant_met/parameters/hamiltonians.py +1 -0
- quant_met/parameters/main.py +1 -0
- quant_met/plotting/__init__.py +1 -0
- quant_met/plotting/plotting.py +1 -0
- quant_met/utils.py +1 -0
- {quant_met-0.0.25.dist-info → quant_met-0.0.27.dist-info}/METADATA +5 -3
- quant_met-0.0.27.dist-info/RECORD +33 -0
- quant_met/cli/dmft.py +0 -96
- quant_met/dmft/__init__.py +0 -5
- quant_met/dmft/dmft_loop.py +0 -178
- quant_met/dmft/utils.py +0 -207
- quant_met-0.0.25.dist-info/RECORD +0 -37
- {quant_met-0.0.25.dist-info → quant_met-0.0.27.dist-info}/WHEEL +0 -0
- {quant_met-0.0.25.dist-info → quant_met-0.0.27.dist-info}/entry_points.txt +0 -0
- {quant_met-0.0.25.dist-info → quant_met-0.0.27.dist-info}/licenses/LICENSE.txt +0 -0
quant_met/__init__.py
CHANGED
@@ -1,5 +1,10 @@
|
|
1
1
|
# SPDX-FileCopyrightText: 2024 Tjark Sievers
|
2
|
+
# SPDX-FileCopyrightText: 2025 Tjark Sievers
|
2
3
|
#
|
3
4
|
# SPDX-License-Identifier: MIT
|
4
5
|
|
5
6
|
"""quant-met, a package to treat superconductivity in flat-band systems."""
|
7
|
+
|
8
|
+
from . import cli, geometry, mean_field, parameters, plotting
|
9
|
+
|
10
|
+
__all__ = ["cli", "geometry", "mean_field", "parameters", "plotting"]
|
quant_met/cli/__init__.py
CHANGED
quant_met/cli/_utils.py
CHANGED
@@ -1,12 +1,10 @@
|
|
1
1
|
# SPDX-FileCopyrightText: 2024 Tjark Sievers
|
2
|
+
# SPDX-FileCopyrightText: 2025 Tjark Sievers
|
2
3
|
#
|
3
4
|
# SPDX-License-Identifier: MIT
|
4
5
|
|
5
|
-
import numpy as np
|
6
|
-
from triqs.lattice.tight_binding import TBLattice
|
7
|
-
|
8
6
|
from quant_met.mean_field.hamiltonians import BaseHamiltonian
|
9
|
-
from quant_met.parameters import
|
7
|
+
from quant_met.parameters import HamiltonianParameters
|
10
8
|
|
11
9
|
|
12
10
|
def _hamiltonian_factory(
|
@@ -32,35 +30,3 @@ def _hamiltonian_factory(
|
|
32
30
|
cls = getattr(hamiltonians, classname)
|
33
31
|
h: BaseHamiltonian[HamiltonianParameters] = cls(parameters)
|
34
32
|
return h
|
35
|
-
|
36
|
-
|
37
|
-
def _tbl_factory(h: BaseHamiltonian[GenericParameters]) -> TBLattice:
|
38
|
-
lattice_constant = np.sqrt(3)
|
39
|
-
|
40
|
-
basis_vectors = [
|
41
|
-
0.5 * lattice_constant * np.array([1, np.sqrt(3), 0]),
|
42
|
-
0.5 * lattice_constant * np.array([1, -np.sqrt(3), 0]),
|
43
|
-
]
|
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
|
-
]
|
49
|
-
hoppings = {
|
50
|
-
(0, 0): [
|
51
|
-
[0, h.hopping_gr, h.hopping_x_gr_a],
|
52
|
-
[h.hopping_gr, 0, 0],
|
53
|
-
[h.hopping_x_gr_a, 0, 0],
|
54
|
-
],
|
55
|
-
(1, 0): [[0, 0, 0], [h.hopping_gr, 0, 0], [0, 0, 0]],
|
56
|
-
(-1, 0): [[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]],
|
59
|
-
}
|
60
|
-
|
61
|
-
return TBLattice(
|
62
|
-
units=basis_vectors,
|
63
|
-
hoppings=hoppings,
|
64
|
-
orbital_positions=orbital_positions,
|
65
|
-
orbital_names=["A", "B", "X"],
|
66
|
-
)
|
quant_met/cli/crit_temp.py
CHANGED
quant_met/cli/main.py
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
# SPDX-FileCopyrightText: 2024 Tjark Sievers
|
2
|
+
# SPDX-FileCopyrightText: 2025 Tjark Sievers
|
2
3
|
#
|
3
4
|
# SPDX-License-Identifier: MIT
|
4
5
|
|
@@ -14,7 +15,6 @@ import yaml
|
|
14
15
|
from quant_met.parameters import Parameters
|
15
16
|
|
16
17
|
from .crit_temp import crit_temp
|
17
|
-
from .dmft import dmft_scf
|
18
18
|
from .scf import scf
|
19
19
|
|
20
20
|
logger = logging.getLogger(__name__)
|
@@ -61,9 +61,6 @@ def cli(input_file: TextIO, *, debug: bool) -> None:
|
|
61
61
|
case "crit-temp":
|
62
62
|
logger.info("Starting T_C calculation.")
|
63
63
|
crit_temp(params)
|
64
|
-
case "dmft-scf":
|
65
|
-
logger.info("Starting DMFT SCF calculation.")
|
66
|
-
dmft_scf(params)
|
67
64
|
case _:
|
68
65
|
logger.error("Calculation %s not found.", params.control.calculation)
|
69
66
|
sys.exit(1)
|
quant_met/cli/scf.py
CHANGED
quant_met/geometry/__init__.py
CHANGED
quant_met/geometry/bz_path.py
CHANGED
quant_met/geometry/graphene.py
CHANGED
quant_met/geometry/square.py
CHANGED
quant_met/mean_field/__init__.py
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
# SPDX-FileCopyrightText: 2024 Tjark Sievers
|
2
|
+
# SPDX-FileCopyrightText: 2025 Tjark Sievers
|
2
3
|
#
|
3
4
|
# SPDX-License-Identifier: MIT
|
4
5
|
|
@@ -21,8 +22,6 @@ Functions
|
|
21
22
|
.. autosummary::
|
22
23
|
:toctree: generated/
|
23
24
|
|
24
|
-
superfluid_weight
|
25
|
-
quantum_metric
|
26
25
|
self_consistency_loop
|
27
26
|
search_crit_temp
|
28
27
|
""" # noqa: D205, D400
|
quant_met/mean_field/_utils.py
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
# SPDX-FileCopyrightText: 2024 Tjark Sievers
|
2
|
+
# SPDX-FileCopyrightText: 2025 Tjark Sievers
|
2
3
|
#
|
3
4
|
# SPDX-License-Identifier: MIT
|
4
5
|
|
@@ -6,7 +7,7 @@
|
|
6
7
|
|
7
8
|
import pathlib
|
8
9
|
from abc import ABC, abstractmethod
|
9
|
-
from typing import Generic, TypeVar
|
10
|
+
from typing import Generic, Self, TypeVar
|
10
11
|
|
11
12
|
import h5py
|
12
13
|
import numpy as np
|
@@ -152,7 +153,7 @@ class BaseHamiltonian(Generic[GenericParameters], ABC):
|
|
152
153
|
f.attrs["lattice_constant"] = self.lattice.lattice_constant
|
153
154
|
|
154
155
|
@classmethod
|
155
|
-
def from_file(cls
|
156
|
+
def from_file(cls, filename: pathlib.Path) -> Self:
|
156
157
|
"""Initialize a Hamiltonian from a previously saved HDF5 file.
|
157
158
|
|
158
159
|
This class method allows users to reconstruct a Hamiltonian object
|
@@ -1,4 +1,5 @@
|
|
1
1
|
# SPDX-FileCopyrightText: 2024 Tjark Sievers
|
2
|
+
# SPDX-FileCopyrightText: 2025 Tjark Sievers
|
2
3
|
#
|
3
4
|
# SPDX-License-Identifier: MIT
|
4
5
|
|
@@ -48,13 +49,9 @@ class DressedGraphene(BaseHamiltonian[DressedGrapheneParameters]):
|
|
48
49
|
|
49
50
|
h = np.zeros((k.shape[0], self.number_of_bands, self.number_of_bands), dtype=np.complex128)
|
50
51
|
|
51
|
-
h[:, 0, 1] = (
|
52
|
-
|
53
|
-
* np.exp(
|
54
|
-
* (
|
55
|
-
np.exp(1j * k[:, 1] * a / np.sqrt(3))
|
56
|
-
+ 2 * np.exp(-0.5j * a / np.sqrt(3) * k[:, 1]) * (np.cos(0.5 * a * k[:, 0]))
|
57
|
-
)
|
52
|
+
h[:, 0, 1] = -t_gr * (
|
53
|
+
np.exp(1j * k[:, 1] * a / np.sqrt(3))
|
54
|
+
+ 2 * np.exp(-0.5j * a / np.sqrt(3) * k[:, 1]) * (np.cos(0.5 * a * k[:, 0]))
|
58
55
|
)
|
59
56
|
|
60
57
|
h[:, 1, 0] = h[:, 0, 1].conjugate()
|
@@ -1,4 +1,5 @@
|
|
1
1
|
# SPDX-FileCopyrightText: 2024 Tjark Sievers
|
2
|
+
# SPDX-FileCopyrightText: 2025 Tjark Sievers
|
2
3
|
#
|
3
4
|
# SPDX-License-Identifier: MIT
|
4
5
|
|
@@ -89,6 +90,6 @@ def self_consistency_loop(
|
|
89
90
|
return h
|
90
91
|
|
91
92
|
mixing_greed = 0.2
|
92
|
-
h.delta_orbital_basis = mixing_greed * new_gap + (1 - mixing_greed) * h.delta_orbital_basis
|
93
|
+
h.delta_orbital_basis = mixing_greed * new_gap + (1 - mixing_greed) * h.delta_orbital_basis # type: ignore[assignment]
|
93
94
|
logger.debug("Updated gaps: %s", h.delta_orbital_basis)
|
94
95
|
logger.debug("Change in gaps: %s", np.abs(h.delta_orbital_basis - new_gap))
|
quant_met/parameters/__init__.py
CHANGED
quant_met/parameters/main.py
CHANGED
quant_met/plotting/__init__.py
CHANGED
quant_met/plotting/plotting.py
CHANGED
quant_met/utils.py
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: quant-met
|
3
|
-
Version: 0.0.
|
3
|
+
Version: 0.0.27
|
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,11 +8,12 @@ Requires-Python: >=3.11
|
|
8
8
|
Requires-Dist: click>=8.1.8
|
9
9
|
Requires-Dist: h5py>=3.12.1
|
10
10
|
Requires-Dist: matplotlib>=3.10.0
|
11
|
-
Requires-Dist: numba>=0.
|
12
|
-
Requires-Dist: numpy
|
11
|
+
Requires-Dist: numba>=0.61.0
|
12
|
+
Requires-Dist: numpy>=2.1
|
13
13
|
Requires-Dist: numpydantic>=1.6.6
|
14
14
|
Requires-Dist: pandas>=2.2.3
|
15
15
|
Requires-Dist: pydantic>=2.10.4
|
16
|
+
Requires-Dist: pythtb>=1.8.0
|
16
17
|
Requires-Dist: pyyaml>=6.0.2
|
17
18
|
Requires-Dist: scipy>=1.15.0
|
18
19
|
Requires-Dist: tables>=3.10.2
|
@@ -20,6 +21,7 @@ Description-Content-Type: text/markdown
|
|
20
21
|
|
21
22
|
<!--
|
22
23
|
SPDX-FileCopyrightText: 2024 Tjark Sievers
|
24
|
+
SPDX-FileCopyrightText: 2025 Tjark Sievers
|
23
25
|
|
24
26
|
SPDX-License-Identifier: MIT
|
25
27
|
-->
|
@@ -0,0 +1,33 @@
|
|
1
|
+
quant_met/__init__.py,sha256=gRG4ktbxayIWQc5JjSZcZaUpNhPhQ9CjZ1EbZthocaw,334
|
2
|
+
quant_met/utils.py,sha256=evF4BBhfElXK0sj4eUTIfF_vRyyzW6XYK44VZaLexE8,2112
|
3
|
+
quant_met/cli/__init__.py,sha256=OHV3Ia-aXPP2kGYoEQsSbqQaLMaOd07K7jdE-u6u2y0,299
|
4
|
+
quant_met/cli/_utils.py,sha256=211xxeO1a24AGMg6H-7Ls3gJhjP54Tws7OTmzW2-Q0Q,986
|
5
|
+
quant_met/cli/crit_temp.py,sha256=DVdxw_lLZPA7Eu_NvCKxcDLrKBJBOe0W6df4Js2Su9U,2072
|
6
|
+
quant_met/cli/main.py,sha256=myDASJvAhFp5olOy0sbilijyCYkztUMUkPfAiblhTo0,1916
|
7
|
+
quant_met/cli/scf.py,sha256=eU6h6BPqB19-1r2tGhHOhG_nT5xUxmu57uzlEDkicJs,2658
|
8
|
+
quant_met/geometry/__init__.py,sha256=Cxp0-SnqgAwUov0z1xWJ3r2JCL1eiYOX96g73O4X8x4,637
|
9
|
+
quant_met/geometry/base_lattice.py,sha256=OF6diQaryrm5RI7z8Eq-fYibzxaAriJSMQZItoi-qAw,2694
|
10
|
+
quant_met/geometry/bz_path.py,sha256=HcBENq6LoGxZ8p3H6qMG-gmJ0H3oS5qpMv8T5Rm5aaw,2548
|
11
|
+
quant_met/geometry/graphene.py,sha256=XikDAtNCCBHDbTEJXyu3U18I1adGEKek8B_ArridrpA,1672
|
12
|
+
quant_met/geometry/square.py,sha256=DWNGRU2K0uXIKkIgDiY9dmXIfz5u3S2sQ950FTQCeWY,1610
|
13
|
+
quant_met/mean_field/__init__.py,sha256=jDz2DU8D9WeRKu2fWtJMhxeVUg511LZDLBX9jH3dfrk,603
|
14
|
+
quant_met/mean_field/_utils.py,sha256=wMF0dpVGVYsVjx7Brot7eqqyUqZrl03KUfF1nvCSTXA,401
|
15
|
+
quant_met/mean_field/search_crit_temp.py,sha256=iEHAJFKuULUuZnoxHyyXIBUKLAVX44rZPLja4Wuavp0,8962
|
16
|
+
quant_met/mean_field/self_consistency.py,sha256=1KQEhnCBrNYRzIj4TnC9sQPlp9hXR_jBPDA3VrGprPw,3444
|
17
|
+
quant_met/mean_field/hamiltonians/__init__.py,sha256=bjbkP4kC9yuTAsRJnVSSMDdjvi8P0AQp_00Sg0JMIrs,726
|
18
|
+
quant_met/mean_field/hamiltonians/base_hamiltonian.py,sha256=uEL4Nk7EdL8Bf73pDtw85JvfHPh2jlJQyq37GceT1iE,29385
|
19
|
+
quant_met/mean_field/hamiltonians/dressed_graphene.py,sha256=e6m51P2JQvwUhx-OP7RIQfAZUQoNxeM0S9wpElBttT8,4093
|
20
|
+
quant_met/mean_field/hamiltonians/graphene.py,sha256=bOIYGGoUwtqtWr1nqLD1lRKngjgtsmXVyxbig0luPeQ,3321
|
21
|
+
quant_met/mean_field/hamiltonians/one_band_tight_binding.py,sha256=P0N6upQCloRCorrB-Tsapkc681hetLR3SgEB-cnS508,2557
|
22
|
+
quant_met/mean_field/hamiltonians/three_band_tight_binding.py,sha256=6SWjjExppXURnsuRM8CX7rAKt-sxmgKBuOg2d4dzwdg,3340
|
23
|
+
quant_met/mean_field/hamiltonians/two_band_tight_binding.py,sha256=PSX2TsS3J2afKvKcurwhq-2XC2gbIle3iN4hQM_lq9E,2910
|
24
|
+
quant_met/parameters/__init__.py,sha256=8bTFW1owqGixUYjrT5K4XT5YTmrVtGlLS5UBHp7gnBA,1052
|
25
|
+
quant_met/parameters/hamiltonians.py,sha256=FLfRpNX3uA0MV1e3Obyb_J7VM5xwk9E4z6NKMmFd6Cw,6091
|
26
|
+
quant_met/parameters/main.py,sha256=j9-G-UgEuv9YYmDB7MPhlr67kpHhoCC5GtYN5FVkcgc,2370
|
27
|
+
quant_met/plotting/__init__.py,sha256=PrGNm8fVY4WafQPiNgE22boaG7HXoeeG_u82jFv8Npg,568
|
28
|
+
quant_met/plotting/plotting.py,sha256=vxfzYdrKIIrjC79GHb61AU_Ngu3TFrbOFujqsgitb0A,6637
|
29
|
+
quant_met-0.0.27.dist-info/METADATA,sha256=Mohh2BTtINTLuG0S7uF6e_VSvpW7Zi85DL2r0Z1DUGU,2051
|
30
|
+
quant_met-0.0.27.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
31
|
+
quant_met-0.0.27.dist-info/entry_points.txt,sha256=1Al3Kt-cMeQxwMp84ZSNL0qFwlbOVBu1o8A19MH8lEU,48
|
32
|
+
quant_met-0.0.27.dist-info/licenses/LICENSE.txt,sha256=QO_duPQihSJlaxSLxPAXo52X3esROP5wBkhxqBd1Z4E,1104
|
33
|
+
quant_met-0.0.27.dist-info/RECORD,,
|
quant_met/cli/dmft.py
DELETED
@@ -1,96 +0,0 @@
|
|
1
|
-
# SPDX-FileCopyrightText: 2024 Tjark Sievers
|
2
|
-
#
|
3
|
-
# SPDX-License-Identifier: MIT
|
4
|
-
|
5
|
-
"""Functions to run self-consistent calculation for the order parameter."""
|
6
|
-
|
7
|
-
import logging
|
8
|
-
from pathlib import Path
|
9
|
-
|
10
|
-
from h5 import HDFArchive
|
11
|
-
from mpi4py import MPI
|
12
|
-
from triqs.gf import Gf
|
13
|
-
|
14
|
-
from quant_met.cli._utils import _hamiltonian_factory, _tbl_factory
|
15
|
-
from quant_met.dmft.dmft_loop import dmft_loop
|
16
|
-
from quant_met.dmft.utils import get_gloc
|
17
|
-
from quant_met.parameters import Parameters
|
18
|
-
|
19
|
-
logger = logging.getLogger(__name__)
|
20
|
-
|
21
|
-
|
22
|
-
def dmft_scf(parameters: Parameters) -> None:
|
23
|
-
"""Self-consistent calculation for the order parameter.
|
24
|
-
|
25
|
-
Parameters
|
26
|
-
----------
|
27
|
-
parameters: Parameters
|
28
|
-
An instance of Parameters containing control settings, the model,
|
29
|
-
and k-point specifications for the self-consistency calculation.
|
30
|
-
"""
|
31
|
-
result_path = Path(parameters.control.outdir)
|
32
|
-
result_path.mkdir(exist_ok=True, parents=True)
|
33
|
-
|
34
|
-
h = _hamiltonian_factory(parameters=parameters.model, classname=parameters.model.name)
|
35
|
-
tbl = _tbl_factory(h=h)
|
36
|
-
|
37
|
-
kmesh = tbl.get_kmesh(n_k=(parameters.k_points.nk1, parameters.k_points.nk2, 1))
|
38
|
-
|
39
|
-
enk = tbl.fourier(kmesh)
|
40
|
-
n_orbitals = tbl.n_orbitals
|
41
|
-
nambu_shape = (2 * n_orbitals, 2 * n_orbitals)
|
42
|
-
h0_nambu_k = Gf(mesh=kmesh, target_shape=nambu_shape)
|
43
|
-
for k in kmesh:
|
44
|
-
h0_nambu_k[k][:n_orbitals, :n_orbitals] = enk(k)
|
45
|
-
h0_nambu_k[k][n_orbitals:, n_orbitals:] = -enk(-k)
|
46
|
-
|
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
|
-
)
|
54
|
-
|
55
|
-
solver = dmft_loop(
|
56
|
-
tbl=tbl,
|
57
|
-
h=h,
|
58
|
-
h0_nambu_k=h0_nambu_k,
|
59
|
-
n_bath=parameters.control.n_bath,
|
60
|
-
n_iw=parameters.control.n_iw,
|
61
|
-
broadening=parameters.control.broadening,
|
62
|
-
n_w=parameters.control.n_w,
|
63
|
-
w_mixing=parameters.control.wmixing,
|
64
|
-
n_success=parameters.control.n_success,
|
65
|
-
xmu=xmu,
|
66
|
-
kmesh=kmesh,
|
67
|
-
epsilon=parameters.control.conv_treshold,
|
68
|
-
max_iter=parameters.control.max_iter,
|
69
|
-
)
|
70
|
-
|
71
|
-
# Calculate local Green's function on the real axis
|
72
|
-
s_w = solver.Sigma_w["up"]
|
73
|
-
s_an_w = solver.Sigma_an_w["up_dn"]
|
74
|
-
s_iw = solver.Sigma_iw["up"]
|
75
|
-
s_an_iw = solver.Sigma_an_iw["up_dn"]
|
76
|
-
g_iw, g_an_iw = get_gloc(s_iw, s_an_iw, h0_nambu_k, xmu, parameters.control.broadening, kmesh)
|
77
|
-
g_w, g_an_w = get_gloc(s_w, s_an_w, h0_nambu_k, xmu, parameters.control.broadening, kmesh)
|
78
|
-
|
79
|
-
comm = MPI.COMM_WORLD
|
80
|
-
rank = comm.Get_rank()
|
81
|
-
|
82
|
-
if rank == 0:
|
83
|
-
data_dir = Path("data/DressedGraphene/dmft/sweep_V/")
|
84
|
-
data_dir.mkdir(parents=True, exist_ok=True)
|
85
|
-
|
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
|
95
|
-
|
96
|
-
logger.info("Results saved to %s", result_file)
|
quant_met/dmft/__init__.py
DELETED
quant_met/dmft/dmft_loop.py
DELETED
@@ -1,178 +0,0 @@
|
|
1
|
-
# SPDX-FileCopyrightText: 2024 Tjark Sievers
|
2
|
-
#
|
3
|
-
# SPDX-License-Identifier: MIT
|
4
|
-
|
5
|
-
"""Functions to run self-consistent calculation for the order parameter."""
|
6
|
-
|
7
|
-
import logging
|
8
|
-
from itertools import product
|
9
|
-
|
10
|
-
import numpy as np
|
11
|
-
import numpy.typing as npt
|
12
|
-
from edipack2triqs.fit import BathFittingParams
|
13
|
-
from edipack2triqs.solver import EDIpackSolver
|
14
|
-
from triqs.gf import BlockGf, Gf, MeshBrZone
|
15
|
-
from triqs.lattice.tight_binding import TBLattice
|
16
|
-
from triqs.operators import c, c_dag, dagger, n
|
17
|
-
|
18
|
-
from quant_met.mean_field.hamiltonians import BaseHamiltonian
|
19
|
-
from quant_met.parameters import GenericParameters
|
20
|
-
|
21
|
-
from .utils import _check_convergence, _dmft_weiss_field, get_gloc
|
22
|
-
|
23
|
-
logger = logging.getLogger(__name__)
|
24
|
-
|
25
|
-
|
26
|
-
def dmft_loop(
|
27
|
-
tbl: TBLattice,
|
28
|
-
h: BaseHamiltonian[GenericParameters],
|
29
|
-
h0_nambu_k: Gf,
|
30
|
-
n_bath: float,
|
31
|
-
n_iw: int,
|
32
|
-
broadening: float,
|
33
|
-
n_w: int,
|
34
|
-
w_mixing: float,
|
35
|
-
n_success: int,
|
36
|
-
xmu: npt.NDArray[np.float64],
|
37
|
-
kmesh: MeshBrZone,
|
38
|
-
epsilon: float,
|
39
|
-
max_iter: int,
|
40
|
-
) -> EDIpackSolver:
|
41
|
-
"""DMFT loop.
|
42
|
-
|
43
|
-
Parameters
|
44
|
-
----------
|
45
|
-
tbl
|
46
|
-
h
|
47
|
-
h0_nambu_k
|
48
|
-
n_bath
|
49
|
-
n_iw
|
50
|
-
broadening
|
51
|
-
n_w
|
52
|
-
w_mixing
|
53
|
-
n_success
|
54
|
-
xmu
|
55
|
-
kmesh
|
56
|
-
epsilon
|
57
|
-
max_iter
|
58
|
-
|
59
|
-
Returns
|
60
|
-
-------
|
61
|
-
EDIpackSolver
|
62
|
-
|
63
|
-
"""
|
64
|
-
energy_window = (-2.0 * h.hopping_gr, 2.0 * h.hopping_gr)
|
65
|
-
|
66
|
-
spins = ("up", "dn")
|
67
|
-
orbs = range(tbl.n_orbitals)
|
68
|
-
|
69
|
-
# Fundamental sets for impurity degrees of freedom
|
70
|
-
fops_imp_up = [("up", o) for o in orbs]
|
71
|
-
fops_imp_dn = [("dn", o) for o in orbs]
|
72
|
-
|
73
|
-
# Fundamental sets for bath degrees of freedom
|
74
|
-
fops_bath_up = [("B_up", i) for i in range(tbl.n_orbitals * n_bath)]
|
75
|
-
fops_bath_dn = [("B_dn", i) for i in range(tbl.n_orbitals * n_bath)]
|
76
|
-
|
77
|
-
# Non-interacting part of the impurity Hamiltonian
|
78
|
-
h_loc = -xmu * np.eye(tbl.n_orbitals)
|
79
|
-
hamiltonian = sum(
|
80
|
-
h_loc[o1, o2] * c_dag(spin, o1) * c(spin, o2) for spin, o1, o2 in product(spins, orbs, orbs)
|
81
|
-
)
|
82
|
-
|
83
|
-
ust = 0
|
84
|
-
jh = 0
|
85
|
-
jx = 0
|
86
|
-
jp = 0
|
87
|
-
|
88
|
-
# Interaction part
|
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
|
-
)
|
104
|
-
|
105
|
-
# Matrix dimensions of eps and V: 3 orbitals x 2 bath states
|
106
|
-
eps = np.array([[-1.0, -0.5, 0.5, 1.0] for _ in range(tbl.n_orbitals)])
|
107
|
-
v = 0.5 * np.ones((tbl.n_orbitals, n_bath))
|
108
|
-
d = -0.2 * np.eye(tbl.n_orbitals * n_bath)
|
109
|
-
|
110
|
-
# Bath
|
111
|
-
hamiltonian += sum(
|
112
|
-
eps[o, nu] * c_dag("B_" + s, o * n_bath + nu) * c("B_" + s, o * n_bath + nu)
|
113
|
-
for s, o, nu in product(spins, orbs, range(n_bath))
|
114
|
-
)
|
115
|
-
|
116
|
-
hamiltonian += sum(
|
117
|
-
v[o, nu]
|
118
|
-
* (c_dag(s, o) * c("B_" + s, o * n_bath + nu) + c_dag("B_" + s, o * n_bath + nu) * c(s, o))
|
119
|
-
for s, o, nu in product(spins, orbs, range(n_bath))
|
120
|
-
)
|
121
|
-
|
122
|
-
# Anomalous bath
|
123
|
-
hamiltonian += sum(
|
124
|
-
d[o, q] * (c("B_up", o) * c("B_dn", q)) + dagger(d[o, q] * (c("B_up", o) * c("B_dn", q)))
|
125
|
-
for o, q in product(range(tbl.n_orbitals * n_bath), range(tbl.n_orbitals * n_bath))
|
126
|
-
)
|
127
|
-
|
128
|
-
# Create solver object
|
129
|
-
fit_params = BathFittingParams(method="minimize", grad="numeric")
|
130
|
-
solver = EDIpackSolver(
|
131
|
-
hamiltonian,
|
132
|
-
fops_imp_up,
|
133
|
-
fops_imp_dn,
|
134
|
-
fops_bath_up,
|
135
|
-
fops_bath_dn,
|
136
|
-
lanc_dim_threshold=1024,
|
137
|
-
verbose=1,
|
138
|
-
bath_fitting_params=fit_params,
|
139
|
-
)
|
140
|
-
|
141
|
-
for iloop in range(max_iter):
|
142
|
-
print(f"\nLoop {iloop + 1} of {max_iter}")
|
143
|
-
|
144
|
-
# Solve the effective impurity problem
|
145
|
-
solver.solve(
|
146
|
-
beta=h.beta,
|
147
|
-
n_iw=n_iw,
|
148
|
-
energy_window=energy_window,
|
149
|
-
n_w=n_w,
|
150
|
-
broadening=broadening,
|
151
|
-
)
|
152
|
-
|
153
|
-
# Normal and anomalous components of computed self-energy
|
154
|
-
s_iw = solver.Sigma_iw["up"]
|
155
|
-
s_an_iw = solver.Sigma_an_iw["up_dn"]
|
156
|
-
|
157
|
-
# Compute local Green's function
|
158
|
-
g_iw, g_an_iw = get_gloc(s_iw, s_an_iw, h0_nambu_k, xmu, broadening, kmesh)
|
159
|
-
# Compute Weiss field
|
160
|
-
g0_iw, g0_an_iw = _dmft_weiss_field(g_iw, g_an_iw, s_iw, s_an_iw)
|
161
|
-
|
162
|
-
# Bath fitting and mixing
|
163
|
-
g0_iw_full = BlockGf(name_list=spins, block_list=[g0_iw, g0_iw])
|
164
|
-
g0_an_iw_full = BlockGf(name_list=["up_dn"], block_list=[g0_an_iw])
|
165
|
-
|
166
|
-
bath_new = solver.chi2_fit_bath(g0_iw_full, g0_an_iw_full)[0]
|
167
|
-
solver.bath = w_mixing * bath_new + (1 - w_mixing) * solver.bath
|
168
|
-
|
169
|
-
# Check convergence of the Weiss field
|
170
|
-
g0 = np.asarray([g0_iw.data, g0_an_iw.data])
|
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)
|
174
|
-
|
175
|
-
if converged:
|
176
|
-
break
|
177
|
-
|
178
|
-
return solver
|
quant_met/dmft/utils.py
DELETED
@@ -1,207 +0,0 @@
|
|
1
|
-
# SPDX-FileCopyrightText: 2025 Tjark Sievers
|
2
|
-
#
|
3
|
-
# SPDX-License-Identifier: MIT
|
4
|
-
|
5
|
-
"""Utility functions used in DMFT."""
|
6
|
-
|
7
|
-
import sys
|
8
|
-
from pathlib import Path
|
9
|
-
|
10
|
-
import numpy as np
|
11
|
-
import numpy.typing as npt
|
12
|
-
from mpi4py import MPI
|
13
|
-
from triqs.gf import Gf, MeshBrZone, MeshImFreq, MeshProduct, conjugate, dyson, inverse, iOmega_n
|
14
|
-
|
15
|
-
|
16
|
-
def _check_convergence(
|
17
|
-
func: npt.NDArray[np.complex128], threshold: float = 1e-6, nsuccess: int = 1, nloop: int = 100
|
18
|
-
) -> tuple[float, bool]:
|
19
|
-
comm = MPI.COMM_WORLD
|
20
|
-
rank = comm.Get_rank()
|
21
|
-
|
22
|
-
func = np.asarray(func)
|
23
|
-
err = 1.0
|
24
|
-
conv_bool = False
|
25
|
-
outfile = "error.err"
|
26
|
-
|
27
|
-
if globals().get("_whichiter") is None:
|
28
|
-
global _whichiter
|
29
|
-
global _gooditer
|
30
|
-
global _oldfunc
|
31
|
-
|
32
|
-
_whichiter = 0
|
33
|
-
_gooditer = 0
|
34
|
-
_oldfunc = np.zeros_like(func)
|
35
|
-
|
36
|
-
green = "\033[92m"
|
37
|
-
yellow = "\033[93m"
|
38
|
-
red = "\033[91m"
|
39
|
-
bold = "\033[1m"
|
40
|
-
colorend = "\033[0m"
|
41
|
-
|
42
|
-
# only the master does the calculation
|
43
|
-
if rank == 0:
|
44
|
-
errvec = np.real(np.sum(abs(func - _oldfunc), axis=-1) / np.sum(abs(func), axis=-1))
|
45
|
-
# first iteration
|
46
|
-
if _whichiter == 0:
|
47
|
-
errvec = np.ones_like(errvec)
|
48
|
-
# remove nan compoments, if some component is divided by zero
|
49
|
-
if np.prod(np.shape(errvec)) > 1:
|
50
|
-
errvec = errvec[~np.isnan(errvec)]
|
51
|
-
errmax = np.max(errvec)
|
52
|
-
errmin = np.min(errvec)
|
53
|
-
err = np.average(errvec)
|
54
|
-
_oldfunc = np.copy(func)
|
55
|
-
if err < threshold:
|
56
|
-
_gooditer += 1 # increase good iterations count
|
57
|
-
else:
|
58
|
-
_gooditer = 0 # reset good iterations count
|
59
|
-
_whichiter += 1
|
60
|
-
conv_bool = ((err < threshold) and (_gooditer > nsuccess) and (_whichiter < nloop)) or (
|
61
|
-
_whichiter >= nloop
|
62
|
-
)
|
63
|
-
|
64
|
-
# write out
|
65
|
-
with Path(outfile).open("a") as file:
|
66
|
-
file.write(f"{_whichiter} {err:.6e}\n")
|
67
|
-
if np.prod(np.shape(errvec)) > 1:
|
68
|
-
with Path(outfile + ".max").open("a") as file:
|
69
|
-
file.write(f"{_whichiter} {errmax:.6e}\n")
|
70
|
-
with Path(outfile + ".min").open("a") as file:
|
71
|
-
file.write(f"{_whichiter} {errmin:.6e}\n")
|
72
|
-
with Path(outfile + ".distribution").open("a") as file:
|
73
|
-
file.write(
|
74
|
-
f"{_whichiter}" + " ".join([f"{x:.6e}" for x in errvec.flatten()]) + "\n"
|
75
|
-
)
|
76
|
-
|
77
|
-
# print convergence message:
|
78
|
-
if conv_bool:
|
79
|
-
colorprefix = bold + green
|
80
|
-
elif (err < threshold) and (_gooditer <= nsuccess):
|
81
|
-
colorprefix = bold + yellow
|
82
|
-
else:
|
83
|
-
colorprefix = bold + red
|
84
|
-
|
85
|
-
if _whichiter < nloop:
|
86
|
-
if np.prod(np.shape(errvec)) > 1:
|
87
|
-
print(colorprefix + "max error=" + colorend + f"{errmax:.6e}")
|
88
|
-
print(
|
89
|
-
colorprefix
|
90
|
-
+ " " * (np.prod(np.shape(errvec)) > 1)
|
91
|
-
+ "error="
|
92
|
-
+ colorend
|
93
|
-
+ f"{err:.6e}"
|
94
|
-
)
|
95
|
-
if np.prod(np.shape(errvec)) > 1:
|
96
|
-
print(colorprefix + "min error=" + colorend + f"{errmin:.6e}")
|
97
|
-
else:
|
98
|
-
if np.prod(np.shape(errvec)) > 1:
|
99
|
-
print(colorprefix + "max error=" + colorend + f"{errmax:.6e}")
|
100
|
-
print(
|
101
|
-
colorprefix
|
102
|
-
+ " " * (np.prod(np.shape(errvec)) > 1)
|
103
|
-
+ "error="
|
104
|
-
+ colorend
|
105
|
-
+ f"{err:.6e}"
|
106
|
-
)
|
107
|
-
if np.prod(np.shape(errvec)) > 1:
|
108
|
-
print(colorprefix + "min error=" + colorend + f"{errmin:.6e}")
|
109
|
-
print("Not converged after " + str(nloop) + " iterations.")
|
110
|
-
with Path("ERROR.README").open("a") as file:
|
111
|
-
file.write("Not converged after " + str(nloop) + " iterations.")
|
112
|
-
print("\n")
|
113
|
-
|
114
|
-
# pass to other cores:
|
115
|
-
conv_bool = comm.bcast(conv_bool, root=0)
|
116
|
-
err = comm.bcast(err, root=0)
|
117
|
-
sys.stdout.flush()
|
118
|
-
return err, conv_bool
|
119
|
-
|
120
|
-
|
121
|
-
def get_gloc(
|
122
|
-
s: Gf,
|
123
|
-
s_an: Gf,
|
124
|
-
h0_nambu_k: Gf,
|
125
|
-
xmu: npt.NDArray[np.complex128],
|
126
|
-
broadening: float,
|
127
|
-
kmesh: MeshBrZone,
|
128
|
-
) -> tuple[Gf, Gf]:
|
129
|
-
"""Compute local GF from bare lattice Hamiltonian and self-energy.
|
130
|
-
|
131
|
-
Parameters
|
132
|
-
----------
|
133
|
-
s
|
134
|
-
s_an
|
135
|
-
h0_nambu_k
|
136
|
-
|
137
|
-
Returns
|
138
|
-
-------
|
139
|
-
tuple[Gf, Gf]
|
140
|
-
|
141
|
-
"""
|
142
|
-
z = Gf(mesh=s.mesh, target_shape=h0_nambu_k.target_shape)
|
143
|
-
n_orbitals = z.target_shape[0] // 2
|
144
|
-
if isinstance(s.mesh, MeshImFreq):
|
145
|
-
z[:n_orbitals, :n_orbitals] << iOmega_n + xmu - s
|
146
|
-
z[:n_orbitals, n_orbitals:] << -s_an
|
147
|
-
z[n_orbitals:, :n_orbitals] << -s_an
|
148
|
-
z[n_orbitals:, n_orbitals:] << iOmega_n - xmu + conjugate(s)
|
149
|
-
else:
|
150
|
-
z[:n_orbitals, n_orbitals:] << -s_an
|
151
|
-
z[n_orbitals:, :n_orbitals] << -s_an
|
152
|
-
for w in z.mesh:
|
153
|
-
z[w][:n_orbitals, :n_orbitals] = (w + 1j * broadening + xmu) * np.eye(n_orbitals) - s[w]
|
154
|
-
z[w][n_orbitals:, n_orbitals:] = (w + 1j * broadening - xmu) * np.eye(
|
155
|
-
n_orbitals
|
156
|
-
) + conjugate(s(-w))
|
157
|
-
|
158
|
-
g_k = Gf(mesh=MeshProduct(kmesh, z.mesh), target_shape=h0_nambu_k.target_shape)
|
159
|
-
for k in kmesh:
|
160
|
-
g_k[k, :] << inverse(z - h0_nambu_k[k])
|
161
|
-
|
162
|
-
g_loc_nambu = sum(g_k[k, :] for k in kmesh) / len(kmesh)
|
163
|
-
|
164
|
-
g_loc = s.copy()
|
165
|
-
g_loc_an = s_an.copy()
|
166
|
-
g_loc[:] = g_loc_nambu[:n_orbitals, :n_orbitals]
|
167
|
-
g_loc_an[:] = g_loc_nambu[:n_orbitals, n_orbitals:]
|
168
|
-
return g_loc, g_loc_an
|
169
|
-
|
170
|
-
|
171
|
-
def _dmft_weiss_field(g_iw: Gf, g_an_iw: Gf, s_iw: Gf, s_an_iw: Gf) -> tuple[Gf, Gf]:
|
172
|
-
"""Compute Weiss field from local GF and self-energy.
|
173
|
-
|
174
|
-
Parameters
|
175
|
-
----------
|
176
|
-
g_iw
|
177
|
-
g_an_iw
|
178
|
-
s_iw
|
179
|
-
s_an_iw
|
180
|
-
|
181
|
-
Returns
|
182
|
-
-------
|
183
|
-
tuple[Gf, Gf]
|
184
|
-
|
185
|
-
"""
|
186
|
-
n_orbitals = g_iw.target_shape[0]
|
187
|
-
nambu_shape = (2 * n_orbitals, 2 * n_orbitals)
|
188
|
-
g_nambu_iw = Gf(mesh=g_iw.mesh, target_shape=nambu_shape)
|
189
|
-
s_nambu_iw = Gf(mesh=s_iw.mesh, target_shape=nambu_shape)
|
190
|
-
|
191
|
-
g_nambu_iw[:n_orbitals, :n_orbitals] = g_iw
|
192
|
-
g_nambu_iw[:n_orbitals, n_orbitals:] = g_an_iw
|
193
|
-
g_nambu_iw[n_orbitals:, :n_orbitals] = g_an_iw
|
194
|
-
g_nambu_iw[n_orbitals:, n_orbitals:] = -conjugate(g_iw)
|
195
|
-
|
196
|
-
s_nambu_iw[:n_orbitals, :n_orbitals] = s_iw
|
197
|
-
s_nambu_iw[:n_orbitals, n_orbitals:] = s_an_iw
|
198
|
-
s_nambu_iw[n_orbitals:, :n_orbitals] = s_an_iw
|
199
|
-
s_nambu_iw[n_orbitals:, n_orbitals:] = -conjugate(s_iw)
|
200
|
-
|
201
|
-
g0_nambu_iw = dyson(G_iw=g_nambu_iw, Sigma_iw=s_nambu_iw)
|
202
|
-
|
203
|
-
g0_iw = g_iw.copy()
|
204
|
-
g0_an_iw = g_an_iw.copy()
|
205
|
-
g0_iw[:] = g0_nambu_iw[:n_orbitals, :n_orbitals]
|
206
|
-
g0_an_iw[:] = g0_nambu_iw[:n_orbitals, n_orbitals:]
|
207
|
-
return g0_iw, g0_an_iw
|
@@ -1,37 +0,0 @@
|
|
1
|
-
quant_met/__init__.py,sha256=ZO1UFz1awUYTI7B9ZkBwucvDz7GMGXnLLUGnEwLBhkc,155
|
2
|
-
quant_met/utils.py,sha256=J3kCbKg0tPEoGJExX04QwifHn4ch482J8IcmRQxIfP4,2067
|
3
|
-
quant_met/cli/__init__.py,sha256=nGFXhK8zWyEKQtsQTyJWfEOLFOHTCjZnfEcrVb2dARc,254
|
4
|
-
quant_met/cli/_utils.py,sha256=MKHvkxudWH-px07lDz0_V1AWiCCvj_IsBYbocfL-r7Y,2036
|
5
|
-
quant_met/cli/crit_temp.py,sha256=t9sPZKORl6dpa1UNAOMH2gDmeQxf80iFH7p_L3FI5q8,2027
|
6
|
-
quant_met/cli/dmft.py,sha256=ct6e1Wd8o7V3VP7DB7pqPxyF5pbrR2mb-J8pUkP9UPE,3101
|
7
|
-
quant_met/cli/main.py,sha256=1D1-KhGkzibts9b7Cv3JsR5Q-PnkowBWKE1Owc8tdD8,2010
|
8
|
-
quant_met/cli/scf.py,sha256=3_rwtQHwypFjAwjrsO2r2sqjJKpNiDLAj6svU52CCcU,2613
|
9
|
-
quant_met/dmft/__init__.py,sha256=2H0bN40Tvn-VnZgix6MugN0Q6iNwD_9AQxUC_LVLh70,99
|
10
|
-
quant_met/dmft/dmft_loop.py,sha256=fH8v39I5yIY2iY5RaID43El1V0nxLewAfohNsq987_A,5272
|
11
|
-
quant_met/dmft/utils.py,sha256=JO66kuTXruYCwNoVL0aFS55D3tV7Ii3v7hC9OpuWfF8,6636
|
12
|
-
quant_met/geometry/__init__.py,sha256=2N8l0-2-PhEOQxaUO7e8Dqy5oaxt2y9343XENDTCGPE,592
|
13
|
-
quant_met/geometry/base_lattice.py,sha256=OJNDMyzJB-0hK1BLgF-SV4jUYfOSUksIv1XG1bH-zyY,2649
|
14
|
-
quant_met/geometry/bz_path.py,sha256=vwN5RxyrgFkHTSqm_6cWuOigICgxa-FX5NZ7SkgKScw,2503
|
15
|
-
quant_met/geometry/graphene.py,sha256=ZLE55wV1E-jRCkGxW66pca2y5VWaNtMmXiXi-HB6bgs,1627
|
16
|
-
quant_met/geometry/square.py,sha256=17XZH79lK9TeeDtXiBBa8rd2d9kv5yt2S9F6te0YZPU,1565
|
17
|
-
quant_met/mean_field/__init__.py,sha256=Unweog9Tst1NxUMQ4X1OYiUQtyxI2ho-OQoCaekoMFk,597
|
18
|
-
quant_met/mean_field/_utils.py,sha256=7hr0DDSdIqjft5Jjluvbw_HGoNLWgYJTxyuPJJvhBnc,356
|
19
|
-
quant_met/mean_field/search_crit_temp.py,sha256=-A1ZegUOQXxh_SwmQeqMZCptnSLWuxDJsjdZK9XK-zE,8917
|
20
|
-
quant_met/mean_field/self_consistency.py,sha256=YY_zhCurxOK3RLkK-Hglfkx33uhsvqpoAKOP4FuPdfo,3371
|
21
|
-
quant_met/mean_field/hamiltonians/__init__.py,sha256=r-8TaLqRnRbAro-TMIyxzCCZHwVqyKrausODpQJb2tw,681
|
22
|
-
quant_met/mean_field/hamiltonians/base_hamiltonian.py,sha256=0qRfSpiE5jybv4GmBGmuNKFl1fkE4fzXG15II1IyIu8,29374
|
23
|
-
quant_met/mean_field/hamiltonians/dressed_graphene.py,sha256=iPQshQqvtWf-NbeSdn8VbtuSU1g7maKUjFPfoji8zwk,4135
|
24
|
-
quant_met/mean_field/hamiltonians/graphene.py,sha256=sa3H8jVq9Fkc_qcz5gJTCMgN8YD3N18JWLRBImhLyxo,3276
|
25
|
-
quant_met/mean_field/hamiltonians/one_band_tight_binding.py,sha256=DZXaD95yWv1VZSMqgxkqEZv3PGihNGy7PuqupnN75ew,2512
|
26
|
-
quant_met/mean_field/hamiltonians/three_band_tight_binding.py,sha256=g8XNImzCn_6CRYKDYI6sy3q6_TBYUDxDmQZ-AqenXTE,3295
|
27
|
-
quant_met/mean_field/hamiltonians/two_band_tight_binding.py,sha256=DMySc94YQ1M2nPIKZjfc-Ax5Ysf7inwSuVKyd6dfqr0,2865
|
28
|
-
quant_met/parameters/__init__.py,sha256=9yu7i0J-O3QxSicnLEh2ci7FSMwB8bPW0pbl8KWHJUs,1007
|
29
|
-
quant_met/parameters/hamiltonians.py,sha256=PiWVV-miCdT4Z9GWloDVvIU_1QpRHHV-zVOga7DWwCw,6046
|
30
|
-
quant_met/parameters/main.py,sha256=QP7Z24-QePMcy6txujqxbx5ztQTdC67m6elNsJtGtXQ,2325
|
31
|
-
quant_met/plotting/__init__.py,sha256=IDgV6juJ0VfcJHppD-vnPH6w8wVuAC35eSeLxKzqyBc,523
|
32
|
-
quant_met/plotting/plotting.py,sha256=4ZYclWJH3hlE8S7b7bL_JJlP3CKaCGcVzdIsqolCAaM,6592
|
33
|
-
quant_met-0.0.25.dist-info/METADATA,sha256=YQrLNOTWAkjrK8nXd4DwRi1_NQ6oJSypbzWpyJzlSHE,1978
|
34
|
-
quant_met-0.0.25.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
35
|
-
quant_met-0.0.25.dist-info/entry_points.txt,sha256=1Al3Kt-cMeQxwMp84ZSNL0qFwlbOVBu1o8A19MH8lEU,48
|
36
|
-
quant_met-0.0.25.dist-info/licenses/LICENSE.txt,sha256=QO_duPQihSJlaxSLxPAXo52X3esROP5wBkhxqBd1Z4E,1104
|
37
|
-
quant_met-0.0.25.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|