• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

Ruberhauptmann / quant-met / 16150390552

08 Jul 2025 05:39PM UTC coverage: 33.046% (-67.0%) from 100.0%
16150390552

Pull #121

github

web-flow
Merge 87dc6322c into df44f68e5
Pull Request #121: Start implementing sisl

3 of 43 branches covered (6.98%)

Branch coverage included in aggregate %.

69 of 190 new or added lines in 13 files covered. (36.32%)

47 existing lines in 3 files now uncovered.

112 of 305 relevant lines covered (36.72%)

1.1 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

21.62
/src/quant_met/cli/scf.py
1
"""Functions to run self-consistent calculation for the order parameter."""
2

3
import logging
3✔
4
from pathlib import Path
3✔
5

6
import h5py
3✔
7
import sisl
3✔
8

9
from quant_met import bdg, routines
3✔
10
from quant_met.parameters import Parameters
3✔
11

12
logger = logging.getLogger(__name__)
3✔
13

14

15
def scf(parameters: Parameters) -> None:
3✔
16
    """Self-consistent calculation for the order parameter.
17

18
    Parameters
19
    ----------
20
    parameters: Parameters
21
        An instance of Parameters containing control settings.
22
    """
UNCOV
23
    result_path = Path(parameters.control.outdir)
×
UNCOV
24
    result_path.mkdir(exist_ok=True, parents=True)
×
NEW
25
    result_file = result_path / f"{parameters.control.prefix}.hdf5"
×
26

NEW
27
    hamiltonian = sisl.get_sile(parameters.control.hamiltonian_file).read_hamiltonian()
×
NEW
28
    k_grid_obj = sisl.MonkhorstPack(
×
29
        hamiltonian.geometry, [parameters.k_points.nk1, parameters.k_points.nk2, 1]
30
    )
31

NEW
32
    solved_gap = routines.self_consistency_loop(
×
33
        hamiltonian=hamiltonian,
34
        kgrid=k_grid_obj,
35
        beta=parameters.control.beta,
36
        hubbard_int_orbital_basis=parameters.control.hubbard_int_orbital_basis,
37
        epsilon=parameters.control.conv_treshold,
38
        max_iter=parameters.control.max_iter,
39
        q=parameters.control.q,
40
    )
41

UNCOV
42
    logger.info("Self-consistency loop completed successfully.")
×
NEW
43
    logger.debug("Obtained delta values: %s", solved_gap)
×
44

NEW
45
    with h5py.File(result_file, "a") as f:
×
NEW
46
        f.create_dataset("delta", data=solved_gap)
×
UNCOV
47
    logger.info("Results saved to %s", result_file)
×
48

UNCOV
49
    if parameters.control.calculate_additional is True:
×
UNCOV
50
        logger.info("Calculating additional things.")
×
51

NEW
52
        bdg_energies, bdg_wavefunctions = bdg.diagonalize_bdg(
×
53
            hamiltonian=hamiltonian,
54
            kgrid=k_grid_obj,
55
            delta_orbital_basis=solved_gap,
56
            q=parameters.control.q,
57
        )
58

NEW
59
        current = bdg.calculate_current_density(
×
60
            hamiltonian=hamiltonian,
61
            k=k_grid_obj,
62
            bdg_energies=bdg_energies,
63
            bdg_wavefunctions=bdg_wavefunctions,
64
            beta=parameters.control.beta,
65
        )
NEW
66
        sf_weight_conv, sf_weight_geom = bdg.calculate_superfluid_weight(
×
67
            hamiltonian=hamiltonian,
68
            kgrid=k_grid_obj,
69
            beta=parameters.control.beta,
70
            delta_orbital_basis=solved_gap,
71
        )
72

UNCOV
73
        with h5py.File(result_file, "a") as f:
×
UNCOV
74
            f.attrs["current_x"] = current[0]
×
UNCOV
75
            f.attrs["current_y"] = current[1]
×
UNCOV
76
            f.attrs["sf_weight_conv_xx"] = sf_weight_conv[0, 0]
×
UNCOV
77
            f.attrs["sf_weight_conv_xy"] = sf_weight_conv[0, 1]
×
UNCOV
78
            f.attrs["sf_weight_conv_yx"] = sf_weight_conv[1, 0]
×
UNCOV
79
            f.attrs["sf_weight_conv_yy"] = sf_weight_conv[1, 1]
×
UNCOV
80
            f.attrs["sf_weight_geom_xx"] = sf_weight_geom[0, 0]
×
UNCOV
81
            f.attrs["sf_weight_geom_xy"] = sf_weight_geom[0, 1]
×
UNCOV
82
            f.attrs["sf_weight_geom_yx"] = sf_weight_geom[1, 0]
×
UNCOV
83
            f.attrs["sf_weight_geom_yy"] = sf_weight_geom[1, 1]
×
84

UNCOV
85
        logger.info("Additional results saved to %s", result_file)
×
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc