Re-implementation of FEniCS_ii9
from fenicsx_ii import Average, Circle, LinearProblem, assemble_scalar
V = dolfinx.fem.functionspace(omega, ("Lagrange", 1))
Q = dolfinx.fem.functionspace(lmbda, ("Lagrange", 1))
W = ufl.MixedFunctionSpace(*[V, Q])
R, q_degree = 0.05, 20
restriction_trial = Circle(lmbda, R, degree=q_degree)
restriction_test = Circle(lmbda, R, degree=q_degree)
(u, p) = ufl.TrialFunctions(W)
(v, q) = ufl.TestFunctions(W)
q_el = basix.ufl.quadrature_element(lmbda.basix_cell(), value_shape=(), degree=q_degree)
Rs = dolfinx.fem.functionspace(lmbda, q_el)
avg_u = Average(u, restriction_trial, Rs)
avg_v = Average(v, restriction_test, Rs)