[firedrake] absolute value of gradient
George Ovchinnikov
lives9 at gmail.com
Fri Nov 20 18:18:23 GMT 2015
Hi Lawrence,
I have an equation
g(u, w) = f.
I need to set w, to minimize certain functional F(u,f).
I'm using greedy approach.
By means of firedrake I got sensitivity vector of given functional (i.e.
how F changes with respect to change of w at position of i-th basis
function).
Then I "cut" (i.e. set to small, non zero value) w corresponding the
smallest values in sensitivity vector.
This approach is unstable w.r.t to mesh size and has other problems.
The idea is to use Tikhonov regularization, that is to "cut" w
corresponding the smallest values in
sensitivity vector - \alpha \|grad(w)|
For this I need point-wise access to grad(w).
Hopefully this is clear enough description as I tried to make it brief.
--George
On 18.11.2015 19:21, Lawrence Mitchell wrote:
> On 18/11/15 15:42, George Ovchinnikov wrote:
>> Hello folks,
>>
>> I have a scalar field in 2D, $w$, say:
>>
>> V = FunctionSpace(mesh, "CG", 1)
>> w = Function(V)
>> w.interpolate(Expression("1"))
>>
>> and I need too find an norm of grad(w) in every point of the given area,
>> i.e. get a scalar field back.
>>
>> I've found no way to iterate through individual elements of grad(w) to
>> be able to do in manually, neither abs(grad(w)) or something similar
>> works. Any ideas? Do I need to solve some variational problem for this,
>> too?
>
> You can't do this pointwise because the strong gradient doesn't exist.
>
> What do you later want to use this for. If you need |grad(w)| in a
> form, you can just write it in directly. When you say norm grad(w),
> do you mean:
>
> sqrt(dot(grad(w), grad(w))) ?
>
>
> Lawrence
>
>
>
> _______________________________________________
> firedrake mailing list
> firedrake at imperial.ac.uk
> https://mailman.ic.ac.uk/mailman/listinfo/firedrake
>
More information about the firedrake
mailing list