Skip to content

Commit

Permalink
Update import-resources API, fixing #173 (#176)
Browse files Browse the repository at this point in the history
* Update clenshaw in website table

* Fix #173 by updating import-resources API

This arises from pull-request #174. Rather than using an older
version of import-resources. This fixed the issue to the current
API

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
  • Loading branch information
Ali-Tehrani and pre-commit-ci[bot] committed Aug 3, 2023
1 parent 4e9f923 commit f0f5dbe
Show file tree
Hide file tree
Showing 4 changed files with 10 additions and 13 deletions.
2 changes: 1 addition & 1 deletion doc/table_onedgrids.csv
Expand Up @@ -8,6 +8,6 @@ Grid;Domain;:math:`x_i`;:math:`w_i`
:func:`Tanh Sinh<grid.onedgrid.TanhSinh>`;:math:`[-1,1]`;:math:`\tanh\left( \frac{\pi}{2} \sinh(i\delta) \right)`;:math:`\frac{\frac{\pi}{2}\delta \cosh(i\delta)}{\cosh^2(\frac{\pi}{2}\sinh(i\delta))}`
:func:`Simpson<grid.onedgrid.Simpson>`;:math:`[-1,1]`;:math:`-1 + 2 \left(\frac{i-1}{N_{pts}-1}\right)`;:math:`w_i = 2 / (3(N - 1)) \text{ if } i = 0, \quad 8 / (3(N - 1)) \text{ if } i \geq 1 \text{ and is odd}, \quad 4 / (3(N - 1)) \text{ if } i \geq 2 \text{ and is even}.`
:func:`MidPoint<grid.onedgrid.MidPoint>`;:math:`[-1,1]`;:math:`-1 + \frac{2i + 1}{N_{pts}}`;:math:`\frac{2}{n}`
:func:`Clenshow-Curtis<grid.onedgrid.ClenshawCurtis>`;:math:`[-1,1]`;:math:`\cos (\pi (i - 1) / (N_{pts} - 1))`;:math:`w_i = \frac{c_k}{n} \bigg(1 - \sum_{j=1}^{\lfloor n/2 \rfloor} \frac{b_j}{4j^2 - 1} \cos(2j\theta_i) \bigg), \quad b_j = 1 \text{ if } j = n/2, \quad 2 \text{ if } j < n/2, \quad c_j = 1 \text{ if } k \in \{0, n\}, \quad 2 \text{ else}`
:func:`Clenshaw-Curtis<grid.onedgrid.ClenshawCurtis>`;:math:`[-1,1]`;:math:`\cos (\pi (i - 1) / (N_{pts} - 1))`;:math:`w_i = \frac{c_k}{n} \bigg(1 - \sum_{j=1}^{\lfloor n/2 \rfloor} \frac{b_j}{4j^2 - 1} \cos(2j\theta_i) \bigg), \quad b_j = 1 \text{ if } j = n/2, \quad 2 \text{ if } j < n/2, \quad c_j = 1 \text{ if } k \in \{0, n\}, \quad 2 \text{ else}`
:func:`Fejer First<grid.onedgrid.FejerFirst>`;:math:`(-1,1)`;:math:`\cos\bigg(\frac{(2i - 1)\pi}{2N_{pts}}\bigg)`;:math:`\frac{2}{n}\bigg(1 - 2 \sum_{j=1}^{\lfloor n/2 \rfloor} \frac{\cos(2j \theta_j)}{4 j^2 - 1} \bigg)`
:func:`Fejer Second<grid.onedgrid.FejerSecond>`;:math:`(-1,1)`;:math:`\cos(i \pi / N_{pts})`;:math:`\frac{4 \sin(\theta_i)}{n} \sum_{j=1}^{\lfloor n/2 \rfloor} \frac{\sin(2j - 1)\theta_i}{2j - 1}`
5 changes: 2 additions & 3 deletions src/grid/angular.py
Expand Up @@ -68,7 +68,7 @@
from bisect import bisect_left

import numpy as np
from importlib_resources import path
from importlib_resources import files

from grid.basegrid import Grid

Expand Down Expand Up @@ -554,8 +554,7 @@ def _load_precomputed_angular_grid(degree: int, size: int, use_spherical: bool):
raise ValueError(f"Given size={size} is not supported, choose from {npoints}")
# load npz file corresponding to the given degree & size
filename = f"{type}_{degree}_{size}.npz"
with path(file_path, filename) as npz_file:
data = np.load(npz_file)
data = np.load(files(file_path).joinpath(filename))
if len(data["weights"]) == 1:
return data["points"], np.ones(len(data["points"])) * data["weights"]
return data["points"], data["weights"]
11 changes: 5 additions & 6 deletions src/grid/atomgrid.py
Expand Up @@ -22,7 +22,7 @@
from typing import Union

import numpy as np
from importlib_resources import path
from importlib_resources import files
from scipy.interpolate import CubicSpline
from scipy.spatial.transform import Rotation as R

Expand Down Expand Up @@ -173,11 +173,10 @@ def from_preset(
center = np.zeros(3, dtype=float) if center is None else np.asarray(center, dtype=float)
cls._input_type_check(rgrid, center)
# load radial points and
with path("grid.data.prune_grid", f"prune_grid_{preset}.npz") as npz_file:
data = np.load(npz_file)
# load predefined_radial sectors and num_of_points in each sectors
rad = data[f"{atnum}_rad"]
npt = data[f"{atnum}_npt"]
data = np.load(files("grid.data.prune_grid").joinpath(f"prune_grid_{preset}.npz"))
# load predefined_radial sectors and num_of_points in each sectors
rad = data[f"{atnum}_rad"]
npt = data[f"{atnum}_npt"]

degs = AngularGrid.convert_angular_sizes_to_degrees(npt, use_spherical)
rad_degs = AtomGrid._find_l_for_rad_list(rgrid.points, rad, degs)
Expand Down
5 changes: 2 additions & 3 deletions src/grid/hirshfeld.py
Expand Up @@ -21,7 +21,7 @@


import numpy as np
from importlib_resources import path
from importlib_resources import files
from scipy.interpolate import CubicSpline


Expand All @@ -34,8 +34,7 @@ def __init__(self):
@staticmethod
def _load_npz_proatom(num):
"""Return radial grid points and neutral density for a given atomic number."""
with path("grid.data.proatoms", f"a{num:03d}.npz") as fname:
data = np.load(fname)
data = np.load(files("grid.data.proatoms").joinpath(f"a{num:03d}.npz"))
return data["r"], data["dn"]

@staticmethod
Expand Down

0 comments on commit f0f5dbe

Please sign in to comment.