[Top][All Lists]

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

Re: [Getfem-users] Curvilinear structures in Getfem

From: Jean-François Barthélémy
Subject: Re: [Getfem-users] Curvilinear structures in Getfem
Date: Thu, 21 May 2020 14:09:57 +0200

Dear Domenico,

If I remember well and if these structures have not changed in GetFEM++, what I meant it that if you have a 1D structure (curvilinear mesh made of beams) embedded in a 3D space and the variable "u" is a vector (typically a displacement field), the object computed by Grad_u is not the vector du/ds (where "s" is the curvilinear abscissa) and Hess_u is not d2u/ds2 but instead respectively du/ds@t if "t" is the tangent (computed by Normalized(element_K)  in GetFEM++) and d2u/ds2@t@t so that if you want to reconstruct the vectors du/ds and d2u/ds2 you have to contract Grad_u once by t and Hess_u twice by t such as

"Grad_u. Normalized(element_K)" (equivalent to du/ds, ie vector 3x1)
"(Hess_u. Normalized(element_K)). Normalized(element_K)"  or equivalently  "Hess_u:(Normalized(element_K)@Normalized(element_K))"  (equivalent to d2u/ds2, ie vector 3x1)

Of course it would be more readable to use macro and define for example "t" as  "Normalized(element_K)".

After that, you can use these expressions in any weak form.

Best regards


Le jeu. 21 mai 2020 à 13:14, Domenico Verde <address@hidden> a écrit :

Dear all users,
Dear Jean-François,
I'm interested the subject explained in the following email, taked form the archive.
I didn't undestand the right use of Hess_u with Normalized(element_K)@Normalized(element_K).
Could you please send me the GWFL _expression_?
Thank's a lot.
Best Regards 

From:Jean-François Barthélémy
Subject:Re: [Getfem-users] Curvilinear structures in Getfem
Date:Tue, 21 Nov 2017 16:26:50 +0100

Dear Yves,

Thank you very much. Now it works perfectly. It was indeed the problem of dimension of element_K which was at the origin of the error. I have downloaded the fixed version since the use of ":" did not work because of mismatch between dimensions (2x2 : 2x1).

The _expression_ "Grad_u:Grad_Test_u" is not equivalent concerning the contribution of the longitudinal part of the work since it also includes a part of work of the orthogonal displacement. The latter does not contribute to the extension work at first order but it rather contributes to the term related to the flexion expressed by means of its second derivative obtained by the Hessian. I've also built it and it works well (the analytical solution of the simple bending beam is retrieved).

I have been initially misled by the fact that the gradient of a vector for a 1D structure is actually a 2x2 in 2D (or 3x3 in 3D) matrix equal to du/address@hidden where t is the vector "Normalized(element_K)" in GetFEM instead of just the vector du/ds as I would have expected since s is the only local coordinate. And the hessian is the third order tensor d2u/address@hidden@t instead of the vector d2u/ds2. But these vectors du/ds and d2u/ds2 can be obtained by contracting Grad_u with "Normalized(element_K)" on the one hand and Hess_u with "Normalized(element_K)@Normalized(element_K)" on the other hand. Once these operations are performed, everything is OK now and GetFEM works perfectly for arbitrary curvilinear structures.

Thank you again.

Best regards

reply via email to

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