Dear Eleonora, And of course if you can isolate a piece of code with a clear problem, it can help.
Yves. Le 14/02/2015 20:01, Eleonora Piersanti a écrit : > Thank you for the answer. > > I am using getfem 4.3.1. > > Now, I found an alternative way to assemble the term that seems to > work. Anyway, I can try with the 4.3.2 version of the library. > > Kind regards, > > Eleonora > > > Il Sabato 14 Febbraio 2015 16:04, Yves Renard > <[email protected]> ha scritto: > > > > > Dear Eleonora, > > I don't see any problem in your formulation. This should a priori work. > > Do you use Getfem 4.3 ? > If yes, can you try either the svn version or the link below > > http://math.univ-lyon1.fr/homes-www/renard/temp/getfem-4.3.2.tar.gz > > and tell me if it fixes the problem (some bug fix of this type have > been done since 4.3 release). > > Best regards, > > Yves. > > > ----- Original Message ----- > From: "Eleonora Piersanti" <[email protected] > <mailto:[email protected]>> > To: [email protected] <mailto:[email protected]> > Sent: Thursday, February 12, 2015 9:09:11 AM > Subject: [Getfem-users] Gradient of a velocity field using high level > generic assembly, partial mesh fem and Interpolate transformation > > Dear professor, dear all, > > I have to assemble a complicated term and I used the high level > generic assembly. The problem is the following. > > I have a 2D mesh on which two fems are defined: mf_u that is P2 with > qdim=2, for velocity, and mf_mult with qdim=2, for Lagrange > multiplier, that is P1. This mesh is symmetric with respect to the x > axis (y = 0). On the symmetry axis there is a filament represented by > a 1D segment that for the 2D mesh is a boundary. On this segment an > other mesh mesh made by 1D elements is defined and a fem mf_fil based > on Hermite elements is defined. > > Now, for some reasons, I had to use the partial mesh fem object. I > define mf_u_up on the upper part of the 2D mesh and on the dof on the > symmetry axis (therefore on the filament too), and mf_u_dwn on the > lower part of the 2D mesh and on the dof on the symmetry axis > (therefore on the filament too). In the same way I define mf_mult_up > and mf_mult_dwn. > > Then, I declare a model, varables and data: > > //----------------------------------------------------------------------------------------------------------------------------------------------- > > > getfem::model model_2; > > model_2.clear(); > > model_2.add_initialized_fem_data("vel_0_up", mf_u_up, vel_0_up); > > model_2.add_initialized_fem_data("vel_0_dwn",mf_u_dwn, vel_0_dwn); > > model_2.add_fem_variable("lambda_up", mf_mult_up); > > model_2.add_fem_variable("lambda_dwn", mf_mult_dwn); > > model_2.add_fem_variable("r", p.mf_fil); //r is the displacement y > > //Define the interpolate transformation from 2D mesh to 1D mesh > > add_interpolate_transformation_from_expression(model_2, > "my_transformation", p.mesh_fil, p.mesh, "Print(X)"); > > getfem::add_linear_generic_assembly_brick(model_2, > p.mim_fil,"Print(Interpolate(Grad_vel_0_up, my_transformation).[0.0; > 1.0])*r.Interpolate(Test_lambda_up, my_transformation)"); > > getfem::add_linear_generic_assembly_brick(model_2, > p.mim_fil,"Print(Interpolate(Grad_vel_0_dwn, my_transformation).[0.0; > 1.0])*r.Interpolate(Test_lambda_dwn, my_transformation)"); > > model_2.assembly(getfem::model::BUILD_ALL); > > //------------------------------------------------------------------------------------------------------------------------------------------------------------// > > > I need to compute an integral on the filament that is 1D with some > quantities that are 2D, therefore I use the Interpolate transformation. > vel_0_up, and vel_0_dwn are data that are previously computed and I > also exported them in .vtk so that I can obtain the terms > Grad_vel_0_up.[0.0;1.0], Grad_vel_0_dwn.[0.0;1.0] on the filament with > paraview. As you can see, I used the Print command so I could save the > value of those quantities. Unfortunately, they do not seem to be > correct. In particular, the first component of Grad_vel_0_up.[0.0;1.0] > is the double than the one obtained with paraview while for > Grad_vel_0_dwn.[0.0;1.0] on the filament I obtain something that is > almost zero everywhere on the filament. I would expect something > symmetric (maybe with differnt sign) due to the fact that vel_0_up and > vel_0_dwn are symmetric. > > Am I doing something wrong? Is it possible that it is due to the fact > that I am using partial mesh fem? > > I hope the question is clear. > > Kind regards, > > Eleonora. > > > > _______________________________________________ > Getfem-users mailing list > [email protected] <mailto:[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
