quant-met 0.0.6__py3-none-any.whl → 0.0.8__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/cli/__init__.py +22 -0
- quant_met/cli/main.py +34 -0
- quant_met/cli/scf.py +42 -0
- quant_met/geometry/__init__.py +12 -3
- quant_met/geometry/graphene.py +1 -1
- quant_met/mean_field/__init__.py +9 -32
- quant_met/mean_field/hamiltonians/__init__.py +34 -0
- quant_met/mean_field/{base_hamiltonian.py → hamiltonians/base_hamiltonian.py} +125 -16
- quant_met/mean_field/{eg_x.py → hamiltonians/dressed_graphene.py} +48 -25
- quant_met/mean_field/{graphene.py → hamiltonians/graphene.py} +42 -20
- quant_met/mean_field/{one_band_tight_binding.py → hamiltonians/one_band_tight_binding.py} +39 -19
- quant_met/mean_field/quantum_metric.py +24 -25
- quant_met/mean_field/self_consistency.py +22 -18
- quant_met/mean_field/superfluid_weight.py +1 -1
- quant_met/parameters/__init__.py +21 -0
- quant_met/parameters/hamiltonians.py +47 -0
- quant_met/parameters/main.py +40 -0
- quant_met/utils.py +1 -1
- {quant_met-0.0.6.dist-info → quant_met-0.0.8.dist-info}/METADATA +9 -6
- quant_met-0.0.8.dist-info/RECORD +31 -0
- {quant_met-0.0.6.dist-info → quant_met-0.0.8.dist-info}/WHEEL +1 -1
- quant_met-0.0.8.dist-info/entry_points.txt +3 -0
- quant_met/mean_field/free_energy.py +0 -130
- quant_met-0.0.6.dist-info/RECORD +0 -24
- {quant_met-0.0.6.dist-info → quant_met-0.0.8.dist-info}/LICENSE.txt +0 -0
- {quant_met-0.0.6.dist-info → quant_met-0.0.8.dist-info}/LICENSES/MIT.txt +0 -0
@@ -4,46 +4,60 @@
|
|
4
4
|
|
5
5
|
"""Provides the implementation for Graphene."""
|
6
6
|
|
7
|
+
import pathlib
|
7
8
|
from typing import Any
|
8
9
|
|
10
|
+
import h5py
|
9
11
|
import numpy as np
|
10
12
|
import numpy.typing as npt
|
11
13
|
|
12
|
-
from .
|
14
|
+
from quant_met.geometry import GrapheneLattice
|
15
|
+
from quant_met.mean_field._utils import _check_valid_array, _validate_float
|
16
|
+
from quant_met.parameters.hamiltonians import GrapheneParameters
|
17
|
+
|
13
18
|
from .base_hamiltonian import BaseHamiltonian
|
14
19
|
|
15
20
|
|
16
|
-
class
|
21
|
+
class Graphene(BaseHamiltonian):
|
17
22
|
"""Hamiltonian for Graphene."""
|
18
23
|
|
19
24
|
def __init__(
|
20
25
|
self,
|
21
|
-
|
22
|
-
lattice_constant: float,
|
23
|
-
chemical_potential: float,
|
24
|
-
hubbard_int_gr: float,
|
25
|
-
delta: npt.NDArray[np.float64] | None = None,
|
26
|
+
parameters: GrapheneParameters,
|
26
27
|
*args: tuple[Any, ...],
|
27
28
|
**kwargs: tuple[dict[str, Any], ...],
|
28
29
|
) -> None:
|
29
30
|
del args
|
30
31
|
del kwargs
|
31
|
-
self.
|
32
|
-
|
32
|
+
self._name = parameters.name
|
33
|
+
self.hopping = _validate_float(parameters.hopping, "Hopping")
|
34
|
+
if parameters.lattice_constant <= 0:
|
33
35
|
msg = "Lattice constant must be positive"
|
34
36
|
raise ValueError(msg)
|
35
|
-
self.
|
36
|
-
|
37
|
-
|
38
|
-
|
37
|
+
self._lattice = GrapheneLattice(
|
38
|
+
lattice_constant=np.float64(
|
39
|
+
_validate_float(parameters.lattice_constant, "Lattice constant")
|
40
|
+
)
|
41
|
+
)
|
42
|
+
self.lattice_constant = self._lattice.lattice_constant
|
43
|
+
self.chemical_potential = _validate_float(
|
44
|
+
parameters.chemical_potential, "Chemical potential"
|
45
|
+
)
|
46
|
+
self.hubbard_int = _validate_float(parameters.hubbard_int, "Hubbard interaction")
|
47
|
+
self._hubbard_int_orbital_basis = np.array([self.hubbard_int, self.hubbard_int])
|
39
48
|
self._number_of_bands = 2
|
40
|
-
if delta is None:
|
49
|
+
if parameters.delta is None:
|
41
50
|
self._delta_orbital_basis = np.zeros(self.number_of_bands, dtype=np.complex64)
|
42
51
|
else:
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
52
|
+
self._delta_orbital_basis = np.astype(parameters.delta, np.complex64)
|
53
|
+
|
54
|
+
@property
|
55
|
+
def name(self) -> str: # noqa: D102
|
56
|
+
return self._name
|
57
|
+
|
58
|
+
@property
|
59
|
+
def lattice(self) -> GrapheneLattice: # noqa: D102
|
60
|
+
return self._lattice
|
47
61
|
|
48
62
|
@property
|
49
63
|
def number_of_bands(self) -> int: # noqa: D102
|
@@ -61,6 +75,14 @@ class GrapheneHamiltonian(BaseHamiltonian):
|
|
61
75
|
def delta_orbital_basis(self, new_delta: npt.NDArray[np.complex64]) -> None:
|
62
76
|
self._delta_orbital_basis = new_delta
|
63
77
|
|
78
|
+
@classmethod
|
79
|
+
def from_file(cls, filename: pathlib.Path) -> "BaseHamiltonian": # noqa: D102
|
80
|
+
with h5py.File(f"{filename}", "r") as f:
|
81
|
+
config_dict = dict(f.attrs.items())
|
82
|
+
config_dict["delta"] = f["delta"][()]
|
83
|
+
parameters = GrapheneParameters.model_validate(config_dict)
|
84
|
+
return cls(parameters=parameters)
|
85
|
+
|
64
86
|
def hamiltonian(self, k: npt.NDArray[np.float64]) -> npt.NDArray[np.complex64]:
|
65
87
|
"""
|
66
88
|
Return the normal state Hamiltonian in orbital basis.
|
@@ -78,7 +100,7 @@ class GrapheneHamiltonian(BaseHamiltonian):
|
|
78
100
|
"""
|
79
101
|
assert _check_valid_array(k)
|
80
102
|
hopping = self.hopping
|
81
|
-
lattice_constant = self.lattice_constant
|
103
|
+
lattice_constant = self.lattice.lattice_constant
|
82
104
|
chemical_potential = self.chemical_potential
|
83
105
|
if k.ndim == 1:
|
84
106
|
k = np.expand_dims(k, axis=0)
|
@@ -120,7 +142,7 @@ class GrapheneHamiltonian(BaseHamiltonian):
|
|
120
142
|
assert direction in ["x", "y"]
|
121
143
|
|
122
144
|
hopping = self.hopping
|
123
|
-
lattice_constant = self.lattice_constant
|
145
|
+
lattice_constant = self.lattice.lattice_constant
|
124
146
|
if k.ndim == 1:
|
125
147
|
k = np.expand_dims(k, axis=0)
|
126
148
|
|
@@ -4,46 +4,58 @@
|
|
4
4
|
|
5
5
|
"""Provides the implementation for Graphene."""
|
6
6
|
|
7
|
+
import pathlib
|
7
8
|
from typing import Any
|
8
9
|
|
10
|
+
import h5py
|
9
11
|
import numpy as np
|
10
12
|
import numpy.typing as npt
|
11
13
|
|
12
|
-
from .
|
14
|
+
from quant_met.geometry import SquareLattice
|
15
|
+
from quant_met.mean_field._utils import _check_valid_array, _validate_float
|
16
|
+
from quant_met.parameters import OneBandParameters
|
17
|
+
|
13
18
|
from .base_hamiltonian import BaseHamiltonian
|
14
19
|
|
15
20
|
|
16
|
-
class
|
21
|
+
class OneBand(BaseHamiltonian):
|
17
22
|
"""Hamiltonian for Graphene."""
|
18
23
|
|
19
24
|
def __init__(
|
20
25
|
self,
|
21
|
-
|
22
|
-
lattice_constant: float,
|
23
|
-
chemical_potential: float,
|
24
|
-
hubbard_int: float,
|
25
|
-
delta: npt.NDArray[np.float64] | None = None,
|
26
|
+
parameters: OneBandParameters,
|
26
27
|
*args: tuple[Any, ...],
|
27
28
|
**kwargs: tuple[dict[str, Any], ...],
|
28
29
|
) -> None:
|
29
30
|
del args
|
30
31
|
del kwargs
|
31
|
-
self.
|
32
|
-
|
32
|
+
self._name = parameters.name
|
33
|
+
self.hopping = _validate_float(parameters.hopping, "Hopping")
|
34
|
+
if parameters.lattice_constant <= 0:
|
33
35
|
msg = "Lattice constant must be positive"
|
34
36
|
raise ValueError(msg)
|
35
|
-
self.
|
36
|
-
|
37
|
-
|
37
|
+
self._lattice = SquareLattice(
|
38
|
+
np.float64(_validate_float(parameters.lattice_constant, "Lattice constant"))
|
39
|
+
)
|
40
|
+
self.lattice_constant = self._lattice.lattice_constant
|
41
|
+
self.chemical_potential = _validate_float(
|
42
|
+
parameters.chemical_potential, "Chemical potential"
|
43
|
+
)
|
44
|
+
self.hubbard_int = _validate_float(parameters.hubbard_int, "Hubbard interaction")
|
38
45
|
self._hubbard_int_orbital_basis = np.array([self.hubbard_int])
|
39
46
|
self._number_of_bands = 1
|
40
|
-
if delta is None:
|
47
|
+
if parameters.delta is None:
|
41
48
|
self._delta_orbital_basis = np.zeros(self.number_of_bands, dtype=np.complex64)
|
42
49
|
else:
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
50
|
+
self._delta_orbital_basis = np.astype(parameters.delta, np.complex64)
|
51
|
+
|
52
|
+
@property
|
53
|
+
def name(self) -> str: # noqa: D102
|
54
|
+
return self._name
|
55
|
+
|
56
|
+
@property
|
57
|
+
def lattice(self) -> SquareLattice: # noqa: D102
|
58
|
+
return self._lattice
|
47
59
|
|
48
60
|
@property
|
49
61
|
def number_of_bands(self) -> int: # noqa: D102
|
@@ -61,6 +73,14 @@ class OneBandTightBindingHamiltonian(BaseHamiltonian):
|
|
61
73
|
def delta_orbital_basis(self, new_delta: npt.NDArray[np.complex64]) -> None:
|
62
74
|
self._delta_orbital_basis = new_delta
|
63
75
|
|
76
|
+
@classmethod
|
77
|
+
def from_file(cls, filename: pathlib.Path) -> "BaseHamiltonian": # noqa: D102
|
78
|
+
with h5py.File(f"{filename}", "r") as f:
|
79
|
+
config_dict = dict(f.attrs.items())
|
80
|
+
config_dict["delta"] = f["delta"][()]
|
81
|
+
parameters = OneBandParameters.model_validate(config_dict)
|
82
|
+
return cls(parameters=parameters)
|
83
|
+
|
64
84
|
def hamiltonian(self, k: npt.NDArray[np.float64]) -> npt.NDArray[np.complex64]:
|
65
85
|
"""
|
66
86
|
Return the normal state Hamiltonian in orbital basis.
|
@@ -78,7 +98,7 @@ class OneBandTightBindingHamiltonian(BaseHamiltonian):
|
|
78
98
|
"""
|
79
99
|
assert _check_valid_array(k)
|
80
100
|
hopping = self.hopping
|
81
|
-
lattice_constant = self.lattice_constant
|
101
|
+
lattice_constant = self.lattice.lattice_constant
|
82
102
|
chemical_potential = self.chemical_potential
|
83
103
|
if k.ndim == 1:
|
84
104
|
k = np.expand_dims(k, axis=0)
|
@@ -115,7 +135,7 @@ class OneBandTightBindingHamiltonian(BaseHamiltonian):
|
|
115
135
|
assert direction in ["x", "y"]
|
116
136
|
|
117
137
|
hopping = self.hopping
|
118
|
-
lattice_constant = self.lattice_constant
|
138
|
+
lattice_constant = self.lattice.lattice_constant
|
119
139
|
if k.ndim == 1:
|
120
140
|
k = np.expand_dims(k, axis=0)
|
121
141
|
|
@@ -7,22 +7,21 @@
|
|
7
7
|
import numpy as np
|
8
8
|
import numpy.typing as npt
|
9
9
|
|
10
|
-
from .base_hamiltonian import BaseHamiltonian
|
10
|
+
from quant_met.mean_field.hamiltonians.base_hamiltonian import BaseHamiltonian
|
11
11
|
|
12
12
|
|
13
13
|
def quantum_metric(
|
14
|
-
h: BaseHamiltonian, k_grid: npt.NDArray[np.float64],
|
14
|
+
h: BaseHamiltonian, k_grid: npt.NDArray[np.float64], bands: list[int]
|
15
15
|
) -> npt.NDArray[np.float64]:
|
16
16
|
"""Calculate the quantum metric in the normal state.
|
17
17
|
|
18
18
|
Parameters
|
19
19
|
----------
|
20
|
+
bands
|
20
21
|
h : :class:`~quant_met.BaseHamiltonian`
|
21
22
|
Hamiltonian object.
|
22
23
|
k_grid : :class:`numpy.ndarray`
|
23
24
|
List of k points.
|
24
|
-
band : int
|
25
|
-
Index of band for which the quantum metric is calculated.
|
26
25
|
|
27
26
|
Returns
|
28
27
|
-------
|
@@ -36,25 +35,26 @@ def quantum_metric(
|
|
36
35
|
|
37
36
|
quantum_geom_tensor = np.zeros(shape=(2, 2), dtype=np.complex64)
|
38
37
|
|
39
|
-
for
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
for
|
45
|
-
|
46
|
-
(
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
38
|
+
for band in bands:
|
39
|
+
for i, direction_1 in enumerate(["x", "y"]):
|
40
|
+
h_derivative_direction_1 = h.hamiltonian_derivative(k=k_grid, direction=direction_1)
|
41
|
+
for j, direction_2 in enumerate(["x", "y"]):
|
42
|
+
h_derivative_direction_2 = h.hamiltonian_derivative(k=k_grid, direction=direction_2)
|
43
|
+
for k_index in range(len(k_grid)):
|
44
|
+
for n in [i for i in range(h.number_of_bands) if i != band]:
|
45
|
+
quantum_geom_tensor[i, j] += (
|
46
|
+
(
|
47
|
+
bloch[k_index][:, band].conjugate()
|
48
|
+
@ h_derivative_direction_1[k_index]
|
49
|
+
@ bloch[k_index][:, n]
|
50
|
+
)
|
51
|
+
* (
|
52
|
+
bloch[k_index][:, n].conjugate()
|
53
|
+
@ h_derivative_direction_2[k_index]
|
54
|
+
@ bloch[k_index][:, band]
|
55
|
+
)
|
56
|
+
/ (energies[k_index][band] - energies[k_index][n]) ** 2
|
55
57
|
)
|
56
|
-
/ (energies[k_index][band] - energies[k_index][n]) ** 2
|
57
|
-
)
|
58
58
|
|
59
59
|
return np.real(quantum_geom_tensor) / number_k_points
|
60
60
|
|
@@ -66,12 +66,11 @@ def quantum_metric_bdg(
|
|
66
66
|
|
67
67
|
Parameters
|
68
68
|
----------
|
69
|
+
bands
|
69
70
|
h : :class:`~quant_met.BaseHamiltonian`
|
70
71
|
Hamiltonian object.
|
71
72
|
k_grid : :class:`numpy.ndarray`
|
72
73
|
List of k points.
|
73
|
-
band : int
|
74
|
-
Index of band for which the quantum metric is calculated.
|
75
74
|
|
76
75
|
Returns
|
77
76
|
-------
|
@@ -91,7 +90,7 @@ def quantum_metric_bdg(
|
|
91
90
|
for j, direction_2 in enumerate(["x", "y"]):
|
92
91
|
h_derivative_dir_2 = h.bdg_hamiltonian_derivative(k=k_grid, direction=direction_2)
|
93
92
|
for k_index in range(len(k_grid)):
|
94
|
-
for n in [i for i in range(h.number_of_bands) if i != band]:
|
93
|
+
for n in [i for i in range(2 * h.number_of_bands) if i != band]:
|
95
94
|
quantum_geom_tensor[i, j] += (
|
96
95
|
(
|
97
96
|
bdg_functions[k_index][:, band].conjugate()
|
@@ -5,41 +5,45 @@
|
|
5
5
|
"""Self-consistency loop."""
|
6
6
|
|
7
7
|
import numpy as np
|
8
|
+
import numpy.typing as npt
|
8
9
|
|
9
|
-
from quant_met import
|
10
|
-
|
11
|
-
from .base_hamiltonian import BaseHamiltonian
|
10
|
+
from quant_met.mean_field.hamiltonians.base_hamiltonian import BaseHamiltonian
|
12
11
|
|
13
12
|
|
14
13
|
def self_consistency_loop(
|
15
|
-
h: BaseHamiltonian,
|
14
|
+
h: BaseHamiltonian,
|
15
|
+
k_space_grid: npt.NDArray[np.float64],
|
16
|
+
beta: np.float64,
|
17
|
+
epsilon: float,
|
18
|
+
q: npt.NDArray[np.float64] | None = None,
|
16
19
|
) -> BaseHamiltonian:
|
17
20
|
"""Self-consistency loop.
|
18
21
|
|
19
22
|
Parameters
|
20
23
|
----------
|
24
|
+
lattice
|
25
|
+
q
|
21
26
|
beta
|
22
27
|
number_of_k_points
|
23
28
|
h
|
24
29
|
epsilon
|
25
30
|
"""
|
26
|
-
|
27
|
-
|
31
|
+
if q is None:
|
32
|
+
q = np.array([0, 0])
|
33
|
+
|
28
34
|
rng = np.random.default_rng()
|
29
|
-
delta_init = np.zeros(shape=h.delta_orbital_basis.shape, dtype=np.
|
30
|
-
|
31
|
-
|
35
|
+
delta_init = np.zeros(shape=h.delta_orbital_basis.shape, dtype=np.complex64)
|
36
|
+
delta_init += (
|
37
|
+
2 * rng.random(size=h.delta_orbital_basis.shape)
|
38
|
+
- 1
|
39
|
+
+ 1.0j * (2 * rng.random(size=h.delta_orbital_basis.shape) - 1)
|
40
|
+
)
|
41
|
+
h.delta_orbital_basis = delta_init
|
32
42
|
|
33
43
|
while True:
|
34
|
-
new_gap = h.gap_equation(k=k_space_grid, beta=beta)
|
35
|
-
if (np.abs(h.delta_orbital_basis -
|
44
|
+
new_gap = h.gap_equation(k=k_space_grid, q=q, beta=beta)
|
45
|
+
if (np.abs(h.delta_orbital_basis - new_gap) < epsilon).all():
|
36
46
|
h.delta_orbital_basis = new_gap
|
37
|
-
print("Finished")
|
38
47
|
return h
|
39
|
-
|
40
|
-
print(f"Old: {h.delta_orbital_basis}")
|
41
|
-
print(f"New: {new_gap}")
|
42
|
-
print(f"Difference {np.abs(h.delta_orbital_basis) - np.abs(new_gap)}")
|
43
|
-
"""
|
44
|
-
mixing_greed = 0.2
|
48
|
+
mixing_greed = 0.1
|
45
49
|
h.delta_orbital_basis = mixing_greed * new_gap + (1 - mixing_greed) * h.delta_orbital_basis
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# SPDX-FileCopyrightText: 2024 Tjark Sievers
|
2
|
+
#
|
3
|
+
# SPDX-License-Identifier: MIT
|
4
|
+
|
5
|
+
"""
|
6
|
+
Parameters (:mod:`quant_met.parameters`)
|
7
|
+
========================================
|
8
|
+
|
9
|
+
.. autosummary::
|
10
|
+
:toctree: generated/parameters/
|
11
|
+
|
12
|
+
DressedGrapheneParameters
|
13
|
+
GrapheneParameters
|
14
|
+
OneBandParameters
|
15
|
+
Parameters
|
16
|
+
""" # noqa: D205, D400
|
17
|
+
|
18
|
+
from .hamiltonians import DressedGrapheneParameters, GrapheneParameters, OneBandParameters
|
19
|
+
from .main import Parameters
|
20
|
+
|
21
|
+
__all__ = ["Parameters", "DressedGrapheneParameters", "GrapheneParameters", "OneBandParameters"]
|
@@ -0,0 +1,47 @@
|
|
1
|
+
# SPDX-FileCopyrightText: 2024 Tjark Sievers
|
2
|
+
#
|
3
|
+
# SPDX-License-Identifier: MIT
|
4
|
+
|
5
|
+
"""Pydantic models to hold parameters for Hamiltonians."""
|
6
|
+
|
7
|
+
from typing import Literal
|
8
|
+
|
9
|
+
import numpy as np
|
10
|
+
from numpydantic import NDArray, Shape
|
11
|
+
from pydantic import BaseModel
|
12
|
+
|
13
|
+
|
14
|
+
class DressedGrapheneParameters(BaseModel):
|
15
|
+
"""Parameters for the dressed Graphene model."""
|
16
|
+
|
17
|
+
name: Literal["DressedGraphene"] = "DressedGraphene"
|
18
|
+
hopping_gr: float
|
19
|
+
hopping_x: float
|
20
|
+
hopping_x_gr_a: float
|
21
|
+
lattice_constant: float
|
22
|
+
chemical_potential: float
|
23
|
+
hubbard_int_gr: float
|
24
|
+
hubbard_int_x: float
|
25
|
+
delta: NDArray[Shape["3"], np.complex64] | None = None
|
26
|
+
|
27
|
+
|
28
|
+
class GrapheneParameters(BaseModel):
|
29
|
+
"""Parameters for Graphene model."""
|
30
|
+
|
31
|
+
name: Literal["Graphene"] = "Graphene"
|
32
|
+
hopping: float
|
33
|
+
lattice_constant: float
|
34
|
+
chemical_potential: float
|
35
|
+
hubbard_int: float
|
36
|
+
delta: NDArray[Shape["2"], np.complex64] | None = None
|
37
|
+
|
38
|
+
|
39
|
+
class OneBandParameters(BaseModel):
|
40
|
+
"""Parameters for Graphene model."""
|
41
|
+
|
42
|
+
name: Literal["OneBand"] = "OneBand"
|
43
|
+
hopping: float
|
44
|
+
lattice_constant: float
|
45
|
+
chemical_potential: float
|
46
|
+
hubbard_int: float
|
47
|
+
delta: NDArray[Shape["1"], np.complex64] | None = None
|
@@ -0,0 +1,40 @@
|
|
1
|
+
# SPDX-FileCopyrightText: 2024 Tjark Sievers
|
2
|
+
#
|
3
|
+
# SPDX-License-Identifier: MIT
|
4
|
+
|
5
|
+
"""Pydantic models to hold parameters to run a simulation."""
|
6
|
+
|
7
|
+
import pathlib
|
8
|
+
|
9
|
+
from numpydantic import NDArray, Shape
|
10
|
+
from pydantic import BaseModel, Field
|
11
|
+
|
12
|
+
from .hamiltonians import DressedGrapheneParameters, GrapheneParameters, OneBandParameters
|
13
|
+
|
14
|
+
|
15
|
+
class Control(BaseModel):
|
16
|
+
"""Control for the calculation."""
|
17
|
+
|
18
|
+
calculation: str
|
19
|
+
prefix: str
|
20
|
+
outdir: pathlib.Path
|
21
|
+
conv_treshold: float
|
22
|
+
beta: float
|
23
|
+
q: NDArray[Shape["2"], int | float] | None = None
|
24
|
+
|
25
|
+
|
26
|
+
class KPoints(BaseModel):
|
27
|
+
"""Control for k points."""
|
28
|
+
|
29
|
+
nk1: int
|
30
|
+
nk2: int
|
31
|
+
|
32
|
+
|
33
|
+
class Parameters(BaseModel):
|
34
|
+
"""Class to hold the parameters for a calculation."""
|
35
|
+
|
36
|
+
control: Control
|
37
|
+
model: DressedGrapheneParameters | GrapheneParameters | OneBandParameters = Field(
|
38
|
+
..., discriminator="name"
|
39
|
+
)
|
40
|
+
k_points: KPoints
|
quant_met/utils.py
CHANGED
@@ -1,19 +1,22 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: quant-met
|
3
|
-
Version: 0.0.
|
3
|
+
Version: 0.0.8
|
4
4
|
Summary: Calculate superconductivity in flat-band systems.
|
5
5
|
Home-page: https://quant-met.tjarksievers.de
|
6
6
|
Author: Tjark Sievers
|
7
7
|
Author-email: tsievers@physnet.uni-hamburg.de
|
8
|
-
Requires-Python: >=3.11,<
|
8
|
+
Requires-Python: >=3.11,<3.13
|
9
9
|
Classifier: Programming Language :: Python :: 3
|
10
10
|
Classifier: Programming Language :: Python :: 3.11
|
11
11
|
Classifier: Programming Language :: Python :: 3.12
|
12
|
-
Requires-Dist:
|
12
|
+
Requires-Dist: click (>=8.1.7,<9.0.0)
|
13
|
+
Requires-Dist: h5py (>=3.12.1,<4.0.0)
|
13
14
|
Requires-Dist: matplotlib (>=3.9.2,<4.0.0)
|
14
|
-
Requires-Dist: numpy (>=2.
|
15
|
-
Requires-Dist:
|
16
|
-
Requires-Dist:
|
15
|
+
Requires-Dist: numpy (>=2.1.2,<3.0.0)
|
16
|
+
Requires-Dist: numpydantic (>=1.6.4,<2.0.0)
|
17
|
+
Requires-Dist: pandas (>=2.2.3,<3.0.0)
|
18
|
+
Requires-Dist: pydantic (>=2.9.2,<3.0.0)
|
19
|
+
Requires-Dist: scipy (>=1.14.1,<2.0.0)
|
17
20
|
Project-URL: Repository, https://github.com/Ruberhauptmann/quant-met
|
18
21
|
Description-Content-Type: text/markdown
|
19
22
|
|
@@ -0,0 +1,31 @@
|
|
1
|
+
quant_met/__init__.py,sha256=ZO1UFz1awUYTI7B9ZkBwucvDz7GMGXnLLUGnEwLBhkc,155
|
2
|
+
quant_met/cli/__init__.py,sha256=If5Jdi7mG-5PbIyjQGxnt9o2bsY5VyE3qtdcO5yTGnQ,321
|
3
|
+
quant_met/cli/main.py,sha256=EZTRRTfrN3z-srgbG2BoDg64iYBjzZLuuMtrxTdZU8s,698
|
4
|
+
quant_met/cli/scf.py,sha256=x9qxjQizXAKH7217dBuHTlA26eGenzcC2LDpN1q7030,1435
|
5
|
+
quant_met/geometry/__init__.py,sha256=uCLEDBrYuMUkEgJmPnLAvR2WlmvoM9X9_cV_Q2zMzoA,620
|
6
|
+
quant_met/geometry/base_lattice.py,sha256=QVHuZVy6bOvBSITY_mKhr7hYW1jHJ5UAm3sMCFClYZ0,2276
|
7
|
+
quant_met/geometry/bz_path.py,sha256=q_eNhKYjhKLeFNjio8BdKVsseO6slQKlwKKSQQYTVJQ,2497
|
8
|
+
quant_met/geometry/graphene.py,sha256=86C1LiYFunoSGSS1_A79dPq24FiiOxpHvOLUVrdRq_E,1271
|
9
|
+
quant_met/geometry/square.py,sha256=1fSrHab07uB6ildNzlbTwINJvPa5C2Az0B0uuOVJmMc,1216
|
10
|
+
quant_met/mean_field/__init__.py,sha256=yH_UovKDaP5c06cb1uWPtvIO2WQ76pi6ZTsNBzE8oso,793
|
11
|
+
quant_met/mean_field/_utils.py,sha256=plkx6eYjyYV3CT3BWwlulqW7L-Q0t1TzZTLR4k7u0dg,666
|
12
|
+
quant_met/mean_field/hamiltonians/__init__.py,sha256=FcqhV5fG_gzngVuiVfBucripdbNTzOxPRafu7sZ4ueA,644
|
13
|
+
quant_met/mean_field/hamiltonians/base_hamiltonian.py,sha256=fL1dl1ZX3I_4gzARiQl5o2eCTIr-udRA23qZo4VWq0k,13622
|
14
|
+
quant_met/mean_field/hamiltonians/dressed_graphene.py,sha256=zzHRVmp8749I2ll5N-wjks8l5dJLdtmhWR7smR7ezM0,6542
|
15
|
+
quant_met/mean_field/hamiltonians/graphene.py,sha256=Zg_S9xTMYi_7v_6PBK7NUdiwgmyqyCPElUfezuiozm0,5611
|
16
|
+
quant_met/mean_field/hamiltonians/one_band_tight_binding.py,sha256=kBYqthKUPby754PhOwf0mzHLTHNVbdKZbtJhvp2yc3E,4766
|
17
|
+
quant_met/mean_field/quantum_metric.py,sha256=5FC3NU_ObbHlUUZMCAP1DyZuyifgnEr3s2cSH6cA8-8,3903
|
18
|
+
quant_met/mean_field/self_consistency.py,sha256=xkZIWkOopekhDufJnSGK6ARsro6XaIuVhhrnJmb6sk8,1291
|
19
|
+
quant_met/mean_field/superfluid_weight.py,sha256=m_x2uVYcEVdbItwEV3-Ml80Qad7X-YWLgb38fJKLJsY,4004
|
20
|
+
quant_met/parameters/__init__.py,sha256=DvzEtTAnHcRcJufZV7bwYGZUeA-0Q2B8N9syGA9uNRM,552
|
21
|
+
quant_met/parameters/hamiltonians.py,sha256=Q5uGTzxM8kIdUnRuIpEJNPmSHF27Zj7LBV3kgKd5dP4,1213
|
22
|
+
quant_met/parameters/main.py,sha256=yrDME_KfDZ_9xf3ofTt7V8kw_8qbgD9EfVlxLcymcNE,899
|
23
|
+
quant_met/plotting/__init__.py,sha256=s-DS22impzozKiS7p-v3yCmeccDQfXmBbtPiYMKwH0Y,620
|
24
|
+
quant_met/plotting/plotting.py,sha256=_SqL8GrDqlBtccHnUWpZPqdSJy0Yd_4dhFdUOxOzPpY,7447
|
25
|
+
quant_met/utils.py,sha256=JG_tShSL1JIi-Fn-N6mVD6J0sl7Egf-zuHnOSEKu7VA,1666
|
26
|
+
quant_met-0.0.8.dist-info/LICENSE.txt,sha256=QO_duPQihSJlaxSLxPAXo52X3esROP5wBkhxqBd1Z4E,1104
|
27
|
+
quant_met-0.0.8.dist-info/LICENSES/MIT.txt,sha256=QO_duPQihSJlaxSLxPAXo52X3esROP5wBkhxqBd1Z4E,1104
|
28
|
+
quant_met-0.0.8.dist-info/METADATA,sha256=vh99nVcyAhUECV32kkXxfDjne2LvBufs6ekW60m8pYs,2953
|
29
|
+
quant_met-0.0.8.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
|
30
|
+
quant_met-0.0.8.dist-info/entry_points.txt,sha256=fuVnEk5wiqPMEhn-Cc7q0Hdk2s_OniOn0zfdFPicH4Y,47
|
31
|
+
quant_met-0.0.8.dist-info/RECORD,,
|