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

Ruberhauptmann / quant-met / 14759532904

30 Apr 2025 04:31PM UTC coverage: 35.932% (-64.1%) from 100.0%
14759532904

Pull #121

github

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

4 of 44 branches covered (9.09%)

Branch coverage included in aggregate %.

61 of 166 new or added lines in 12 files covered. (36.75%)

31 existing lines in 3 files now uncovered.

102 of 251 relevant lines covered (40.64%)

1.22 hits per line

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

0.0
/src/quant_met/utils.py
1
"""
2
Utility functions (:mod:`quant_met.utils`)
3
==========================================
4

5
.. currentmodule:: quant_met.utils
6

7
Functions
8
---------
9

10
.. autosummary::
11
   :toctree: generated/
12

13
    generate_uniform_grid
14
"""  # noqa: D205, D400
15

UNCOV
16
import numpy as np
×
UNCOV
17
import numpy.typing as npt
×
UNCOV
18
from numba import jit
×
19

20

UNCOV
21
def generate_uniform_grid(
×
22
    ncols: int,
23
    nrows: int,
24
    corner_1: npt.NDArray[np.floating],
25
    corner_2: npt.NDArray[np.floating],
26
    origin: npt.NDArray[np.floating],
27
) -> npt.NDArray[np.floating]:
28
    """
29
    Generate a uniform grid of points in 2D.
30

31
    Parameters
32
    ----------
33
        ncols : int
34
            Number of columns
35
        nrows : int
36
            Number of rows
37
        corner_1 : :py:class:`numpy.ndarray`
38
            First corner vector
39
        corner_2 : :py:class:`numpy.ndarray`
40
            Second corner vector
41
        origin : :py:class:`numpy.ndarray`
42
            Origin point
43

44
    Returns
45
    -------
46
        :py:class:`numpy.ndarray`
47
            Grid
48

49
    """
UNCOV
50
    if ncols <= 1 or nrows <= 1:
×
UNCOV
51
        msg = "Number of columns and rows must be greater than 1."
×
UNCOV
52
        raise ValueError(msg)
×
UNCOV
53
    if np.linalg.norm(corner_1) == 0 or np.linalg.norm(corner_2) == 0:
×
UNCOV
54
        msg = "Vectors to the corners cannot be zero."
×
UNCOV
55
        raise ValueError(msg)
×
56

UNCOV
57
    grid: npt.NDArray[np.floating] = np.concatenate(
×
58
        [
59
            np.linspace(
60
                origin[0] + i / (nrows - 1) * corner_2,
61
                origin[1] + corner_1 + i / (nrows - 1) * corner_2,
62
                num=ncols,
63
            )
64
            for i in range(nrows)
65
        ]
66
    )
67

UNCOV
68
    return grid
×
69

70

UNCOV
71
@jit
×
UNCOV
72
def fermi_dirac(energy: npt.NDArray[np.floating], beta: float) -> npt.NDArray[np.floating]:
×
73
    """Fermi dirac distribution.
74

75
    Parameters
76
    ----------
77
    energy
78
    beta
79

80
    Returns
81
    -------
82
    fermi_dirac
83

84
    """
UNCOV
85
    return (
×
86
        np.where(energy < 0, 1.0, 0.0)
87
        if np.isinf(beta)
88
        else np.asarray(1 / (1 + np.exp(beta * energy)))
89
    )
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