On Fri, 6 Nov 2015 at 14:54 Buesing, Henrik <HBuesing@eonerc.rwth-aachen.de> wrote:
> >>> Firedrake uses the UFL derivative function, but does not expose this
> >>> extra argument in the interface.  It is straightforward to alter the
> >>> definition in firedrake/ufl_expr.py to take this extra argument and
> >>> pass it through.
> >
> > [Buesing, Henrik]
> >
> > @Lawrence: So how would I pass the "coefficient_derivatives" field
> through?
>
>
> If you change the definition of derivative in firedrake/ufl_expr.py to
> take an optional coefficient_derivatives argument:
>
> def derivative(F, u, du=None, coefficient_derivatives=None):
>    ...
>
>
> And just pass that value through to the ufl.derivative call:
>
>    ufl.derivative(..., coefficient_derivatives=coefficient_derivatives)
>
> If you do this in the firedrake source directly, you will be able to
> commit your change in the local git repository.  You can send us these
> changes by forking firedrake on github and proposing a pull-request that
> way.

Hmm... Okay I did this. Then I did a "make" in the firedrake directory. But then I'm still getting a
 
TypeError: derivative() takes at most 3 arguments (4 given)
 
So how can I test this? Thank you!

It depends a little on how you originally installed firedrake. If you installed firedrake by running firedrake-install (i.e. not with --developer) then you change to the firedrake/src directory and (with the virtualenv active) type:

pip install --upgrade firedrake/

If you have installed firedrake some other way, please say how and we can tell you how to build.

David
 


Henrik