getfem-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Getfem-users] gradient interpolation matrix


From: EDOUARD OUDET
Subject: Re: [Getfem-users] gradient interpolation matrix
Date: Mon, 6 Nov 2017 19:02:36 +0100 (CET)

Dear Yves,
Thanks once again for sharing your expertise and your work.
I understand now what you had in mind but I really want a "true" interpolation of the gradient and its interpolation matrices for optimization purpose.
Actually, I finally  managed to obtain such a matrix: after a (naive) coloring of the connectivity graph of the elements, I reduced the evaluation of the coefficients of that matrix to #(nb of colors) x #(nb of degree of freedom in one COV) calls to "getfem.compute_gradient".
Of course this is not optimal but it does the job for my objective.
Thanks again,
best regards, Edouard.


--
Edouard Oudet : http://www-ljk.imag.fr/membres/Edouard.Oudet/
IMAG - Bureau 164
700 avenue Centrale
38400 Saint Martin d'Hères
+33 (0)4 57 42 17 71  (office LJK)
+33 (0)4 79 68 82 06  (home)


De: "Yves Renard" <address@hidden>
À: "EDOUARD OUDET" <address@hidden>
Cc: "getfem-users" <address@hidden>
Envoyé: Lundi 6 Novembre 2017 17:23:26
Objet: Re: [Getfem-users] gradient interpolation matrix

Dear Edouard,

No, such a matrix in not available for the moment. It is not very
difficult to implement, but it has to be done in C++ by extending the
function in the file getfem_interpolation.h which do the job for the
value, but not for a derivative.

May be you can be more accurate on the use of this matrix. May be there
is some alternative to avoid it.

For instance, what I mentionned in my previous e-mail was to use instead
a projection matrix. A projection matrix can be easily assembled with a
_expression_ such as for instance

"Grad_u(1)Test_v"

in term of the generic assembly language where "Grad_u(1)" is the
derivative with respect to the first direction and "Test_v" should
correspond to a P_0 discontinuous finite element method to obtain a
unique value on each element. But of course, in that case, it will be a
mean value of the derivative on the element, not the interpolation at
the center of the element.

Best regards,

Yves



Le 05/11/2017 à 22:32, Edouard Oudet a écrit :
> Dear Yves,
> Thanks a lot for your fast answer!
> I am not sure I follow your suggestion. My goal is to obtain a
> description of the linear operator from my dof to the evaluation of,
> let say, the first derivative of my fem at the centers of my elements.
> Is this what you call discontinuous fem ?
> If my fem is described by an object femk, I understood that a (python)
> call to
>
> M = asm_interpolation_matrix(femk, fem0)
>
> gives me the interpolaation matrix from femk to fem0 but I do not see
> how to use this for my derivative "\partial_1 femk" ? Which matrix
> should be inverted ? I apologize for the naivety of my questions,
> best,
> Edouard.
>
> Le 05/11/2017 à 16:11, Yves Renard a écrit :
>> Dear Edouard,
>>
>> No, unfortunately, there is no function in Getfem that gives the
>> interpolation matrix for a derivative of a field. You can perform the
>> interpolation itself with the high level generic assembly, but it
>> does not give an interpolation matrix. If you want to interpolate on
>> a discontinuous fem, you can instead compute the projection matrix
>> which will be easy to invert because it will be local (a small matrix
>> on each element). Then if your projection is exact, then the inverse
>> will also be an interpolation matrix ...
>>
>> Best regards,
>>
>> Yves.
>>
>>
>>
>> ----- Original Message -----
>> From: "EDOUARD OUDET" <address@hidden>
>> To: address@hidden
>> Sent: Friday, November 3, 2017 11:43:34 AM
>> Subject: [Getfem-users] gradient interpolation matrix
>>
>> Dear all,
>> Is there a way with the getfem python interface to assembly the
>> matrix associated to the interpolation matrix of a first derivative
>> evaluation of a fem (or its full gradient).
>> I found
>>
>> Mi = asm_interpolation_matrix(MeshFem mf, vec pts)
>>
>> for the evaluation of the function u = MeshFem mf itself, but I was
>> not able to identify the relevant generalization for derivatives of
>> u: \partial u_x, \partial u_y, etc.
>> Thanks a lot for this great library,
>> best, Edouard.
>>
>

--

   Yves Renard (address@hidden)       tel : (33) 04.72.43.87.08
   Pole de Mathematiques, INSA-Lyon             fax : (33) 04.72.43.85.29
   20, rue Albert Einstein
   69621 Villeurbanne Cedex, FRANCE
   http://math.univ-lyon1.fr/~renard

---------

reply via email to

[Prev in Thread] Current Thread [Next in Thread]