diff --git a/MANIFEST.in b/MANIFEST.in index d523c665..c715c9e4 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -3,5 +3,6 @@ include LICENSE include grid.data/*.* include grid.data.lebedev/*.npz include grid.data.spherical_design/*.npz +include grid.data.maxdet/*.npz include grid.data.prune_grid/*.npz include grid.data.proatoms/*.npz diff --git a/src/grid/angular.py b/src/grid/angular.py index 0a9504b2..a3c929a9 100644 --- a/src/grid/angular.py +++ b/src/grid/angular.py @@ -274,14 +274,18 @@ 52328: 323, 52978: 325, } +MAX_DET_NPOINTS = {(degree + 1) ** 2: degree for degree in range(1, 200)} + # Lebedev/Spherical dictionary of grid's degrees (keys) and numbers of points (values) LEBEDEV_DEGREES = dict([(v, k) for k, v in LEBEDEV_NPOINTS.items()]) SPHERICAL_DEGREES = dict([(v, k) for k, v in SPHERICAL_NPOINTS.items()]) +MAX_DET_DEGREES = dict([(v, k) for k, v in MAX_DET_NPOINTS.items()]) # Cache is used to store the angular grid LEBEDEV_CACHE = {} SPHERICAL_CACHE = {} +MAX_DET_CACHE = {} class AngularGrid(Grid): @@ -332,8 +336,9 @@ def __init__( If True, then store the points and weights of the AngularGrid in cache to avoid duplicate grids that have the same `degree`\. method: str, optional, keyword-only - Method for constructing the angular grid. Options are "lebedev" (for Lebedev-Laikov) - and "spherical" (for symmetric spherical t-design). + Method for constructing the angular grid. Options are "lebedev" (for Lebedev-Laikov), + "spherical" (for symmetric spherical t-design), and "maxdet" (for maximum determinant + grids). Returns ------- @@ -353,8 +358,12 @@ def __init__( cache_dict = LEBEDEV_CACHE elif method == "spherical": cache_dict = SPHERICAL_CACHE + elif method == "maxdet": + cache_dict = MAX_DET_CACHE else: - raise ValueError(f"Method {method} is not supported, choose 'lebedev' or 'spherical'") + raise ValueError( + f"Method {method} is not supported, choose 'lebedev', 'spherical' or 'maxdet'" + ) # allow only one of degree or size to be given if size is not None: @@ -382,7 +391,11 @@ def __init__( self._degree = degree # Multiply weights by 4 pi, so that the spherical harmonics are orthonormal, # etc. \int Y_l1 Y_l2 = \delta_{l1, l2} - super().__init__(points, weights * 4 * np.pi) + # (not necessary for maxdet, already normalized to 4 pi / N) + if method == "maxdet": + super().__init__(points, weights) + else: + super().__init__(points, weights * 4 * np.pi) if method == "lebedev" and np.any(weights < 0.0): # Lebedev degrees 13, 25, 27 have negative weights. Symmetric spherical t-design @@ -448,8 +461,9 @@ def _get_degree_and_size(degree: int | None, size: int | None, method: str): degree is used for constructing the grid. Use None, if `degree` is given. If both `degree` and `size` are given `degree` is used for constructing the grid. method: str - Method for constructing the angular grid. Options are "lebedev" (for Lebedev-Laikov) - and "spherical" (for symmetric spherical t-design). + Method for constructing the angular grid. Options are "lebedev" (for Lebedev-Laikov), + "spherical" (for symmetric spherical t-design), and "maxdet" (for maximum determinant + grids). Returns ------- @@ -464,8 +478,12 @@ def _get_degree_and_size(degree: int | None, size: int | None, method: str): dict_degrees, dict_npoints = LEBEDEV_DEGREES, LEBEDEV_NPOINTS elif method == "spherical": dict_degrees, dict_npoints = SPHERICAL_DEGREES, SPHERICAL_NPOINTS + elif method == "maxdet": + dict_degrees, dict_npoints = MAX_DET_DEGREES, MAX_DET_NPOINTS else: - raise ValueError(f"Method {method} is not supported, choose 'lebedev' or 'spherical'") + raise ValueError( + f"Method {method} is not supported, choose 'lebedev', 'spherical' or 'maxdet'" + ) # check whether degree and size are valid if not (degree is None or (isinstance(degree, (int, np.integer)) and degree >= 0)): @@ -535,8 +553,13 @@ def _load_precomputed_angular_grid(degree: int, size: int, method: str): elif method == "spherical": dict_degrees, dict_npoints = SPHERICAL_DEGREES, SPHERICAL_NPOINTS file_path = "grid.data.spherical_design" + elif method == "maxdet": + dict_degrees, dict_npoints = MAX_DET_DEGREES, MAX_DET_NPOINTS + file_path = "grid.data.maxdet" else: - raise ValueError(f"Method {method} is not supported, choose 'lebedev' or 'spherical'") + raise ValueError( + f"Method {method} is not supported, choose 'lebedev', 'spherical', or 'maxdet'" + ) # check whether degree and size are valid if not (degree is None or (isinstance(degree, (int, np.integer)) and degree >= 0)): diff --git a/src/grid/data/maxdet/__init__.py b/src/grid/data/maxdet/__init__.py new file mode 100644 index 00000000..e4e7aea0 --- /dev/null +++ b/src/grid/data/maxdet/__init__.py @@ -0,0 +1,23 @@ +r""" +Maximum Determinant points on the sphere. + +These were obtained from `https://web.maths.unsw.edu.au/~rsw/Sphere/MaxDet/MaxDet1.html`. + +The weights are the ones in the data files. For this, the sum of the weights is 4*pi. + +References +---------- +.. [1] I. H. Sloan and R. S. Womersley, "How good can polynomial interpolation on the sphere + be?", Advances in Computational Mathematics 14 (2001), 195-226. + +.. [2] I. H. Sloan and R. S. Womersley, "Extremal systems of points and numerical + integration on the sphere", Advances in Computational Mathematics 21 (2004), 107-125. + +.. [3] J. Marzo and J. Ortega-Cerda, "Equidistribution of Fekete Points on the Sphere", + Constructive Approximation 32 (2010), 513-521. + https://link.springer.com/article/10.1007/s00365-009-9051-5 + +.. [4] S. V. Borodachov, D. P. Hardin, and E. B. Saff, Discrete Energy on Rectifiable Sets, + Springer Monographs in Mathematics, Springer, 2019. + https://www.springer.com/gp/book/9780387848075 +""" \ No newline at end of file diff --git a/src/grid/data/maxdet/maxdet_100_10201.npz b/src/grid/data/maxdet/maxdet_100_10201.npz new file mode 100644 index 00000000..7fd6fe9c Binary files /dev/null and b/src/grid/data/maxdet/maxdet_100_10201.npz differ diff --git a/src/grid/data/maxdet/maxdet_101_10404.npz b/src/grid/data/maxdet/maxdet_101_10404.npz new file mode 100644 index 00000000..5940d26e Binary files /dev/null and b/src/grid/data/maxdet/maxdet_101_10404.npz differ diff --git a/src/grid/data/maxdet/maxdet_102_10609.npz b/src/grid/data/maxdet/maxdet_102_10609.npz new file mode 100644 index 00000000..e6ae9409 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_102_10609.npz differ diff --git a/src/grid/data/maxdet/maxdet_103_10816.npz b/src/grid/data/maxdet/maxdet_103_10816.npz new file mode 100644 index 00000000..06321227 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_103_10816.npz differ diff --git a/src/grid/data/maxdet/maxdet_104_11025.npz b/src/grid/data/maxdet/maxdet_104_11025.npz new file mode 100644 index 00000000..184d05e3 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_104_11025.npz differ diff --git a/src/grid/data/maxdet/maxdet_105_11236.npz b/src/grid/data/maxdet/maxdet_105_11236.npz new file mode 100644 index 00000000..9e4709b4 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_105_11236.npz differ diff --git a/src/grid/data/maxdet/maxdet_106_11449.npz b/src/grid/data/maxdet/maxdet_106_11449.npz new file mode 100644 index 00000000..24c22da3 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_106_11449.npz differ diff --git a/src/grid/data/maxdet/maxdet_107_11664.npz b/src/grid/data/maxdet/maxdet_107_11664.npz new file mode 100644 index 00000000..60cc497e Binary files /dev/null and b/src/grid/data/maxdet/maxdet_107_11664.npz differ diff --git a/src/grid/data/maxdet/maxdet_108_11881.npz b/src/grid/data/maxdet/maxdet_108_11881.npz new file mode 100644 index 00000000..3980f8ec Binary files /dev/null and b/src/grid/data/maxdet/maxdet_108_11881.npz differ diff --git a/src/grid/data/maxdet/maxdet_109_12100.npz b/src/grid/data/maxdet/maxdet_109_12100.npz new file mode 100644 index 00000000..7100a0ba Binary files /dev/null and b/src/grid/data/maxdet/maxdet_109_12100.npz differ diff --git a/src/grid/data/maxdet/maxdet_10_121.npz b/src/grid/data/maxdet/maxdet_10_121.npz new file mode 100644 index 00000000..88be1847 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_10_121.npz differ diff --git a/src/grid/data/maxdet/maxdet_110_12321.npz b/src/grid/data/maxdet/maxdet_110_12321.npz new file mode 100644 index 00000000..c2eea680 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_110_12321.npz differ diff --git a/src/grid/data/maxdet/maxdet_111_12544.npz b/src/grid/data/maxdet/maxdet_111_12544.npz new file mode 100644 index 00000000..25047d59 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_111_12544.npz differ diff --git a/src/grid/data/maxdet/maxdet_112_12769.npz b/src/grid/data/maxdet/maxdet_112_12769.npz new file mode 100644 index 00000000..32fb5818 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_112_12769.npz differ diff --git a/src/grid/data/maxdet/maxdet_113_12996.npz b/src/grid/data/maxdet/maxdet_113_12996.npz new file mode 100644 index 00000000..e9090a9e Binary files /dev/null and b/src/grid/data/maxdet/maxdet_113_12996.npz differ diff --git a/src/grid/data/maxdet/maxdet_114_13225.npz b/src/grid/data/maxdet/maxdet_114_13225.npz new file mode 100644 index 00000000..4ab4cbe7 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_114_13225.npz differ diff --git a/src/grid/data/maxdet/maxdet_115_13456.npz b/src/grid/data/maxdet/maxdet_115_13456.npz new file mode 100644 index 00000000..3678f7b0 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_115_13456.npz differ diff --git a/src/grid/data/maxdet/maxdet_116_13689.npz b/src/grid/data/maxdet/maxdet_116_13689.npz new file mode 100644 index 00000000..a0514866 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_116_13689.npz differ diff --git a/src/grid/data/maxdet/maxdet_117_13924.npz b/src/grid/data/maxdet/maxdet_117_13924.npz new file mode 100644 index 00000000..966995ac Binary files /dev/null and b/src/grid/data/maxdet/maxdet_117_13924.npz differ diff --git a/src/grid/data/maxdet/maxdet_118_14161.npz b/src/grid/data/maxdet/maxdet_118_14161.npz new file mode 100644 index 00000000..ab642c99 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_118_14161.npz differ diff --git a/src/grid/data/maxdet/maxdet_119_14400.npz b/src/grid/data/maxdet/maxdet_119_14400.npz new file mode 100644 index 00000000..c3f3053c Binary files /dev/null and b/src/grid/data/maxdet/maxdet_119_14400.npz differ diff --git a/src/grid/data/maxdet/maxdet_11_144.npz b/src/grid/data/maxdet/maxdet_11_144.npz new file mode 100644 index 00000000..c090487b Binary files /dev/null and b/src/grid/data/maxdet/maxdet_11_144.npz differ diff --git a/src/grid/data/maxdet/maxdet_120_14641.npz b/src/grid/data/maxdet/maxdet_120_14641.npz new file mode 100644 index 00000000..d0d75b50 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_120_14641.npz differ diff --git a/src/grid/data/maxdet/maxdet_121_14884.npz b/src/grid/data/maxdet/maxdet_121_14884.npz new file mode 100644 index 00000000..c22e5500 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_121_14884.npz differ diff --git a/src/grid/data/maxdet/maxdet_122_15129.npz b/src/grid/data/maxdet/maxdet_122_15129.npz new file mode 100644 index 00000000..5442f345 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_122_15129.npz differ diff --git a/src/grid/data/maxdet/maxdet_123_15376.npz b/src/grid/data/maxdet/maxdet_123_15376.npz new file mode 100644 index 00000000..9b294f52 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_123_15376.npz differ diff --git a/src/grid/data/maxdet/maxdet_124_15625.npz b/src/grid/data/maxdet/maxdet_124_15625.npz new file mode 100644 index 00000000..2edbe693 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_124_15625.npz differ diff --git a/src/grid/data/maxdet/maxdet_125_15876.npz b/src/grid/data/maxdet/maxdet_125_15876.npz new file mode 100644 index 00000000..fc8c3222 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_125_15876.npz differ diff --git a/src/grid/data/maxdet/maxdet_126_16129.npz b/src/grid/data/maxdet/maxdet_126_16129.npz new file mode 100644 index 00000000..6fc3f5ac Binary files /dev/null and b/src/grid/data/maxdet/maxdet_126_16129.npz differ diff --git a/src/grid/data/maxdet/maxdet_127_16384.npz b/src/grid/data/maxdet/maxdet_127_16384.npz new file mode 100644 index 00000000..dcd2dd85 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_127_16384.npz differ diff --git a/src/grid/data/maxdet/maxdet_128_16641.npz b/src/grid/data/maxdet/maxdet_128_16641.npz new file mode 100644 index 00000000..978efe6d Binary files /dev/null and b/src/grid/data/maxdet/maxdet_128_16641.npz differ diff --git a/src/grid/data/maxdet/maxdet_129_16900.npz b/src/grid/data/maxdet/maxdet_129_16900.npz new file mode 100644 index 00000000..efb7107d Binary files /dev/null and b/src/grid/data/maxdet/maxdet_129_16900.npz differ diff --git a/src/grid/data/maxdet/maxdet_12_169.npz b/src/grid/data/maxdet/maxdet_12_169.npz new file mode 100644 index 00000000..81534b51 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_12_169.npz differ diff --git a/src/grid/data/maxdet/maxdet_130_17161.npz b/src/grid/data/maxdet/maxdet_130_17161.npz new file mode 100644 index 00000000..6d9bddf9 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_130_17161.npz differ diff --git a/src/grid/data/maxdet/maxdet_131_17424.npz b/src/grid/data/maxdet/maxdet_131_17424.npz new file mode 100644 index 00000000..fef603f8 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_131_17424.npz differ diff --git a/src/grid/data/maxdet/maxdet_132_17689.npz b/src/grid/data/maxdet/maxdet_132_17689.npz new file mode 100644 index 00000000..36c92d59 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_132_17689.npz differ diff --git a/src/grid/data/maxdet/maxdet_133_17956.npz b/src/grid/data/maxdet/maxdet_133_17956.npz new file mode 100644 index 00000000..fa977b19 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_133_17956.npz differ diff --git a/src/grid/data/maxdet/maxdet_134_18225.npz b/src/grid/data/maxdet/maxdet_134_18225.npz new file mode 100644 index 00000000..32622a94 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_134_18225.npz differ diff --git a/src/grid/data/maxdet/maxdet_135_18496.npz b/src/grid/data/maxdet/maxdet_135_18496.npz new file mode 100644 index 00000000..299f275a Binary files /dev/null and b/src/grid/data/maxdet/maxdet_135_18496.npz differ diff --git a/src/grid/data/maxdet/maxdet_136_18769.npz b/src/grid/data/maxdet/maxdet_136_18769.npz new file mode 100644 index 00000000..f9ce9321 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_136_18769.npz differ diff --git a/src/grid/data/maxdet/maxdet_137_19044.npz b/src/grid/data/maxdet/maxdet_137_19044.npz new file mode 100644 index 00000000..30e88e0e Binary files /dev/null and b/src/grid/data/maxdet/maxdet_137_19044.npz differ diff --git a/src/grid/data/maxdet/maxdet_138_19321.npz b/src/grid/data/maxdet/maxdet_138_19321.npz new file mode 100644 index 00000000..38bc93f8 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_138_19321.npz differ diff --git a/src/grid/data/maxdet/maxdet_139_19600.npz b/src/grid/data/maxdet/maxdet_139_19600.npz new file mode 100644 index 00000000..3c75587c Binary files /dev/null and b/src/grid/data/maxdet/maxdet_139_19600.npz differ diff --git a/src/grid/data/maxdet/maxdet_13_196.npz b/src/grid/data/maxdet/maxdet_13_196.npz new file mode 100644 index 00000000..12afa7a4 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_13_196.npz differ diff --git a/src/grid/data/maxdet/maxdet_140_19881.npz b/src/grid/data/maxdet/maxdet_140_19881.npz new file mode 100644 index 00000000..62e70cd2 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_140_19881.npz differ diff --git a/src/grid/data/maxdet/maxdet_141_20164.npz b/src/grid/data/maxdet/maxdet_141_20164.npz new file mode 100644 index 00000000..b418fbc5 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_141_20164.npz differ diff --git a/src/grid/data/maxdet/maxdet_142_20449.npz b/src/grid/data/maxdet/maxdet_142_20449.npz new file mode 100644 index 00000000..5d78ae40 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_142_20449.npz differ diff --git a/src/grid/data/maxdet/maxdet_143_20736.npz b/src/grid/data/maxdet/maxdet_143_20736.npz new file mode 100644 index 00000000..ea761c89 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_143_20736.npz differ diff --git a/src/grid/data/maxdet/maxdet_144_21025.npz b/src/grid/data/maxdet/maxdet_144_21025.npz new file mode 100644 index 00000000..ff5893d1 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_144_21025.npz differ diff --git a/src/grid/data/maxdet/maxdet_145_21316.npz b/src/grid/data/maxdet/maxdet_145_21316.npz new file mode 100644 index 00000000..fb954c6f Binary files /dev/null and b/src/grid/data/maxdet/maxdet_145_21316.npz differ diff --git a/src/grid/data/maxdet/maxdet_146_21609.npz b/src/grid/data/maxdet/maxdet_146_21609.npz new file mode 100644 index 00000000..564719c5 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_146_21609.npz differ diff --git a/src/grid/data/maxdet/maxdet_147_21904.npz b/src/grid/data/maxdet/maxdet_147_21904.npz new file mode 100644 index 00000000..257b95c1 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_147_21904.npz differ diff --git a/src/grid/data/maxdet/maxdet_148_22201.npz b/src/grid/data/maxdet/maxdet_148_22201.npz new file mode 100644 index 00000000..3d327d38 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_148_22201.npz differ diff --git a/src/grid/data/maxdet/maxdet_149_22500.npz b/src/grid/data/maxdet/maxdet_149_22500.npz new file mode 100644 index 00000000..4166906d Binary files /dev/null and b/src/grid/data/maxdet/maxdet_149_22500.npz differ diff --git a/src/grid/data/maxdet/maxdet_14_225.npz b/src/grid/data/maxdet/maxdet_14_225.npz new file mode 100644 index 00000000..06b4ff84 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_14_225.npz differ diff --git a/src/grid/data/maxdet/maxdet_150_22801.npz b/src/grid/data/maxdet/maxdet_150_22801.npz new file mode 100644 index 00000000..651b9210 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_150_22801.npz differ diff --git a/src/grid/data/maxdet/maxdet_151_23104.npz b/src/grid/data/maxdet/maxdet_151_23104.npz new file mode 100644 index 00000000..3c244ba3 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_151_23104.npz differ diff --git a/src/grid/data/maxdet/maxdet_152_23409.npz b/src/grid/data/maxdet/maxdet_152_23409.npz new file mode 100644 index 00000000..4c3a972d Binary files /dev/null and b/src/grid/data/maxdet/maxdet_152_23409.npz differ diff --git a/src/grid/data/maxdet/maxdet_153_23716.npz b/src/grid/data/maxdet/maxdet_153_23716.npz new file mode 100644 index 00000000..6495935e Binary files /dev/null and b/src/grid/data/maxdet/maxdet_153_23716.npz differ diff --git a/src/grid/data/maxdet/maxdet_154_24025.npz b/src/grid/data/maxdet/maxdet_154_24025.npz new file mode 100644 index 00000000..3948b998 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_154_24025.npz differ diff --git a/src/grid/data/maxdet/maxdet_155_24336.npz b/src/grid/data/maxdet/maxdet_155_24336.npz new file mode 100644 index 00000000..cbb04590 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_155_24336.npz differ diff --git a/src/grid/data/maxdet/maxdet_156_24649.npz b/src/grid/data/maxdet/maxdet_156_24649.npz new file mode 100644 index 00000000..4f02b117 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_156_24649.npz differ diff --git a/src/grid/data/maxdet/maxdet_157_24964.npz b/src/grid/data/maxdet/maxdet_157_24964.npz new file mode 100644 index 00000000..e83ff8cb Binary files /dev/null and b/src/grid/data/maxdet/maxdet_157_24964.npz differ diff --git a/src/grid/data/maxdet/maxdet_158_25281.npz b/src/grid/data/maxdet/maxdet_158_25281.npz new file mode 100644 index 00000000..0051aeb4 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_158_25281.npz differ diff --git a/src/grid/data/maxdet/maxdet_159_25600.npz b/src/grid/data/maxdet/maxdet_159_25600.npz new file mode 100644 index 00000000..fc3c7cdc Binary files /dev/null and b/src/grid/data/maxdet/maxdet_159_25600.npz differ diff --git a/src/grid/data/maxdet/maxdet_15_256.npz b/src/grid/data/maxdet/maxdet_15_256.npz new file mode 100644 index 00000000..d0c7a08c Binary files /dev/null and b/src/grid/data/maxdet/maxdet_15_256.npz differ diff --git a/src/grid/data/maxdet/maxdet_160_25921.npz b/src/grid/data/maxdet/maxdet_160_25921.npz new file mode 100644 index 00000000..0d54a526 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_160_25921.npz differ diff --git a/src/grid/data/maxdet/maxdet_161_26244.npz b/src/grid/data/maxdet/maxdet_161_26244.npz new file mode 100644 index 00000000..18a438bf Binary files /dev/null and b/src/grid/data/maxdet/maxdet_161_26244.npz differ diff --git a/src/grid/data/maxdet/maxdet_162_26569.npz b/src/grid/data/maxdet/maxdet_162_26569.npz new file mode 100644 index 00000000..7da4e7f7 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_162_26569.npz differ diff --git a/src/grid/data/maxdet/maxdet_163_26896.npz b/src/grid/data/maxdet/maxdet_163_26896.npz new file mode 100644 index 00000000..859bd32c Binary files /dev/null and b/src/grid/data/maxdet/maxdet_163_26896.npz differ diff --git a/src/grid/data/maxdet/maxdet_164_27225.npz b/src/grid/data/maxdet/maxdet_164_27225.npz new file mode 100644 index 00000000..389ab317 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_164_27225.npz differ diff --git a/src/grid/data/maxdet/maxdet_165_27556.npz b/src/grid/data/maxdet/maxdet_165_27556.npz new file mode 100644 index 00000000..02a47776 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_165_27556.npz differ diff --git a/src/grid/data/maxdet/maxdet_166_27889.npz b/src/grid/data/maxdet/maxdet_166_27889.npz new file mode 100644 index 00000000..2196d1ca Binary files /dev/null and b/src/grid/data/maxdet/maxdet_166_27889.npz differ diff --git a/src/grid/data/maxdet/maxdet_167_28224.npz b/src/grid/data/maxdet/maxdet_167_28224.npz new file mode 100644 index 00000000..89d8651e Binary files /dev/null and b/src/grid/data/maxdet/maxdet_167_28224.npz differ diff --git a/src/grid/data/maxdet/maxdet_168_28561.npz b/src/grid/data/maxdet/maxdet_168_28561.npz new file mode 100644 index 00000000..1ac316e1 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_168_28561.npz differ diff --git a/src/grid/data/maxdet/maxdet_169_28900.npz b/src/grid/data/maxdet/maxdet_169_28900.npz new file mode 100644 index 00000000..c004527f Binary files /dev/null and b/src/grid/data/maxdet/maxdet_169_28900.npz differ diff --git a/src/grid/data/maxdet/maxdet_16_289.npz b/src/grid/data/maxdet/maxdet_16_289.npz new file mode 100644 index 00000000..e2ad2b50 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_16_289.npz differ diff --git a/src/grid/data/maxdet/maxdet_170_29241.npz b/src/grid/data/maxdet/maxdet_170_29241.npz new file mode 100644 index 00000000..3dc3b03a Binary files /dev/null and b/src/grid/data/maxdet/maxdet_170_29241.npz differ diff --git a/src/grid/data/maxdet/maxdet_171_29584.npz b/src/grid/data/maxdet/maxdet_171_29584.npz new file mode 100644 index 00000000..8147432b Binary files /dev/null and b/src/grid/data/maxdet/maxdet_171_29584.npz differ diff --git a/src/grid/data/maxdet/maxdet_172_29929.npz b/src/grid/data/maxdet/maxdet_172_29929.npz new file mode 100644 index 00000000..6a550f07 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_172_29929.npz differ diff --git a/src/grid/data/maxdet/maxdet_173_30276.npz b/src/grid/data/maxdet/maxdet_173_30276.npz new file mode 100644 index 00000000..f14ef7d4 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_173_30276.npz differ diff --git a/src/grid/data/maxdet/maxdet_174_30625.npz b/src/grid/data/maxdet/maxdet_174_30625.npz new file mode 100644 index 00000000..13d25df1 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_174_30625.npz differ diff --git a/src/grid/data/maxdet/maxdet_175_30976.npz b/src/grid/data/maxdet/maxdet_175_30976.npz new file mode 100644 index 00000000..da735851 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_175_30976.npz differ diff --git a/src/grid/data/maxdet/maxdet_176_31329.npz b/src/grid/data/maxdet/maxdet_176_31329.npz new file mode 100644 index 00000000..36def2fe Binary files /dev/null and b/src/grid/data/maxdet/maxdet_176_31329.npz differ diff --git a/src/grid/data/maxdet/maxdet_177_31684.npz b/src/grid/data/maxdet/maxdet_177_31684.npz new file mode 100644 index 00000000..2a2ce961 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_177_31684.npz differ diff --git a/src/grid/data/maxdet/maxdet_178_32041.npz b/src/grid/data/maxdet/maxdet_178_32041.npz new file mode 100644 index 00000000..9771010d Binary files /dev/null and b/src/grid/data/maxdet/maxdet_178_32041.npz differ diff --git a/src/grid/data/maxdet/maxdet_179_32400.npz b/src/grid/data/maxdet/maxdet_179_32400.npz new file mode 100644 index 00000000..32297aad Binary files /dev/null and b/src/grid/data/maxdet/maxdet_179_32400.npz differ diff --git a/src/grid/data/maxdet/maxdet_17_324.npz b/src/grid/data/maxdet/maxdet_17_324.npz new file mode 100644 index 00000000..0e964dce Binary files /dev/null and b/src/grid/data/maxdet/maxdet_17_324.npz differ diff --git a/src/grid/data/maxdet/maxdet_180_32761.npz b/src/grid/data/maxdet/maxdet_180_32761.npz new file mode 100644 index 00000000..79cb258c Binary files /dev/null and b/src/grid/data/maxdet/maxdet_180_32761.npz differ diff --git a/src/grid/data/maxdet/maxdet_181_33124.npz b/src/grid/data/maxdet/maxdet_181_33124.npz new file mode 100644 index 00000000..023a10e1 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_181_33124.npz differ diff --git a/src/grid/data/maxdet/maxdet_182_33489.npz b/src/grid/data/maxdet/maxdet_182_33489.npz new file mode 100644 index 00000000..5ddaeeb6 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_182_33489.npz differ diff --git a/src/grid/data/maxdet/maxdet_183_33856.npz b/src/grid/data/maxdet/maxdet_183_33856.npz new file mode 100644 index 00000000..07a41ee3 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_183_33856.npz differ diff --git a/src/grid/data/maxdet/maxdet_184_34225.npz b/src/grid/data/maxdet/maxdet_184_34225.npz new file mode 100644 index 00000000..d52631fe Binary files /dev/null and b/src/grid/data/maxdet/maxdet_184_34225.npz differ diff --git a/src/grid/data/maxdet/maxdet_185_34596.npz b/src/grid/data/maxdet/maxdet_185_34596.npz new file mode 100644 index 00000000..1255bf5b Binary files /dev/null and b/src/grid/data/maxdet/maxdet_185_34596.npz differ diff --git a/src/grid/data/maxdet/maxdet_186_34969.npz b/src/grid/data/maxdet/maxdet_186_34969.npz new file mode 100644 index 00000000..ca2e3438 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_186_34969.npz differ diff --git a/src/grid/data/maxdet/maxdet_187_35344.npz b/src/grid/data/maxdet/maxdet_187_35344.npz new file mode 100644 index 00000000..4328b637 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_187_35344.npz differ diff --git a/src/grid/data/maxdet/maxdet_188_35721.npz b/src/grid/data/maxdet/maxdet_188_35721.npz new file mode 100644 index 00000000..8a168cb0 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_188_35721.npz differ diff --git a/src/grid/data/maxdet/maxdet_189_36100.npz b/src/grid/data/maxdet/maxdet_189_36100.npz new file mode 100644 index 00000000..658e812d Binary files /dev/null and b/src/grid/data/maxdet/maxdet_189_36100.npz differ diff --git a/src/grid/data/maxdet/maxdet_18_361.npz b/src/grid/data/maxdet/maxdet_18_361.npz new file mode 100644 index 00000000..dba89f7c Binary files /dev/null and b/src/grid/data/maxdet/maxdet_18_361.npz differ diff --git a/src/grid/data/maxdet/maxdet_190_36481.npz b/src/grid/data/maxdet/maxdet_190_36481.npz new file mode 100644 index 00000000..f0418cce Binary files /dev/null and b/src/grid/data/maxdet/maxdet_190_36481.npz differ diff --git a/src/grid/data/maxdet/maxdet_191_36864.npz b/src/grid/data/maxdet/maxdet_191_36864.npz new file mode 100644 index 00000000..50e3e006 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_191_36864.npz differ diff --git a/src/grid/data/maxdet/maxdet_192_37249.npz b/src/grid/data/maxdet/maxdet_192_37249.npz new file mode 100644 index 00000000..8324b640 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_192_37249.npz differ diff --git a/src/grid/data/maxdet/maxdet_193_37636.npz b/src/grid/data/maxdet/maxdet_193_37636.npz new file mode 100644 index 00000000..b5c46907 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_193_37636.npz differ diff --git a/src/grid/data/maxdet/maxdet_194_38025.npz b/src/grid/data/maxdet/maxdet_194_38025.npz new file mode 100644 index 00000000..e236fe33 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_194_38025.npz differ diff --git a/src/grid/data/maxdet/maxdet_195_38416.npz b/src/grid/data/maxdet/maxdet_195_38416.npz new file mode 100644 index 00000000..4671d12a Binary files /dev/null and b/src/grid/data/maxdet/maxdet_195_38416.npz differ diff --git a/src/grid/data/maxdet/maxdet_196_38809.npz b/src/grid/data/maxdet/maxdet_196_38809.npz new file mode 100644 index 00000000..08fd78e8 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_196_38809.npz differ diff --git a/src/grid/data/maxdet/maxdet_197_39204.npz b/src/grid/data/maxdet/maxdet_197_39204.npz new file mode 100644 index 00000000..9e4a4b4b Binary files /dev/null and b/src/grid/data/maxdet/maxdet_197_39204.npz differ diff --git a/src/grid/data/maxdet/maxdet_198_39601.npz b/src/grid/data/maxdet/maxdet_198_39601.npz new file mode 100644 index 00000000..f76bfe99 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_198_39601.npz differ diff --git a/src/grid/data/maxdet/maxdet_199_40000.npz b/src/grid/data/maxdet/maxdet_199_40000.npz new file mode 100644 index 00000000..31a6dc53 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_199_40000.npz differ diff --git a/src/grid/data/maxdet/maxdet_19_400.npz b/src/grid/data/maxdet/maxdet_19_400.npz new file mode 100644 index 00000000..94bc1cb3 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_19_400.npz differ diff --git a/src/grid/data/maxdet/maxdet_1_4.npz b/src/grid/data/maxdet/maxdet_1_4.npz new file mode 100644 index 00000000..61a41e33 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_1_4.npz differ diff --git a/src/grid/data/maxdet/maxdet_200_40401.npz b/src/grid/data/maxdet/maxdet_200_40401.npz new file mode 100644 index 00000000..61eb413c Binary files /dev/null and b/src/grid/data/maxdet/maxdet_200_40401.npz differ diff --git a/src/grid/data/maxdet/maxdet_20_441.npz b/src/grid/data/maxdet/maxdet_20_441.npz new file mode 100644 index 00000000..4426083a Binary files /dev/null and b/src/grid/data/maxdet/maxdet_20_441.npz differ diff --git a/src/grid/data/maxdet/maxdet_21_484.npz b/src/grid/data/maxdet/maxdet_21_484.npz new file mode 100644 index 00000000..d8de2685 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_21_484.npz differ diff --git a/src/grid/data/maxdet/maxdet_22_529.npz b/src/grid/data/maxdet/maxdet_22_529.npz new file mode 100644 index 00000000..06aa33b9 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_22_529.npz differ diff --git a/src/grid/data/maxdet/maxdet_23_576.npz b/src/grid/data/maxdet/maxdet_23_576.npz new file mode 100644 index 00000000..cb943b08 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_23_576.npz differ diff --git a/src/grid/data/maxdet/maxdet_24_625.npz b/src/grid/data/maxdet/maxdet_24_625.npz new file mode 100644 index 00000000..7a814ab5 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_24_625.npz differ diff --git a/src/grid/data/maxdet/maxdet_25_676.npz b/src/grid/data/maxdet/maxdet_25_676.npz new file mode 100644 index 00000000..c82d8e1d Binary files /dev/null and b/src/grid/data/maxdet/maxdet_25_676.npz differ diff --git a/src/grid/data/maxdet/maxdet_26_729.npz b/src/grid/data/maxdet/maxdet_26_729.npz new file mode 100644 index 00000000..2d8300a0 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_26_729.npz differ diff --git a/src/grid/data/maxdet/maxdet_27_784.npz b/src/grid/data/maxdet/maxdet_27_784.npz new file mode 100644 index 00000000..c1a046d3 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_27_784.npz differ diff --git a/src/grid/data/maxdet/maxdet_28_841.npz b/src/grid/data/maxdet/maxdet_28_841.npz new file mode 100644 index 00000000..91309828 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_28_841.npz differ diff --git a/src/grid/data/maxdet/maxdet_29_900.npz b/src/grid/data/maxdet/maxdet_29_900.npz new file mode 100644 index 00000000..7cf88c98 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_29_900.npz differ diff --git a/src/grid/data/maxdet/maxdet_2_9.npz b/src/grid/data/maxdet/maxdet_2_9.npz new file mode 100644 index 00000000..4c5d8db3 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_2_9.npz differ diff --git a/src/grid/data/maxdet/maxdet_30_961.npz b/src/grid/data/maxdet/maxdet_30_961.npz new file mode 100644 index 00000000..e27f71e6 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_30_961.npz differ diff --git a/src/grid/data/maxdet/maxdet_31_1024.npz b/src/grid/data/maxdet/maxdet_31_1024.npz new file mode 100644 index 00000000..3b9db8cf Binary files /dev/null and b/src/grid/data/maxdet/maxdet_31_1024.npz differ diff --git a/src/grid/data/maxdet/maxdet_32_1089.npz b/src/grid/data/maxdet/maxdet_32_1089.npz new file mode 100644 index 00000000..c1043444 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_32_1089.npz differ diff --git a/src/grid/data/maxdet/maxdet_33_1156.npz b/src/grid/data/maxdet/maxdet_33_1156.npz new file mode 100644 index 00000000..527f38d6 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_33_1156.npz differ diff --git a/src/grid/data/maxdet/maxdet_34_1225.npz b/src/grid/data/maxdet/maxdet_34_1225.npz new file mode 100644 index 00000000..62f893d5 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_34_1225.npz differ diff --git a/src/grid/data/maxdet/maxdet_35_1296.npz b/src/grid/data/maxdet/maxdet_35_1296.npz new file mode 100644 index 00000000..5b91b488 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_35_1296.npz differ diff --git a/src/grid/data/maxdet/maxdet_36_1369.npz b/src/grid/data/maxdet/maxdet_36_1369.npz new file mode 100644 index 00000000..9fbb69eb Binary files /dev/null and b/src/grid/data/maxdet/maxdet_36_1369.npz differ diff --git a/src/grid/data/maxdet/maxdet_37_1444.npz b/src/grid/data/maxdet/maxdet_37_1444.npz new file mode 100644 index 00000000..c5bc70dc Binary files /dev/null and b/src/grid/data/maxdet/maxdet_37_1444.npz differ diff --git a/src/grid/data/maxdet/maxdet_38_1521.npz b/src/grid/data/maxdet/maxdet_38_1521.npz new file mode 100644 index 00000000..784dc818 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_38_1521.npz differ diff --git a/src/grid/data/maxdet/maxdet_39_1600.npz b/src/grid/data/maxdet/maxdet_39_1600.npz new file mode 100644 index 00000000..23328d31 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_39_1600.npz differ diff --git a/src/grid/data/maxdet/maxdet_3_16.npz b/src/grid/data/maxdet/maxdet_3_16.npz new file mode 100644 index 00000000..33515943 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_3_16.npz differ diff --git a/src/grid/data/maxdet/maxdet_40_1681.npz b/src/grid/data/maxdet/maxdet_40_1681.npz new file mode 100644 index 00000000..bcf21f20 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_40_1681.npz differ diff --git a/src/grid/data/maxdet/maxdet_41_1764.npz b/src/grid/data/maxdet/maxdet_41_1764.npz new file mode 100644 index 00000000..1b39c1c9 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_41_1764.npz differ diff --git a/src/grid/data/maxdet/maxdet_42_1849.npz b/src/grid/data/maxdet/maxdet_42_1849.npz new file mode 100644 index 00000000..1cd7507d Binary files /dev/null and b/src/grid/data/maxdet/maxdet_42_1849.npz differ diff --git a/src/grid/data/maxdet/maxdet_43_1936.npz b/src/grid/data/maxdet/maxdet_43_1936.npz new file mode 100644 index 00000000..d9bd2400 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_43_1936.npz differ diff --git a/src/grid/data/maxdet/maxdet_44_2025.npz b/src/grid/data/maxdet/maxdet_44_2025.npz new file mode 100644 index 00000000..caddd35b Binary files /dev/null and b/src/grid/data/maxdet/maxdet_44_2025.npz differ diff --git a/src/grid/data/maxdet/maxdet_45_2116.npz b/src/grid/data/maxdet/maxdet_45_2116.npz new file mode 100644 index 00000000..a57c4ecd Binary files /dev/null and b/src/grid/data/maxdet/maxdet_45_2116.npz differ diff --git a/src/grid/data/maxdet/maxdet_46_2209.npz b/src/grid/data/maxdet/maxdet_46_2209.npz new file mode 100644 index 00000000..9d149072 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_46_2209.npz differ diff --git a/src/grid/data/maxdet/maxdet_47_2304.npz b/src/grid/data/maxdet/maxdet_47_2304.npz new file mode 100644 index 00000000..fc2ae3f7 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_47_2304.npz differ diff --git a/src/grid/data/maxdet/maxdet_48_2401.npz b/src/grid/data/maxdet/maxdet_48_2401.npz new file mode 100644 index 00000000..cd379aa7 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_48_2401.npz differ diff --git a/src/grid/data/maxdet/maxdet_49_2500.npz b/src/grid/data/maxdet/maxdet_49_2500.npz new file mode 100644 index 00000000..3b6d0db9 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_49_2500.npz differ diff --git a/src/grid/data/maxdet/maxdet_4_25.npz b/src/grid/data/maxdet/maxdet_4_25.npz new file mode 100644 index 00000000..f8bf8976 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_4_25.npz differ diff --git a/src/grid/data/maxdet/maxdet_50_2601.npz b/src/grid/data/maxdet/maxdet_50_2601.npz new file mode 100644 index 00000000..c5bfa31e Binary files /dev/null and b/src/grid/data/maxdet/maxdet_50_2601.npz differ diff --git a/src/grid/data/maxdet/maxdet_51_2704.npz b/src/grid/data/maxdet/maxdet_51_2704.npz new file mode 100644 index 00000000..e59d696d Binary files /dev/null and b/src/grid/data/maxdet/maxdet_51_2704.npz differ diff --git a/src/grid/data/maxdet/maxdet_52_2809.npz b/src/grid/data/maxdet/maxdet_52_2809.npz new file mode 100644 index 00000000..0a1d24f9 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_52_2809.npz differ diff --git a/src/grid/data/maxdet/maxdet_53_2916.npz b/src/grid/data/maxdet/maxdet_53_2916.npz new file mode 100644 index 00000000..24c8963e Binary files /dev/null and b/src/grid/data/maxdet/maxdet_53_2916.npz differ diff --git a/src/grid/data/maxdet/maxdet_54_3025.npz b/src/grid/data/maxdet/maxdet_54_3025.npz new file mode 100644 index 00000000..4d6890c3 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_54_3025.npz differ diff --git a/src/grid/data/maxdet/maxdet_55_3136.npz b/src/grid/data/maxdet/maxdet_55_3136.npz new file mode 100644 index 00000000..f9dd2a97 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_55_3136.npz differ diff --git a/src/grid/data/maxdet/maxdet_56_3249.npz b/src/grid/data/maxdet/maxdet_56_3249.npz new file mode 100644 index 00000000..af3b80cf Binary files /dev/null and b/src/grid/data/maxdet/maxdet_56_3249.npz differ diff --git a/src/grid/data/maxdet/maxdet_57_3364.npz b/src/grid/data/maxdet/maxdet_57_3364.npz new file mode 100644 index 00000000..6a31c3e6 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_57_3364.npz differ diff --git a/src/grid/data/maxdet/maxdet_58_3481.npz b/src/grid/data/maxdet/maxdet_58_3481.npz new file mode 100644 index 00000000..8f002828 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_58_3481.npz differ diff --git a/src/grid/data/maxdet/maxdet_59_3600.npz b/src/grid/data/maxdet/maxdet_59_3600.npz new file mode 100644 index 00000000..2d22ad2a Binary files /dev/null and b/src/grid/data/maxdet/maxdet_59_3600.npz differ diff --git a/src/grid/data/maxdet/maxdet_5_36.npz b/src/grid/data/maxdet/maxdet_5_36.npz new file mode 100644 index 00000000..4b53dcf0 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_5_36.npz differ diff --git a/src/grid/data/maxdet/maxdet_60_3721.npz b/src/grid/data/maxdet/maxdet_60_3721.npz new file mode 100644 index 00000000..a52cae9b Binary files /dev/null and b/src/grid/data/maxdet/maxdet_60_3721.npz differ diff --git a/src/grid/data/maxdet/maxdet_61_3844.npz b/src/grid/data/maxdet/maxdet_61_3844.npz new file mode 100644 index 00000000..ea1f268b Binary files /dev/null and b/src/grid/data/maxdet/maxdet_61_3844.npz differ diff --git a/src/grid/data/maxdet/maxdet_62_3969.npz b/src/grid/data/maxdet/maxdet_62_3969.npz new file mode 100644 index 00000000..b0fc68c8 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_62_3969.npz differ diff --git a/src/grid/data/maxdet/maxdet_63_4096.npz b/src/grid/data/maxdet/maxdet_63_4096.npz new file mode 100644 index 00000000..5a3289d3 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_63_4096.npz differ diff --git a/src/grid/data/maxdet/maxdet_64_4225.npz b/src/grid/data/maxdet/maxdet_64_4225.npz new file mode 100644 index 00000000..794dd087 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_64_4225.npz differ diff --git a/src/grid/data/maxdet/maxdet_65_4356.npz b/src/grid/data/maxdet/maxdet_65_4356.npz new file mode 100644 index 00000000..36d9790b Binary files /dev/null and b/src/grid/data/maxdet/maxdet_65_4356.npz differ diff --git a/src/grid/data/maxdet/maxdet_66_4489.npz b/src/grid/data/maxdet/maxdet_66_4489.npz new file mode 100644 index 00000000..31696169 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_66_4489.npz differ diff --git a/src/grid/data/maxdet/maxdet_67_4624.npz b/src/grid/data/maxdet/maxdet_67_4624.npz new file mode 100644 index 00000000..097acadb Binary files /dev/null and b/src/grid/data/maxdet/maxdet_67_4624.npz differ diff --git a/src/grid/data/maxdet/maxdet_68_4761.npz b/src/grid/data/maxdet/maxdet_68_4761.npz new file mode 100644 index 00000000..47aa21c4 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_68_4761.npz differ diff --git a/src/grid/data/maxdet/maxdet_69_4900.npz b/src/grid/data/maxdet/maxdet_69_4900.npz new file mode 100644 index 00000000..76408d3d Binary files /dev/null and b/src/grid/data/maxdet/maxdet_69_4900.npz differ diff --git a/src/grid/data/maxdet/maxdet_6_49.npz b/src/grid/data/maxdet/maxdet_6_49.npz new file mode 100644 index 00000000..1481c7bf Binary files /dev/null and b/src/grid/data/maxdet/maxdet_6_49.npz differ diff --git a/src/grid/data/maxdet/maxdet_70_5041.npz b/src/grid/data/maxdet/maxdet_70_5041.npz new file mode 100644 index 00000000..4a86e3c3 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_70_5041.npz differ diff --git a/src/grid/data/maxdet/maxdet_71_5184.npz b/src/grid/data/maxdet/maxdet_71_5184.npz new file mode 100644 index 00000000..39524016 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_71_5184.npz differ diff --git a/src/grid/data/maxdet/maxdet_72_5329.npz b/src/grid/data/maxdet/maxdet_72_5329.npz new file mode 100644 index 00000000..68f7ed2a Binary files /dev/null and b/src/grid/data/maxdet/maxdet_72_5329.npz differ diff --git a/src/grid/data/maxdet/maxdet_73_5476.npz b/src/grid/data/maxdet/maxdet_73_5476.npz new file mode 100644 index 00000000..6f1b041d Binary files /dev/null and b/src/grid/data/maxdet/maxdet_73_5476.npz differ diff --git a/src/grid/data/maxdet/maxdet_74_5625.npz b/src/grid/data/maxdet/maxdet_74_5625.npz new file mode 100644 index 00000000..f70bf656 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_74_5625.npz differ diff --git a/src/grid/data/maxdet/maxdet_75_5776.npz b/src/grid/data/maxdet/maxdet_75_5776.npz new file mode 100644 index 00000000..84e3f57c Binary files /dev/null and b/src/grid/data/maxdet/maxdet_75_5776.npz differ diff --git a/src/grid/data/maxdet/maxdet_76_5929.npz b/src/grid/data/maxdet/maxdet_76_5929.npz new file mode 100644 index 00000000..569708fe Binary files /dev/null and b/src/grid/data/maxdet/maxdet_76_5929.npz differ diff --git a/src/grid/data/maxdet/maxdet_77_6084.npz b/src/grid/data/maxdet/maxdet_77_6084.npz new file mode 100644 index 00000000..12fee721 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_77_6084.npz differ diff --git a/src/grid/data/maxdet/maxdet_78_6241.npz b/src/grid/data/maxdet/maxdet_78_6241.npz new file mode 100644 index 00000000..f8208a0a Binary files /dev/null and b/src/grid/data/maxdet/maxdet_78_6241.npz differ diff --git a/src/grid/data/maxdet/maxdet_79_6400.npz b/src/grid/data/maxdet/maxdet_79_6400.npz new file mode 100644 index 00000000..5ffeb72e Binary files /dev/null and b/src/grid/data/maxdet/maxdet_79_6400.npz differ diff --git a/src/grid/data/maxdet/maxdet_7_64.npz b/src/grid/data/maxdet/maxdet_7_64.npz new file mode 100644 index 00000000..4e061e91 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_7_64.npz differ diff --git a/src/grid/data/maxdet/maxdet_80_6561.npz b/src/grid/data/maxdet/maxdet_80_6561.npz new file mode 100644 index 00000000..840ce5e4 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_80_6561.npz differ diff --git a/src/grid/data/maxdet/maxdet_81_6724.npz b/src/grid/data/maxdet/maxdet_81_6724.npz new file mode 100644 index 00000000..bb31b502 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_81_6724.npz differ diff --git a/src/grid/data/maxdet/maxdet_82_6889.npz b/src/grid/data/maxdet/maxdet_82_6889.npz new file mode 100644 index 00000000..ebf3c4b3 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_82_6889.npz differ diff --git a/src/grid/data/maxdet/maxdet_83_7056.npz b/src/grid/data/maxdet/maxdet_83_7056.npz new file mode 100644 index 00000000..2b763551 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_83_7056.npz differ diff --git a/src/grid/data/maxdet/maxdet_84_7225.npz b/src/grid/data/maxdet/maxdet_84_7225.npz new file mode 100644 index 00000000..62a8c3cf Binary files /dev/null and b/src/grid/data/maxdet/maxdet_84_7225.npz differ diff --git a/src/grid/data/maxdet/maxdet_85_7396.npz b/src/grid/data/maxdet/maxdet_85_7396.npz new file mode 100644 index 00000000..1ce00678 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_85_7396.npz differ diff --git a/src/grid/data/maxdet/maxdet_86_7569.npz b/src/grid/data/maxdet/maxdet_86_7569.npz new file mode 100644 index 00000000..aa024b51 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_86_7569.npz differ diff --git a/src/grid/data/maxdet/maxdet_87_7744.npz b/src/grid/data/maxdet/maxdet_87_7744.npz new file mode 100644 index 00000000..f5da8cb8 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_87_7744.npz differ diff --git a/src/grid/data/maxdet/maxdet_88_7921.npz b/src/grid/data/maxdet/maxdet_88_7921.npz new file mode 100644 index 00000000..bef82d8b Binary files /dev/null and b/src/grid/data/maxdet/maxdet_88_7921.npz differ diff --git a/src/grid/data/maxdet/maxdet_89_8100.npz b/src/grid/data/maxdet/maxdet_89_8100.npz new file mode 100644 index 00000000..34ecdd5c Binary files /dev/null and b/src/grid/data/maxdet/maxdet_89_8100.npz differ diff --git a/src/grid/data/maxdet/maxdet_8_81.npz b/src/grid/data/maxdet/maxdet_8_81.npz new file mode 100644 index 00000000..8583c749 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_8_81.npz differ diff --git a/src/grid/data/maxdet/maxdet_90_8281.npz b/src/grid/data/maxdet/maxdet_90_8281.npz new file mode 100644 index 00000000..a98ba1fa Binary files /dev/null and b/src/grid/data/maxdet/maxdet_90_8281.npz differ diff --git a/src/grid/data/maxdet/maxdet_91_8464.npz b/src/grid/data/maxdet/maxdet_91_8464.npz new file mode 100644 index 00000000..dec5049b Binary files /dev/null and b/src/grid/data/maxdet/maxdet_91_8464.npz differ diff --git a/src/grid/data/maxdet/maxdet_92_8649.npz b/src/grid/data/maxdet/maxdet_92_8649.npz new file mode 100644 index 00000000..c8b98ef0 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_92_8649.npz differ diff --git a/src/grid/data/maxdet/maxdet_93_8836.npz b/src/grid/data/maxdet/maxdet_93_8836.npz new file mode 100644 index 00000000..0da1b724 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_93_8836.npz differ diff --git a/src/grid/data/maxdet/maxdet_94_9025.npz b/src/grid/data/maxdet/maxdet_94_9025.npz new file mode 100644 index 00000000..223b3703 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_94_9025.npz differ diff --git a/src/grid/data/maxdet/maxdet_95_9216.npz b/src/grid/data/maxdet/maxdet_95_9216.npz new file mode 100644 index 00000000..1dc3b597 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_95_9216.npz differ diff --git a/src/grid/data/maxdet/maxdet_96_9409.npz b/src/grid/data/maxdet/maxdet_96_9409.npz new file mode 100644 index 00000000..3d2889ba Binary files /dev/null and b/src/grid/data/maxdet/maxdet_96_9409.npz differ diff --git a/src/grid/data/maxdet/maxdet_97_9604.npz b/src/grid/data/maxdet/maxdet_97_9604.npz new file mode 100644 index 00000000..95eadd38 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_97_9604.npz differ diff --git a/src/grid/data/maxdet/maxdet_98_9801.npz b/src/grid/data/maxdet/maxdet_98_9801.npz new file mode 100644 index 00000000..cde2413e Binary files /dev/null and b/src/grid/data/maxdet/maxdet_98_9801.npz differ diff --git a/src/grid/data/maxdet/maxdet_99_10000.npz b/src/grid/data/maxdet/maxdet_99_10000.npz new file mode 100644 index 00000000..bb87c899 Binary files /dev/null and b/src/grid/data/maxdet/maxdet_99_10000.npz differ diff --git a/src/grid/data/maxdet/maxdet_9_100.npz b/src/grid/data/maxdet/maxdet_9_100.npz new file mode 100644 index 00000000..b878933d Binary files /dev/null and b/src/grid/data/maxdet/maxdet_9_100.npz differ diff --git a/src/grid/tests/test_angular.py b/src/grid/tests/test_angular.py index b6b2ec1b..3338bf28 100644 --- a/src/grid/tests/test_angular.py +++ b/src/grid/tests/test_angular.py @@ -19,7 +19,6 @@ # -- """Test lebedev grid.""" - from unittest import TestCase import numpy as np @@ -127,7 +126,7 @@ def test_errors_and_warnings(self): @pytest.mark.parametrize("degree", [5, 10, 100]) -@pytest.mark.parametrize("method", ["lebedev", "spherical"]) +@pytest.mark.parametrize("method", ["lebedev", "spherical", "maxdet"]) def test_integration_of_spherical_harmonic_up_to_degree(degree, method): r"""Test integration of spherical harmonic is accurate.""" grid = AngularGrid(degree=degree, method=method) @@ -148,7 +147,7 @@ def test_integration_of_spherical_harmonic_up_to_degree(degree, method): assert_almost_equal(0.0, grid.integrate(sph_harm_one[m_ord, :])) -@pytest.mark.parametrize("method", ["lebedev", "spherical"]) +@pytest.mark.parametrize("method", ["lebedev", "spherical", "maxdet"]) def test_integration_of_spherical_harmonic_not_accurate_beyond_degree(method): r"""Test integration of spherical harmonic of degree higher than grid is not accurate.""" grid = AngularGrid(degree=3, method=method) @@ -163,7 +162,7 @@ def test_integration_of_spherical_harmonic_not_accurate_beyond_degree(method): assert np.abs(grid.integrate(sph_harm[(6) ** 2, :])) > 1e-8 -@pytest.mark.parametrize("method", ["lebedev", "spherical"]) +@pytest.mark.parametrize("method", ["lebedev", "spherical", "maxdet"]) def test_orthogonality_of_spherical_harmonic_up_to_degree_three(method): r"""Test orthogonality of spherical harmonic up to degree 3 is accurate.""" degree = 3 diff --git a/src/grid/tests/test_atomgrid.py b/src/grid/tests/test_atomgrid.py index 45807c4f..bea0f24d 100644 --- a/src/grid/tests/test_atomgrid.py +++ b/src/grid/tests/test_atomgrid.py @@ -31,7 +31,7 @@ from scipy.spatial.transform import Rotation as R from scipy.integrate import trapezoid -from grid.angular import LEBEDEV_DEGREES, AngularGrid +from grid.angular import LEBEDEV_DEGREES, SPHERICAL_DEGREES, MAX_DET_DEGREES, AngularGrid from grid.atomgrid import AtomGrid, _get_rgrid_size from grid.basegrid import Grid, OneDGrid from grid.onedgrid import GaussLaguerre, GaussLegendre, UniformInteger @@ -280,7 +280,7 @@ def test_atomic_rotate(self): rot_mt = R.random(random_state=atgrid2.rotate + i).as_matrix() assert_allclose(rot_shell, non_rot_shell @ rot_mt) - @pytest.mark.parametrize("method", ["lebedev", "spherical"]) + @pytest.mark.parametrize("method", ["lebedev", "spherical", "maxdet"]) def test_get_shell_grid(self, method): """Test angular grid get from get_shell_grid function.""" rad_pts = np.array([0.1, 0.5, 1]) @@ -334,11 +334,17 @@ def test_convert_points_to_sph(self): assert_allclose(np.array([r, theta, phi]).reshape(-1, 3), calc_sph) @pytest.mark.filterwarnings("ignore:Lebedev weights are negative which can*") - @pytest.mark.parametrize("method", ["lebedev", "spherical"]) + @pytest.mark.parametrize("method", ["lebedev", "spherical", "maxdet"]) def test_spherical_complete(self, method): """Test atomic grid consistence for spherical integral.""" - num_pts = len(LEBEDEV_DEGREES) - pts = UniformInteger(num_pts) + degree_maps = { + "lebedev": LEBEDEV_DEGREES, + "spherical": SPHERICAL_DEGREES, + "maxdet": MAX_DET_DEGREES, + } + degree_map = degree_maps[method] + num_shells = len(degree_map) + pts = UniformInteger(num_shells) for _ in range(10): start = np.random.rand() * 1e-5 end = np.random.rand() * 10 + 10 @@ -346,10 +352,10 @@ def test_spherical_complete(self, method): rad_grid = tf.transform_1d_grid(pts) atgrid = AtomGrid( rad_grid, - degrees=list(LEBEDEV_DEGREES.keys()), + degrees=list(degree_map.keys()), method=method, ) - values = np.random.rand(len(LEBEDEV_DEGREES)) + values = np.random.rand(len(degree_map)) pt_val = np.zeros(atgrid.size) for index, value in enumerate(values): pt_val[atgrid._indices[index] : atgrid._indices[index + 1]] = value @@ -391,7 +397,7 @@ def helper_func_power_deriv(self, points): dzf = 8 * points[:, 2] * points[:, 2] / r return dxf + dyf + dzf - @pytest.mark.parametrize("method", ["lebedev", "spherical"]) + @pytest.mark.parametrize("method", ["lebedev", "spherical", "maxdet"]) def test_integrating_angular_components_spherical(self, method): """Test integrating angular components of a spherical harmonics of maximum degree 3.""" odg = OneDGrid(np.array([0.0, 1e-16, 1e-8, 1e-4, 1e-2]), np.ones(5), (0, np.inf)) @@ -463,7 +469,7 @@ def test_integrating_angular_components_with_offcentered_gaussian(self, numb_rad assert np.all(integrals[2, :] < 1e-5) # px, py-orbital should be zero assert np.all(integrals[3, :] < 1e-5) - @pytest.mark.parametrize("method", ["lebedev", "spherical"]) + @pytest.mark.parametrize("method", ["lebedev", "spherical", "maxdet"]) def test_fitting_spherical_harmonics(self, method): r"""Test fitting the radial components of spherical harmonics is just a one, rest zeros.""" max_degree = 10 # Maximum degree @@ -496,7 +502,7 @@ def test_fitting_spherical_harmonics(self, method): assert_almost_equal(radial_comp(radial_pts), 0.0, decimal=8) i += 1 - @pytest.mark.parametrize("method", ["lebedev", "spherical"]) + @pytest.mark.parametrize("method", ["lebedev", "spherical", "maxdet"]) def test_fitting_product_of_spherical_harmonic(self, method): r"""Test fitting the radial components of r**2 times spherical harmonic.""" max_degree = 7 # Maximum degree @@ -567,7 +573,7 @@ def func(sph_points): assert_almost_equal(fit[counter](radial_pts, 2), 0.0) counter += 1 - @pytest.mark.parametrize("method", ["lebedev", "spherical"]) + @pytest.mark.parametrize("method", ["lebedev", "spherical", "maxdet"]) def test_value_fitting(self, method): """Test spline projection the same as spherical harmonics.""" odg = OneDGrid(np.arange(10) + 1, np.ones(10), (0, np.inf)) @@ -618,7 +624,7 @@ def test_interpolation_of_gaussian(self, centers): self.helper_func_gauss(input_points, centers), interfunc(input_points), atol=1e-3 ) - @pytest.mark.parametrize("method", ["lebedev", "spherical"]) + @pytest.mark.parametrize("method", ["lebedev", "spherical", "maxdet"]) def test_cubicspline_and_interp_mol(self, method): """Test cubicspline interpolation values.""" odg = OneDGrid(np.arange(10) + 1, np.ones(10), (0, np.inf)) @@ -662,7 +668,7 @@ def test_cubicspline_and_interp(self): interp_func = atgrid.interpolate(values) assert_allclose(interp_func(xyz), ref_value) - @pytest.mark.parametrize("method", ["lebedev", "spherical"]) + @pytest.mark.parametrize("method", ["lebedev", "spherical", "maxdet"]) def test_spherical_average_of_gaussian(self, method): r"""Test spherical average of a Gaussian (radial) function is itself and its integral.""" @@ -728,7 +734,7 @@ def func(sph_points): assert_allclose(spherical_avg2, 0.0, atol=1e-4) @pytest.mark.filterwarnings("ignore:Lebedev weights are negative which can*") - @pytest.mark.parametrize("method", ["lebedev", "spherical"]) + @pytest.mark.parametrize("method", ["lebedev", "spherical", "maxdet"]) def test_interpolate_and_its_derivatives_on_polynomial(self, method): """Test interpolation of derivative of polynomial function.""" odg = OneDGrid(np.linspace(0.01, 10, num=50), np.ones(50), (0, np.inf))