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

Ruberhauptmann / quant-met / 16489119678

24 Jul 2025 06:05AM UTC coverage: 34.768% (-1.8%) from 36.605%
16489119678

Pull #125

github

web-flow
Merge b4aa50e23 into b5a0f599e
Pull Request #125: Start q loop

3 of 67 branches covered (4.48%)

Branch coverage included in aggregate %.

92 of 226 new or added lines in 11 files covered. (40.71%)

23 existing lines in 2 files now uncovered.

207 of 537 relevant lines covered (38.55%)

1.16 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)
×
25
    result_file = result_path / f"{parameters.control.prefix}.hdf5"
×
26

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

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

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

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

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

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

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

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

86
        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