Source: basix Version: 0.0.1~git20210122.4f10ef2-1 Severity: normal Control: forwarded -1 https://github.com/FEniCS/basix/issues/111
Judging by the build errors at https://buildd.debian.org/status/package.php?p=basix, looks like Nedelec 2nd kind H(curl) is not compatible with 32 bit systems. e.g. i386 https://buildd.debian.org/status/fetch.php?pkg=basix&arch=i386&ver=0.0.1%7Egit20210122.4f10ef2-1&stamp=1612391676&raw=0 armel https://buildd.debian.org/status/fetch.php?pkg=basix&arch=armel&ver=0.0.1%7Egit20210122.4f10ef2-1&stamp=1612398463&raw=0 armhf https://buildd.debian.org/status/fetch.php?pkg=basix&arch=armhf&ver=0.0.1%7Egit20210122.4f10ef2-1&stamp=1612392128&raw=0 The error message is __ test_permutation_of_tabulated_data_tetrahedron[5-Nedelec 2nd kind H(curl)] __ element_name = 'Nedelec 2nd kind H(curl)', order = 5 @pytest.mark.parametrize("element_name", tetrahedron_elements) @pytest.mark.parametrize("order", range(1, 6)) def test_permutation_of_tabulated_data_tetrahedron(element_name, order): if element_name == "Crouzeix-Raviart" and order != 1: pytest.xfail() e = basix.create_element(element_name, "tetrahedron", order) N = 4 points = np.array([[i / N, j / N, k / N] for i in range(N + 1) for j in range(N + 1 - i) for k in range(N + 1 - i - j)]) values = e.tabulate(0, points)[0] start = sum(e.entity_dofs[0]) ndofs = e.entity_dofs[1][0] if ndofs != 0: # Check that the 0th permutation undoes the effect of reflecting edge 0 reflected_points = np.array([[p[0], p[2], p[1]] for p in points]) reflected_values = e.tabulate(0, reflected_points)[0] if e.mapping_name == "affine": pass elif e.mapping_name == "covariant piola": for i, r in enumerate(reflected_values): for j in range(e.dim): reflected_values[i][j + e.dim::e.dim] = r[j + e.dim::e.dim][::-1] elif e.mapping_name == "contravariant piola": for i, r in enumerate(reflected_values): for j in range(e.dim): reflected_values[i][j] = -r[j] reflected_values[i][j + e.dim::e.dim] = -r[j + e.dim::e.dim][::-1] elif e.mapping_name == "double covariant piola": pytest.skip() # TODO: implement double covariant piola else: raise ValueError(f"Unknown mapping: {e.mapping_name}") for i, j in zip(values, reflected_values): for d in range(e.value_size): i_slice = i[d * e.dim:(d + 1) * e.dim] j_slice = j[d * e.dim:(d + 1) * e.dim] > assert > np.allclose((e.base_permutations[0].dot(i_slice))[start: start + ndofs], j_slice[start: start + ndofs]) E assert False E + where False = <function allclose at 0xf6d2a658>(array([ 0., -0., -0., -0., -0., 0.]), array([-1.34, -1.12, -0.28, 0.68, 0.8 , -1.5 ])) E + where <function allclose at 0xf6d2a658> = np.allclose test/test_permutations.py:227: AssertionError Since only this one test fails (for only this one element), I'll just skip this test in the 32-bit Debian builds. This is a relatively rare Finite Element, so the package is still useful for providing the others. Once the test is skipped the error won't show in future builds (but will still be there). So I'm filing this bug to keep track of the problem. -- System Information: Debian Release: bullseye/sid APT prefers unstable APT policy: (500, 'unstable'), (1, 'experimental') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 5.10.0-2-amd64 (SMP w/8 CPU threads) Kernel taint flags: TAINT_OOT_MODULE Locale: LANG=en_AU.UTF-8, LC_CTYPE=en_AU.UTF-8 (charmap=UTF-8), LANGUAGE=en_AU:en Shell: /bin/sh linked to /usr/bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled