[dune-functions] GridFunction interface
Carsten Gräser
graeser at mi.fu-berlin.de
Fri Mar 20 17:11:04 CET 2015
Am 20.03.2015 um 16:52 schrieb Carsten Gräser:
> Hi Christian,
>
> Am 20.03.2015 um 16:32 schrieb Christian Engwer:
>> Hi Oli,
>>
>>> I am not convinced either. In fact I'd find 1) more unexpected than 2).
>>> If I have a function that depends on some coordinates I'd expect its
>>> derivatives to be wrt to these coordinates. So if the function is a local
>>> function I'd expect the derivatives to be wrt to local coordinates.
>>> If I want them wrt global coordinates then I'd need to multiply by
>>> JacobianInverseTransform.
>>
>> No, the problem was/is that you don't know what to do, because it
>> depends on your particular type of function. Or lets ask the other way
>> around, what would your local function return in case of the RT0
>> function. Would it already perform the piola transformation?
>>
>> Christian
> I still don't understand this point. The problem I mentioned,
> and (as far as I understand) Olis answer is only about local
> coordinates for the domain. Perhaps a formula will shed some light:
>
> Lets assume f:\Omega \to V, E a fixed element, R the reference
> element, and T:R \to E the geomertry map. Now let
>
> g = localFunction(f);
> g.bind(E);
>
> Then we have g = f \circ T^{-1} : R \to V. But with approach 1)
> we would have
>
> derivative(g) = f' \circ T^{-1} != g'
Sorry, this should be
g = f \circ T, derivative(g) = f' \circ T != g'
> and derivative(g)(x) \in L(E,V) instead of L(R,V). In contrast
> 2) would lead to derivative(g) = g' and derivative(g)(x) \in L(R,V)
> as expected.
>
> As far as I understand you're taking about local E-dependent
> coordinates for the range V which is orthogonal to the problem
> mentioned above.
To answer your question with the Piola transformation: If f is
(locally) given via the Piola transformation of some function
h defined on R, i.e. f = P(h), then g=localFunction(f) would
still be given by
g = f \circ T = P(h) \circ T
which gives
g = 1/det(DT) DT h
so you will only do the image space part of the Piola transformation.
Carsten
More information about the dune-functions
mailing list