[firedrake] weirdness on bendy branch
Fabio Luporini
f.luporini12 at imperial.ac.uk
Mon Nov 23 17:31:51 GMT 2015
Hi Stephan
Thanks a lot for pointing this out. Could you try this new branch in coffee:
fix-replacement
Hopefully this should fix the issue. Keep me posted. Ah, don't forget to
clean the cache
Cheers
-- Fabio
2015-11-20 9:16 GMT+00:00 Fabio Luporini <f.luporini12 at imperial.ac.uk>:
> Hi Stephan. Thanks, I will look into this first thing next week and will
> get back to you.
>
> Cheers
>
> -- Fabio
>
> 2015-11-19 14:59 GMT+00:00 Kramer, Stephan <s.kramer at imperial.ac.uk>:
>
>> Hey guys
>>
>> More weirdness related to facet integrals from IP viscosity that only
>> appears with COFFEE optimisations. This time both on the bendy branches
>> and on master (of last week). In the code below, the matrices M, Ms and
>> M1+M2 should all be the same.
>>
>> For DG1 they are not equal on a recent (last week, before any sprint
>> merges) install of firedrake/ffc/ufl/coffee on master. It is also
>> incorrect on an older install I had, so it's not a recent thing. DG1
>> does however produce the right answer on the bendy branches: firedrake
>> (bendy_changes) + ffc/ufl (fd_bendy) + coffee (master).
>>
>> For RT1 on the other hand it's the opposite: the matrices are correct
>> and equal on master, but with bendy some of them are different from the
>> correct answer.
>>
>> All of this only if use COFFEE optimisation, i.e. with
>> parameters['coffee']={} the matrices are correct and all equal.
>>
>> I realize at this point the best thing to do is probably to wait if this
>> all gets magically fixed when the sprint is over - will report back if
>> not - but just thought to let you guys know already
>>
>> Cheers
>> Stephan
>>
>> from firedrake import *
>> mesh2d = UnitSquareMesh(1,1)
>> U = VectorFunctionSpace(mesh2d, "DG", 1)
>> v = TestFunction(U)
>> u = Function(U)
>>
>> #parameters['coffee']={}
>> n = FacetNormal(mesh2d)
>>
>> def outer_jump(v, n):
>> return outer(v('+'), n('+'))+outer(v('-'), n('-'))
>>
>> F1 = inner(outer_jump(v, n), outer_jump(u,n))*dS
>> F2 = inner(outer_jump(v, n), outer_jump(n,u))*dS
>> F = inner(outer_jump(v, n), outer_jump(u,n)+outer_jump(n,u))*dS
>>
>> M1 = assemble(derivative(F1, u)).M.values
>> M2 = assemble(derivative(F2, u)).M.values
>> Ms = assemble(derivative(F1+F2, u)).M.values
>> M = assemble(derivative(F, u)).M.values
>> print abs(M-(M1+M2)).max()
>> print abs(M-Ms).max()
>>
>>
>> _______________________________________________
>> firedrake mailing list
>> firedrake at imperial.ac.uk
>> https://mailman.ic.ac.uk/mailman/listinfo/firedrake
>>
>
>
-------------- next part --------------
HTML attachment scrubbed and removed
More information about the firedrake
mailing list