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 Jean-François Le jeu. 21 mai 2020 à 13:14, Domenico Verde <[email protected]> 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 > Domenico > > *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 > Jean-François >
