dolfinx
dolfinx copied to clipboard
Tensor valued Expressions are broken
Instantiating an expression from a tensor valued constant fails.
MWE
import dolfinx.fem, dolfinx.mesh
from mpi4py import MPI
import numpy as np
mesh = dolfinx.mesh.create_unit_square(MPI.COMM_SELF, 3, 3)
V = dolfinx.fem.TensorFunctionSpace(mesh, ("DG", 0), shape=(2, 2))
alpha = dolfinx.fem.Constant(mesh, np.array([[0.0, 1.0], [2.0, 3.0]]))
expr = dolfinx.fem.Expression(alpha, V.element.interpolation_points())
Error:
Traceback (most recent call last):
File "/home/armand/s/mwe/mwe.py", line 8, in <module>
expr = dolfinx.fem.Expression(alpha, V.element.interpolation_points())
File "/home/armand/mambaforge/envs/dolfinx-stable/lib/python3.10/site-packages/dolfinx/fem/function.py", line 117, in __init__
self._ufcx_expression, module, self._code = jit.ffcx_jit(mesh.comm, (ufl_expression, _X),
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 211, in ffcx_jit
r = ffcx.codegeneration.jit.compile_expressions([ufl_object], parameters=p_ffcx, **p_jit)
File "/home/armand/mambaforge/envs/dolfinx-stable/lib/python3.10/site-packages/ffcx/codegeneration/jit.py", line 193, in compile_expressions
ffcx.naming.compute_signature(expressions, _compute_parameter_signature(p)
File "/home/armand/mambaforge/envs/dolfinx-stable/lib/python3.10/site-packages/ffcx/naming.py", line 62, in compute_signature
signature = ufl.algorithms.signature.compute_expression_signature(expr, rn)
File "/home/armand/mambaforge/envs/dolfinx-stable/lib/python3.10/site-packages/ufl/algorithms/signature.py", line 118, in compute_expression_signature
terminal_hashdata = compute_terminal_hashdata([expr], renumbering)
File "/home/armand/mambaforge/envs/dolfinx-stable/lib/python3.10/site-packages/ufl/algorithms/signature.py", line 64, in compute_terminal_hashdata
data = expr._ufl_signature_data_(renumbering)
File "/home/armand/mambaforge/envs/dolfinx-stable/lib/python3.10/site-packages/ufl/constant.py", line 72, in _ufl_signature_data_
self._ufl_domain._ufl_signature_data_(renumbering), repr(self._ufl_shape),
File "/home/armand/mambaforge/envs/dolfinx-stable/lib/python3.10/site-packages/ufl/domain.py", line 121, in _ufl_signature_data_
return ("Mesh", renumbering[self], self._ufl_coordinate_element)
KeyError: Mesh(VectorElement(FiniteElement('Lagrange', triangle, 1), dim=2), 0)
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)