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