Dear Moritz Jena, To define a hyperelastic material law for a plane stress problem, the easiest way is to add one extra variable representing the out of plane strain. If mf1 is a scalar fem and mf2 is a vector fem with 2 components, then you can simply do:
md = gf.Model("real") md.add_fem_variable("u", mf2) # displacements variable md.add_fem_variable("epsZ", mf1) # out of plane strain variable md.add_initialized_data(’kappa’, kappa) # initial bulk modulus md.add_initialized_data(’mu’, mu) # initial shear modulus md.add_initialized_data(’Th’, Th) # plate thickness md.add_macro("F", "Id(3)+Grad_u+epsZ*[0,0,0;0,0,0;0,0,1]") # 3D deformation gradient md.add_nonlinear_term(mim, "Th*0.5*kappa*sqr(log(Det(F)))+" Th*0.5*mu*(pow(Det(F),-2/3)*Norm_sqr(F)-3)") Best regards Kostas On Wed, Jan 16, 2019 at 9:40 PM Yves Renard <yves.ren...@insa-lyon.fr> wrote: > > > Dear Jena, > > For an hyperelastic law, the weak form of the static elastic problem can > be written in the weak form language > > > "Def F := Id(meshdim)+Grad_u; (F * S) : Grad_test_u" > > for u the displacement, F the deformation gradient and S has to contains > the expression of the second Piola-Kirchhoff stress tensor (you can of > course express it in term of PK1 also). For instance for a St Venant > Kirchhoff law, you can write > > "Def F := Id(meshdim)+Grad_u; Def E := 0.5*(F'*F-Id(meshdim)); (F * > (lambda*Trace(E)+2*mu*E)) : Grad_test_u" > > where E will be the Green Lagrange deformation tensor and lambda, mu the > Lamé coefficients. > > This gives you some examples of construction of hyperelastic laws. The > weak form language gives you access to some standard operators (Trace, Det > ...) see > http://getfem.org/userdoc/model_nonlinear_elasticity.html#high-level-generic-assembly-versions > > > So, if you have the expression of your law in plane stress, it should not > be very difficult to implement it. But of course you need the expression of > the law in plane stress. On the construction itself of plane stress > hyperelastic law, now, I don't know a good reference, unfortunately. > > Best regards, > > Yves > > > ----- Original Message ----- > From: "Moritz Jena" <moritz.j...@scherdel.com> > To: "yves renard" <yves.ren...@insa-lyon.fr> > Cc: "getfem-users" <getfem-users@nongnu.org> > Sent: Wednesday, January 16, 2019 2:17:01 PM > Subject: Antwort: Re: [Getfem-users] 2D nonlinear plane stress > > Hello Yves, > > thank you for your answer. > > I'm afraid I'm not into the topic weak form language and I'm not sure > where to start with this problem. > > I looked at the chapter in the documentation, however I don't know how to > describe a plane stress material model with it. > > I also studied the examples, that come with the MATLAB-Interface. There > are a few examples, how to declare a material model with this weak form > expressions. But I still don't know, how to build this expressions. > > Can you give me a approach for this problem or where I can find > expressions for such a problem? Is there any literature that you can > recommend? > > Best regards, > > Moritz > > > > > > Von: Yves Renard <yves.ren...@insa-lyon.fr> > An: Moritz Jena <moritz.j...@scherdel.com> > Kopie: getfem-users <getfem-users@nongnu.org> > Datum: 09.01.2019 17:17 > Betreff: Re: [Getfem-users] 2D nonlinear plane stress > > > > > Dear Moritz Jena, > > No, unfortunately, plane stress versions of Hyperelastic laws has not been > implemented yet. > > I would not be so difficult, but as to be made. If you need one in > particular and have the expression, it is no so difficult to describe it > with the weak form language. > > Best regards, > > Yves > > > > ----- Original Message ----- > From: "Moritz Jena" <moritz.j...@scherdel.com> > To: "getfem-users" <getfem-users@nongnu.org> > Sent: Tuesday, January 8, 2019 4:11:48 PM > Subject: [Getfem-users] 2D nonlinear plane stress > > Dear GetFEM-Users, > > I use the MATLAB-Interface of GetFEM to create a program that > automatically solves different models of the same problem. > > The problem is three-dimensional, but can be reduced by plain stress > approximation. (to reduce computing time). > > I want to define a nonlinear material with the brick > > gf_model_set(model M, 'add nonlinear elasticity brick', > [...]) > > For this nonlinear command it is specified in the description, that in 2D > always plain strain is used. > > So my question is: Is there a way to define a nonlinear material with the > plain stress approximation? Or is it planned to install such an option in > a future release? > > I hope you can help me with my problem. > > Best regards, > > Moritz Jena > >