I’ve been trying to implement the linear elasticity tutorial on Google Colab using a FEM on Colab installation of dolfinx 0.8.0.0. So far I have been unable to properly set a constant vector for the Dirichlet boundary condition of the problem.

So far I’ve been using the exact code of the implementation, except for the use of `fem.functionspace`

instead of `fem.VectorFunctionSpace`

This is the code I’ve been using so far

```
from dolfinx import mesh, fem, default_scalar_type
from mpi4py import MPI
import ufl
import numpy as np
L = 1
W = 0.2
domain = mesh.create_box(MPI.COMM_WORLD, [np.array([0, 0, 0]), np.array([L, W, W])],
[20, 6, 6], cell_type=mesh.CellType.hexahedron)
V = fem.functionspace(domain, ("Lagrange", 1))
def clamped_boundary(x):
return np.isclose(x[0], 0)
fdim = domain.topology.dim - 1
boundary_facets = mesh.locate_entities_boundary(domain, fdim, clamped_boundary)
u_D = np.array([0, 0, 0], dtype=default_scalar_type)
bc = fem.dirichletbc(u_D, fem.locate_dofs_topological(V, fdim, boundary_facets), V)
```

However, I always get the following error

```
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
/usr/local/lib/python3.10/dist-packages/dolfinx/fem/bcs.py in dirichletbc(value, dofs, V)
174 try:
--> 175 bc = bctype(_value, dofs, V)
176 except TypeError:
TypeError: __init__(): incompatible function arguments. The following argument types are supported:
1. __init__(self, g: ndarray[dtype=float64, writable=False, order='C'], dofs: ndarray[dtype=int32, writable=False, shape=(*), order='C'], V: dolfinx.cpp.fem.FunctionSpace_float64) -> None
2. __init__(self, g: dolfinx.cpp.fem.Constant_float64, dofs: ndarray[dtype=int32, writable=False, shape=(*), order='C'], V: dolfinx.cpp.fem.FunctionSpace_float64) -> None
3. __init__(self, g: dolfinx.cpp.fem.Function_float64, dofs: ndarray[dtype=int32, writable=False, shape=(*), order='C']) -> None
4. __init__(self, g: dolfinx.cpp.fem.Function_float64, dofs: list[ndarray[dtype=int32, writable=False, shape=(*), order='C']], V: dolfinx.cpp.fem.FunctionSpace_float64) -> None
Invoked with types: dolfinx.cpp.fem.DirichletBC_float64, ndarray, ndarray, dolfinx.fem.function.FunctionSpace
During handling of the above exception, another exception occurred:
RuntimeError Traceback (most recent call last)
1 frames
/usr/local/lib/python3.10/dist-packages/dolfinx/fem/bcs.py in dirichletbc(value, dofs, V)
175 bc = bctype(_value, dofs, V)
176 except TypeError:
--> 177 bc = bctype(_value, dofs, V._cpp_object)
178 else:
179 bc = bctype(_value, dofs)
RuntimeError: Rank mis-match between Constant and function space in DirichletBC
```

This error can be bypassed by using `u_D = default_scalar_type(0)`

. However, this generates issues with the dimension of the boundary condition latter on.

Can anybody help me understand what is going wrong with this impementation?