Thread Previous • Date Previous • Date Next • Thread Next |
Garth N. Wells wrote:
Marie Rognes wrote:Garth N. Wells wrote:There seems to be a nasty bug in the quadrature optimisation. I can compute a result, but it's wrong. I can try to look into it in more detail later, but I'm using a combination of BDM and P0 functions which might be enough of a hint for someone.Could you give a test script?Below is a script which reproduces a bug when the quadrature optimisation is turned on. The norm of vectors assembled with and without using optimisation dffer.
Same problem arises with CG. This looks like Harish's old bug where: un = dot(u0, n)/2.0 does not work, but un = 0.5*dot(u0, n) does. (Just as a sidenote.) -- Marie
Garth from dolfin import * mesh = UnitSquare(3, 3) n = FacetNormal(mesh) BDM = FunctionSpace(mesh, "Brezzi-Douglas-Marini", 1) P0 = FunctionSpace(mesh, "Discontinuous Lagrange", 0) mixed_space = MixedFunctionSpace([BDM, P0]) # Function spaces and functions r = TestFunction(P0) U0 = Function(mixed_space) u0, s0 = split(U0) U0.vector()[:] = 1.0 un = dot(u0, n)/2.0 F = 1.0/(s0**2 + 1.0) L = r*F*un*ds param0 = {"representation": "quadrature", "optimize": False} param1 = {"representation": "quadrature", "optimize": True} print "Vec norm (no opt): ", assemble(L, form_compiler_parameters=param0).norm("l2") print "Vec norm (with opt): ", assemble(L, form_compiler_parameters=param1).norm("l2")-- Marie
Thread Previous • Date Previous • Date Next • Thread Next |