@@ -38,7 +38,7 @@ def __init__(
3838 self .type = type
3939 self .cell_type = cell_type
4040 self .degree = degree
41- basix_cell = _ufl_cell_type_to_basix (self .cell_type )
41+ basix_cell = _ufl_cell_type_to_basix (self .cell_type )
4242 self .points , self .weights = basix .make_quadrature (basix_cell , self .degree , rule = self .type )
4343 self .dx = ufl .dx (
4444 metadata = {
@@ -56,7 +56,7 @@ def create_quadrature_space(self, mesh: df.mesh.Mesh) -> df.fem.functionspace:
5656 A scalar quadrature `FunctionSpace` on `mesh`.
5757 """
5858 assert mesh .ufl_cell () == self .cell_type
59- Qe = basix .ufl .quadrature_element (mesh .topology .cell_name (), value_shape = (),degree = self .degree )
59+ Qe = basix .ufl .quadrature_element (mesh .topology .cell_name (), value_shape = (), degree = self .degree )
6060 # Qe = ufl.FiniteElement(
6161 # "Quadrature",
6262 # self.cell_type,
@@ -166,6 +166,7 @@ def __init__(self, ufl_expression: ufl.core.expr.Expr, mesh: df.mesh.Mesh, rule:
166166 self .num_cells = map_c .size_local
167167
168168 self .cells = np .arange (0 , self .num_cells , dtype = np .int32 )
169+ self .mesh = mesh
169170
170171 self .expr = df .fem .Expression (ufl_expression , rule .points )
171172
@@ -181,9 +182,9 @@ def evaluate(self, q: np.ndarray | df.fem.Function | None = None) -> np.ndarray
181182 on `q` and `None` is returned.
182183 """
183184 if q is None :
184- return self .expr .eval (self .cells )
185+ return self .expr .eval (self .mesh , self . cells )
185186 elif isinstance (q , np .ndarray ):
186- self .expr .eval (self .cells , values = q .reshape (self .num_cells , - 1 ))
187+ self .expr .eval (self .mesh , self . cells , values = q .reshape (self .num_cells , - 1 ))
187188 elif isinstance (q , df .fem .Function ):
188- self .expr .eval (self .cells , values = q .x .array .reshape (self .num_cells , - 1 ))
189+ self .expr .eval (q . function_space . mesh , self .cells , values = q .x .array .reshape (self .num_cells , - 1 ))
189190 q .x .scatter_forward ()
0 commit comments