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 20:41:30 +0100 (CET)

Dear Yves,
One last (?) point. Rereading your mails more carefully I realized that "my" computed matrices give me a mean value of the derivatives. In your first message, you wrote

"You can perform the interpolation itself with the high level generic assembly, but it does not give an interpolation matrix"

So if I replace my calls of "getfem.compute_gradient" by this generic formulation I would get the real interpolation.
By the way, I do not know how to perform this call! Would you have any comments to help me evaluate the gradient of a fem field U at a given set of points (not necessarily on the mesh).

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: "EDOUARD OUDET" <address@hidden>
À: "Yves Renard" <address@hidden>
Cc: "getfem-users" <address@hidden>
Envoyé: Lundi 6 Novembre 2017 19:02:36
Objet: Re: [Getfem-users] gradient interpolation matrix

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]