Hi Andriy,
Thank you for the advice. I am having a look at it.
In the meantime, I would like to show you what I do and hope you can help me
solve one more related problem.
To get the displacement values is easy as
plain_vector U(mf_u.nb_dof());
gmm::copy(model.real_variable("u"), U);
I then get the total dof of the mesh_fem mfu by
size_type mfudof = mf_u.nb_dof();
Then I think I can get the coordinates of each dof by
for (scalar_type ndof = 0.; ndof < mfudof; ndof += 1){
coordinate= mf_u.point_of_dof(ndof);
}
Then I can relate the displacement values to the geometrical coordinates,
because I know which dofs corresponding to which the geometrical coordinates.
Could you please help and advise to me about the following
1. Is the values in the vector U storing the displacement value āuā, the
same order as the dofs? Say the first value in the vector U corresponds to dof
0 and the 100th value in the U corresponds to dof 99.
2. When I do
for (scalar_type ndof = 0.; ndof < mfudof; ndof += 1){
coordinate= mf_u.point_of_dof(ndof);
cout << coordinate <<endl ;
}
It shows that
[cid:[email protected]]
It appears that it show duplicated coordinates as you can see
every two coordinates are the same. Is this because that the mesh is two
dimension and each node has two dofs ā one for x and the other for y?
1. What is the different between dof and basic_dof? I can see there are
basic_dof_on_region() and dof_on_region() for the mesh_fem mfu.
Thank you very much.
Regards
Zhenghuai Guo
From: Andriy Andreykiv <[email protected]>
Sent: Monday, March 18, 2019 7:26 PM
To: Zhenghuai Guo <[email protected]>
Cc: [email protected]
Subject: Re: [Getfem-users] mesh_deformation
Dear Zhenghuai Guo,
Probably you can try to do this with the methods from
http://getfem.org/userdoc/interMM.html.
In particular, have a look at
Interpolation on a cloud of points:
void getfem::ga_interpolation_mti(md, expr, mti, result, extrapolation = 0,
rg=mesh_region::all_convexes(), nbpoints = size_type(-1));
I assume you can create a cloud of points from a single point.
But the above is a "heavy" tool which involves interpolation. Of course if you
know that you have a node in that specific location, you can extract the
degrees of freedom from the displacement vector.
So, let me know what you're using it for.
Best regards,
Andriy
On Sat, 16 Mar 2019 at 10:27, Zhenghuai Guo
<[email protected]<mailto:[email protected]>> wrote:
Hi Andriy,
I have calculated a displacement field u on a meshfem mfu. For some analysis, I
would like to
1. Obtain the displacement values on certain geometrical locations based on
the geometrical coordinates.
Could you please advise me to how to do this?
Thank you very much
Regards
Zhenghuai Guo