diff --git a/src/io4dolfinx/readers.py b/src/io4dolfinx/readers.py index 85408dc..fb85a74 100644 --- a/src/io4dolfinx/readers.py +++ b/src/io4dolfinx/readers.py @@ -392,9 +392,22 @@ def create_geometry_function_space(mesh: dolfinx.mesh.Mesh, N: int) -> dolfinx.f else: raise RuntimeError(f"Unsupported type {ufl_el.dtype}") try: - cpp_el = _fe_constructor(ufl_el.basix_element._e, block_shape=value_shape, symmetric=False) + # DOLFINx > 0.11 requires the geometric dimension of the mesh + cpp_el = _fe_constructor( + ufl_el.basix_element._e, + gdim=mesh.geometry.dim, + block_shape=value_shape, + symmetric=False, + ) except TypeError: - cpp_el = _fe_constructor(ufl_el.basix_element._e, block_size=N, symmetric=False) # type: ignore[call-overload] + try: + cpp_el = _fe_constructor( # type: ignore[call-overload] + ufl_el.basix_element._e, + block_shape=value_shape, + symmetric=False, + ) + except TypeError: + cpp_el = _fe_constructor(ufl_el.basix_element._e, block_size=N, symmetric=False) # type: ignore[call-overload] dof_layout = dolfinx.cpp.fem.create_element_dof_layout(cpp_el, []) cpp_dofmap = dolfinx.cpp.fem.DofMap(dof_layout, compat.cpp_index_map(geom_imap), N, adj_list, N)