Yes, it looks like you are correct Miroslav.

I suppose the line you link to should add a self check too. Changing that
line to

  if f._ufl_is_terminal_ and f != v:

fixes the problem.

Is this fix something we just can add Martin?

Johan

On Tue, Oct 14, 2014 at 10:14 AM, Miroslav Kuchta <[email protected]> wrote:

>  Hi, this seems to be due the simplification made here
> <https://github.com/FEniCS/ufl/blob/master/ufl/differentiation.py#L87>
>
> from dolfin import *
>
> mesh = UnitSquareMesh(10, 10)
> V = FunctionSpace(mesh, "CG", 1)
> u = Function(V)
>
> # 0
> print u._ufl_is_terminal_
> print diff(u, u)
>
> # 1
> print (Constant(1)*u)._ufl_is_terminal_
> plot(diff(Constant(1)*u, u), mesh=mesh)
>
> # 1
> u._ufl_is_terminal_ = False
> plot(diff(u, u), mesh=mesh)
> interactive()
>
>  Regards, Miro
>
> On 10/13/2014 10:32 PM, Johan Hake wrote:
>
> from dolfin import *
> mesh = UnitSquareMesh(10, 10)
>  V = FunctionSpace(mesh, "CG", 1)
> u = Function(V)
>  print diff(u, u)
>
>
>
_______________________________________________
fenics mailing list
[email protected]
http://fenicsproject.org/mailman/listinfo/fenics

Reply via email to