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: Yves Renard
Subject: Re: [Getfem-users] gradient interpolation matrix
Date: Mon, 6 Nov 2017 21:35:29 +0100 (CET)

Dear Edouard,

A generic interpolation of any valid expression can be donne but, in the 
interface it is available only via the model object (you can create a dummy 
model with only one variable to perfom the interpolation)
The md.interpolation(...) performs the interpolation   (see 
http://getfem.org/python/cmdref_Model.html)

Yves.

----- Original Message -----
From: "EDOUARD OUDET" <address@hidden>
To: "yves renard" <address@hidden>
Cc: "getfem-users" <address@hidden>
Sent: Monday, November 6, 2017 8:41:30 PM
Subject: Re: [Getfem-users] gradient interpolation matrix

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]