-
Notifications
You must be signed in to change notification settings - Fork 176
Open
Labels
Description
from firedrake import *
mesh = UnitSquareMesh(1,1)
V = FunctionSpace(mesh, "DG", 0)
Z = V*V*V*V
a = inner(TrialFunction(Z), TestFunction(Z))*dx
print(assemble(a).petscmat.view())
will assemble zeros in some off-diagonal locations. This doesn't happen with Z=V*V*V.
@pbrubeck suggests it might be that Firedrake only unrolls the index sum when it involves 3 or fewer terms.