Dear Samyak, That "sigma" was a typo of mine, it should simply be "sigmaij", i.e. the outcome of the previous command.
"mft" is the mesh_fem object that you would like to get the result on. It could be the same as mfu but with qdim=1 (scalar) or it could be a different finite element space. E.g. you could have a quadratic mfu and a linear mft, or mft could even be discontinuous. "t" is a temporary variable used for the assembly. Its value doesn't matter because it appears only as a test function "Test_t". In the provided code snippet it is set to np.zeros(mft.nbdof()) because GetFEM++ requires some value. Best regards Kostas On Fri, Jan 27, 2017 at 3:42 AM, samyak jain <[email protected]> wrote: > Dear Kosta, > > In your equation below, could you explain me few things. > > mass_mat_t = gf.asm_mass_matrix(mim, mft) > for i,j in [[1,1],[2,2],[1,2]]: > sigmaij = gf.asm_generic(mim, 1, "({Lambda}*Div_u*Id(qdim(u)) + > {Mu}*(Grad_u+Grad_u'))({i},{j})*Test_t".format(Lambda=Lambda, Mu=Mu, i=i, > j=j), -1, > "u", False, mfu, md.variable("u"), > "t", True, mft, np.zeros(mft.nbdof())) > sigmaij = np.transpose(gf.linsolve_mumps(mass_mat_t, sigma)) > > 1) Could you please explain the terms/variables mft, "t", "sigma". > > Also, I believe your expression above is for a 2D case. > > Thanks > > Yours sincerely > Samyak Jain > > > > On Thu, Jan 26, 2017 at 7:27 PM, samyak jain <[email protected]> > wrote: > >> Dear Kosta, >> >> I will try the projection method you mentioned in your previous mail. I >> am using 'add_integral_large_sliding_contact_brick_raytracing' and then >> I am adding slave and master brick with boundary conditions for my contact >> problem. Actually I need to calculate pressure everywhere and not just the >> contact region. I just tried to calculate in on the contact surface. I will >> try the projection method you mentioned and will let you know how it goes. >> >> Thanks for your help. >> >> Yours sincerely >> Samyak >> >> >> >> >> On Thu, Jan 26, 2017 at 7:21 PM, Konstantinos Poulios < >> [email protected]> wrote: >> >>> Dear Samyak >>> >>> The projection method of my previous mail works also for large strains >>> if you simply replace the expression for the stress tensor with the >>> corresponding one. Of course, as you suggested you can also do an >>> interpolation instead of projection, but then you depend on the averaging >>> that the interpolation function of GetFEM++ will do behind the scene for >>> the discontinuous field that you are working with. I have never tried it on >>> a surface, so I cannot say how it works. >>> >>> But if you care only about the contact interface, why don't you simply >>> use the Lagrange multiplier which already describes the traction on this >>> surface? Which contact algorithm do you use? >>> >>> Best regards >>> Kosta >>> >>> >>> >>> On Thu, Jan 26, 2017 at 10:47 AM, samyak jain <[email protected] >>> om> wrote: >>> >>>> Dear Kostas, >>>> >>>> Thanks for the reply. I am using large strain law and using python >>>> language. >>>> >>>> I have a 3D-mesh and mfu1 is the displacement fem for mesh1. >>>> CONTACT_BOUND is the region where I am trying to calculate the stress >>>> tensor. >>>> I am trying something of this sort below. Could you please check and >>>> tell me if what I am doing is correct or not. I reshape the stress tensor >>>> into 9*(no. of dof /3) as 3-dimension tensor will have 9 components and md >>>> is model object. >>>> >>>> stress = np.reshape(md.interpolation("lambda*Trace(Grad_u1 + >>>> Grad_u1')*Id(3) + mu*(Grad_u1 + Grad_u1')", mfu1, >>>> CONTACT_BOUND),(9,mfu1.nbdof()/3),'F') >>>> >>>> >>>> Thanking You >>>> >>>> Yours sincerely >>>> Samyak Jain >>>> >>>> On Thu, Jan 26, 2017 at 5:07 PM, Konstantinos Poulios < >>>> [email protected]> wrote: >>>> >>>>> Dear Samyak >>>>> >>>>> It would be helpful to know which material law you use (small or large >>>>> strains?) and which programming language (python, matlab, scilab, C++?). >>>>> >>>>> E.g for small strains elasticity in python, something like this should >>>>> work: >>>>> >>>>> mass_mat_t = gf.asm_mass_matrix(mim, mft) >>>>> for i,j in [[1,1],[2,2],[1,2]]: >>>>> sigmaij = gf.asm_generic(mim, 1, "({Lambda}*Div_u*Id(qdim(u)) + >>>>> {Mu}*(Grad_u+Grad_u'))({i},{j})*Test_t".format(Lambda=Lambda, Mu=Mu, >>>>> i=i, j=j), -1, >>>>> "u", False, mfu, md.variable("u"), >>>>> "t", True, mft, np.zeros(mft.nbdof())) >>>>> sigmaij = np.transpose(gf.linsolve_mumps(mass_mat_t, sigma)) >>>>> >>>>> Then sigmaij has the ij component of the stress tensor projected on >>>>> the finite element space defined in mft. If mft is a Lagrangian FEM the >>>>> values of sigmaij will correspond to the nodes of mft. The projection from >>>>> gauss points to the finite element space is as Yves mentioned some kind of >>>>> averaging. >>>>> >>>>> I hope this helps. >>>>> >>>>> Best regards >>>>> Kostas >>>>> >>>>> >>>>> >>>>> On Thu, Jan 26, 2017 at 2:48 AM, samyak jain <[email protected] >>>>> om> wrote: >>>>> >>>>>> Dear Yves, >>>>>> >>>>>> Thanks a lot for your reply. I am not sure what you mean there. I >>>>>> have gone through the example and they calculate Von Mises Stress but >>>>>> there >>>>>> is already a function for that. Could you please tell me which physical >>>>>> quantity or expression is being interpolated in that example so that I >>>>>> can >>>>>> use it as a basis for my pressure calculation. It would be really helpful >>>>>> if you would elaborate a bit on the usage and the example for calculating >>>>>> any expression as I am quite new to fem and getfem. Thanks a lot. >>>>>> >>>>>> Yours sincerely >>>>>> Samyak >>>>>> >>>>>> On Wed, Jan 25, 2017 at 6:44 PM, Yves Renard <Yves.Renard@insa-lyon. >>>>>> fr> wrote: >>>>>> >>>>>>> >>>>>>> Dear Samyak, >>>>>>> >>>>>>> There is no specific function for that, but you can use the >>>>>>> interpolation facilities of the model object. You can see an example of >>>>>>> use >>>>>>> for instance in the demo_thermo_elasticity_electrical_coupling >>>>>>> example which has a python, Matlab, Scilab and C++ version. You can >>>>>>> interpolate any expression. Be aware that the stress being discontinuous >>>>>>> across the element edges/faces, the value will be averaged. >>>>>>> >>>>>>> Regards, >>>>>>> >>>>>>> Yves >>>>>>> >>>>>>> >>>>>>> Le 25/01/2017 à 06:08, samyak jain a écrit : >>>>>>> >>>>>>> Dear getfem-users, >>>>>>> >>>>>>> I have started using getfem recently to work on few contact problems >>>>>>> between elastic bodies. >>>>>>> >>>>>>> I am able to solve few simple cases and I am able to compute >>>>>>> displacement (u) and Von-Mises/Tresca values on my mesh nodes. >>>>>>> >>>>>>> The problem I am facing is that I have to calculate pressure at the >>>>>>> mesh points and for that I believe I need the stress tensor values at >>>>>>> these >>>>>>> discrete mesh points. Could someone please guide me or tell me how to >>>>>>> get >>>>>>> the value of these variables. I went through the documentation and >>>>>>> checked >>>>>>> everywhere but I couldn't find a way to calculate stress >>>>>>> tensor/pressure. >>>>>>> >>>>>>> Thanks a lot. >>>>>>> >>>>>>> Samyak >>>>>>> >>>>>>> >>>>>>> >>>>>>> _______________________________________________ >>>>>>> Getfem-users mailing >>>>>>> [email protected]https://mail.gna.org/listinfo/getfem-users >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> >>>>>>> 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 >>>>>>> >>>>>>> --------- >>>>>>> >>>>>>> >>>>>>> _______________________________________________ >>>>>>> Getfem-users mailing list >>>>>>> [email protected] >>>>>>> https://mail.gna.org/listinfo/getfem-users >>>>>>> >>>>>>> >>>>>> >>>>>> _______________________________________________ >>>>>> Getfem-users mailing list >>>>>> [email protected] >>>>>> https://mail.gna.org/listinfo/getfem-users >>>>>> >>>>>> >>>>> >>>> >>> >
_______________________________________________ Getfem-users mailing list [email protected] https://mail.gna.org/listinfo/getfem-users
