Yes, consider the minimal example:
import dolfinx
from mpi4py import MPI
import numpy as np
import ufl
mesh = dolfinx.mesh.create_unit_cube(MPI.COMM_WORLD, nx=1, ny=1, nz=1)
n = ufl.FacetNormal(mesh)
P = ufl.VectorElement("CG", mesh.ufl_cell(), 1)
R = ufl.TensorElement("DG", mesh.ufl_cell(), 1)
P_wish = ufl.VectorElement("CG", mesh.ufl_cell(), 1)
R_wish = ufl.TensorElement("DG", mesh.ufl_cell(), 1)
mel = ufl.MixedElement([P, R, P_wish, R_wish])
U = dolfinx.fem.FunctionSpace(mesh, mel)
u = dolfinx.fem.Function(U)
(p, F, v, P) = ufl.split(u)
def T(x):
values = np.zeros((mesh.geometry.dim*mesh.geometry.dim,
x.shape[1]), dtype=np.float64)
values[0] = x[0]
values[1] = x[1]
values[2] = x[0] + 2 * x[1]
values[3] = x[1] - x[0]
return values
form = dolfinx.fem.form(ufl.inner(F, F)*ufl.dx)
print(f"Pre {dolfinx.fem.assemble_scalar(form)}")
u.sub(1).interpolate(T)
print(f"Post {dolfinx.fem.assemble_scalar(form)}")
yielding
Pre 0.0
Post 3.5000000000000115