Hi everyone,
I have a question regarding the use of mshmet and mmg in FreeFEM++. I’m trying to revise my mesh so that its density gradually increases with the increase of x. Thus, I introduce a P1 variable G1 = x^2. + 0.01
and pass it into function mshmet, trying to get a vector (named met1
) containing density that will increase with the increase of x. With this vector, I can call mmg and revise my old mesh to get the new one. Thus, I wrote the following code, where I call mmg2d_O3
as an external command
load "mshmet"
load "medit"
mesh Th1 = square(10,10);
fespace Vh1(Th1,P1);
Vh1 G1,u1sol;
G1 = x^2. + 0.01;
real[int] met1 = mshmet(Th1,G1);
u1sol[] = met1;
savemesh(Th1,"Mesh1.mesh");
savesol("Mesh1.sol",Th1,u1sol);
exec("mmg2d_O3 Mesh1 -met Mesh1.sol");
mesh Th2 = readmesh("Mesh1.o.mesh");
plot(Th1,cmm="mesh before mmg");
plot(Th2,cmm="mesh after mmg");
However, the mesh after calling mmg does not show any variation pattern with respect to x (figures below). I checked the reason, finding that the vector met1
has a pretty uniform distribution, not showing any varied distribution with respect to x.
I wonder what’s is the wrong with my calling of mshmet at line 7? Thank you!
Initial Mesh
After revision