dolfinx icon indicating copy to clipboard operation
dolfinx copied to clipboard

TensorFunctionSpace is broken

Open atouminet opened this issue 3 years ago • 0 comments

Creating a tensor function space with len(shape) > 2 fails.

MWE

import dolfinx.fem, dolfinx.mesh
from mpi4py import MPI

mesh = dolfinx.mesh.create_unit_square(MPI.COMM_SELF, 3, 3)
V = dolfinx.fem.TensorFunctionSpace(mesh, ("DG", 0), shape=(2, 2, 2, 2))

Error message:

Traceback (most recent call last):
  File "/home/armand/s/mwe/mwe.py", line 5, in <module>
    V = dolfinx.fem.TensorFunctionSpace(mesh, ("DG", 0), (2, 2, 2, 2))
  File "/home/armand/mambaforge/envs/dolfinx-stable/lib/python3.10/site-packages/dolfinx/fem/function.py", line 582, in TensorFunctionSpace
    return FunctionSpace(mesh, ufl_element)
  File "/home/armand/mambaforge/envs/dolfinx-stable/lib/python3.10/site-packages/dolfinx/fem/function.py", line 457, in __init__
    (self._ufcx_element, self._ufcx_dofmap), module, code = jit.ffcx_jit(
  File "/home/armand/mambaforge/envs/dolfinx-stable/lib/python3.10/site-packages/dolfinx/jit.py", line 56, in mpi_jit
    return local_jit(*args, **kwargs)
  File "/home/armand/mambaforge/envs/dolfinx-stable/lib/python3.10/site-packages/dolfinx/jit.py", line 206, in ffcx_jit
    r = ffcx.codegeneration.jit.compile_elements([ufl_object], parameters=p_ffcx, **p_jit)
  File "/home/armand/mambaforge/envs/dolfinx-stable/lib/python3.10/site-packages/ffcx/codegeneration/jit.py", line 98, in compile_elements
    ffcx.naming.compute_signature(elements, _compute_parameter_signature(p)
  File "/home/armand/mambaforge/envs/dolfinx-stable/lib/python3.10/site-packages/ffcx/naming.py", line 34, in compute_signature
    object_signature += repr(convert_element(ufl_object))
  File "/home/armand/mambaforge/envs/dolfinx-stable/lib/python3.10/site-packages/ffcx/element_interface.py", line 25, in convert_element
    return create_element(element)
  File "/home/armand/mambaforge/envs/dolfinx-stable/lib/python3.10/site-packages/ffcx/element_interface.py", line 45, in create_element
    return basix.ufl_wrapper.TensorElement(create_element(element.sub_elements()[0]), element._value_shape)
  File "/home/armand/mambaforge/envs/dolfinx-stable/lib/python3.10/site-packages/basix/ufl_wrapper.py", line 1033, in __init__
    assert len(shape) == 2
AssertionError

dolfinx version is from latest conda update:

print(dolfinx.__version__)
0.5.0

The above MWE used to work in the previous conda version (0.4.2)

atouminet avatar Aug 17 '22 12:08 atouminet