I encountered the same problem for boundary integrals. Here is a MWE:
from dolfinx import mesh, fem
import ufl
from mpi4py import MPI
import numpy as np
N = 1
domain = mesh.create_unit_square(MPI.COMM_WORLD, N, N)
V = fem.FunctionSpace(domain, ("CG", 1))
v = ufl.TestFunction(V)
x = ufl.SpatialCoordinate(domain)
ds = ufl.Measure(
"ds",
metadata={
#"quadrature_rule":"vertex",
"quadrature_rule":"custom",
"quadrature_points":np.array([[0.0], [1.0]]),
"quadrature_weights":np.array([1.0 / 2.0, 1.0 / 2.0]),
}
)
b = x[0]*v*ds
linear_form = fem.form( b )
b = fem.petsc.create_vector(linear_form)
fem.petsc.assemble_vector(b, linear_form)
print( "b = \n", b.getValues( range(b.size) ) )
Uncommenting the vertex quadrature rule line and commenting the custom quadrature rules lines gives an AssertionError. I am working with the nightly version.