[firedrake] Problem with Jacobian

Stephan Kramer s.kramer at imperial.ac.uk
Fri Nov 6 14:46:01 GMT 2015


On 06/11/15 14:23, Buesing, Henrik wrote:
>> On 06/11/15 12:40, Buesing, Henrik wrote:
>>>>> Are you sure the problem isn't that he needs bounds for his solve?
>>>>> AFAICS dS/dh=0 for h<hw or h>hn. Otherwise shouldn't rewriting this
>>>>> with conditionals have worked?
>>>
>>> @Stephan: So how can I rewrite the attached saturation.py with
>> conditionals?
>>
>> Sw=conditional(hin>hn, Constant(0.0), conditional(hin<hw, Constant(1.0),
>> (hin-hn)/(hw-hn)))
>>
>> This gives you a UFL expression that you can use in a larger system, or
>> project to some function space.
>>
>
> @Stephan: Thank you! Is there also a way to write the attached enthn.py in UFL notation? Basically I failed to do the int(dm), if dm is a UFL expression. And probably the array access might be a problem?

Yes, looks like a piecewise linear interpolation from an arbitrary 
lookup table? I don't see how to do this in UFL indeed. You could 
approximate it with a polynomial but that might not be accurate enough 
and have nasty under/over shoots if the data is not smooth.

So the best way to do this might indeed be to keep your point-wise 
evaluation and add a hook for the evaluation of its derivative

Cheers
Stephan



More information about the firedrake mailing list