Dear Yves, Thank you. This is precisely the formulation I used but it raises the following problem (in python)
0.5*sqr(Normalized(element_K).(Grad_u*Normalized(element_K))) ------------------------------------------^ The second argument of the dot product has to be a vector. logic_error exception caught ... RuntimeError: (Getfem::InterfaceError) -- Error in getfem_generic_assembly.cc, line 8949 void getfem::ga_node_analysis(const string&, getfem::ga_tree&, const getfem::ga_workspace&, getfem::pga_tree_node, bgeot::size_type, bgeot::size_type, bool, bool, int): Error in assembly string following a call such as md.add_linear_generic_assembly_brick(mim,"0.5*sqr(Normalized(element_K).(Grad_u*Normalized(element_K)))") Did I miss something? I am sorry to bother you again. Thanks Best regards Jean-François 2017-11-20 14:10 GMT+01:00 Yves Renard <[email protected]>: > > Dear Jean-François, > > For a vector variable 'u', each line of 'Grad_u' is the gradient of the > ith component of 'u', each of them is tangent to the curve and length being > the derivative with respect to the curvilinear abscissa. The linearized > deformation is a priori Normalized(element_K).(Grad_u * > Normalized(element_K)) > > > The formulas used to compute the gradient and the Hessian can be found > here: > > http://getfem.org/project/femdesc.html#geometric-transformations > > http://getfem.org/project/appendixA.html#derivative-computation > > The hessian of a vector valued variable is also the hessian of each > component. > > Best regards, > > Yves. > > > > > > Le 20/11/2017 à 02:10, Jean-François Barthélémy a écrit : > > Dear Yves, > > Thank you very much for your answer. > > It's OK for scalar variables but I do not really understand how Grad_u is > built when u is a displacement vector field of 3 components. I thought > Grad_u would represent the vector du/ds ([dux/ds,duy/ds,duz/ds]) with s the > local curvilinear abscissa (so that Normalized(element_K).Grad_u would give > the linearized longitudinal deformation) but it seems that Grad_u is > actually a 3x3 matrix field. Then I do not see how to build the > longitudinal deformation. What would be the best way please? And by the > way, what would be the right syntax to get the second derivative of the > transverse displacement by means of Hermite elements and the Hessian? > > Thank you again for your help. > > Best regards > Jean-François > > > > 2017-11-17 20:52 GMT+01:00 Yves Renard <[email protected]>: > >> >> Dear Jean-François, >> >> There is no specific tool yet for that. >> You can have access to the tangent with 'element_K' in the generic >> assembly language (the unit tangent is then 'Normalized(element_K)') >> If you define a scalar quantity "u" on your 1D structure, then "Grad_u" >> will be the gradient of the quantity in the sense that it is a tangent >> vector whose norm is the derivative of the qunatity along the curve. So >> that "Grad_u.Grad_Test_u" is still the stiffness term for a curvilinear >> second derivative. For a vector quantity "u", "Grad_u" is the componentwise >> gradient. >> >> Best regard, >> >> Yves. >> >> >> >> ----- Original Message ----- >> From: "Jean-François Barthélémy" <[email protected]> >> To: [email protected] >> Sent: Friday, November 17, 2017 6:17:13 PM >> Subject: [Getfem-users] Curvilinear structures in Getfem >> >> Dear Getfem users, >> >> I wonder whether it is possible to model simple linear elastic curvilinear >> structures submitted to traction, bending, torsion etc... in 2D or 3D in >> Getfem. I haven't found a way to have access to the tangential or normal >> parts of vectors in the local basis of a beam and their derivatives with >> respect to the curvilinear abscissa needed to build the formulation. Does >> someone have an answer please? >> >> Thanks in advance >> >> Best regards >> Jean-François >> > > > -- > > Yves Renard ([email protected]) 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 > > --------- > >
