[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Getfem-users] Gradient of a velocity field using high level generic
From: |
Yves Renard |
Subject: |
Re: [Getfem-users] Gradient of a velocity field using high level generic assembly, partial mesh fem and Interpolate transformation |
Date: |
Sat, 14 Feb 2015 17:04:24 +0100 (CET) |
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" <address@hidden>
To: address@hidden
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
address@hidden
https://mail.gna.org/listinfo/getfem-users