Mshmet and mmg3d

Hello
Sorry to bother you . In freefem++, mshmet is used to generate metric matrix, and then mmg3d is used to generate three-dimensional meshes of various anisotropy. Can we use our own metric matrix and mmg3d to generate 3D anisotropic meshes without using the metric matrix generated by mshmet?
Thank you !

Yes. using Mmg3d only and put your individual metric array into the parameter metric=... of mmg3d.

Ok,thank you very much.

Hello
I would like to ask you what parameters need to be adjusted to use our own metric matrix and mmg3d to generate three-dimensional anisotropic meshes? I used my own metric matrix and found that there was no change in the grid.
Thank you!

You can adjust hmin and hmax, hgrad is used in controlling the ratio between two adjacent edges, and hausd is used in approximation of boundaries (for details, ref. https://www.mmgtools.org). Of course, before doing this, you also need to check whether the individual metric array is input correctly.

Ok,thank you for your answer.

Hello
This is the metric array “metric_n11” I calculated.
metric_n11.zip (48.1 KB)

My parameter settings are as follows:
fespace Mh(Th,[P1,P1,P1,P1,P1,P1]);
Mh [n11,n21,n22,n31,n32,n33];
[n11,n21,n22,n31,n32,n33]=[0,0,0,0,0,0];
n11 =[m11,m12,m22,m13,m23,m33];
Th=mmg3d(Th,metric=n11,hmin=1e-5,hmax=0.2,hgrad=10000);
But the anisotropic mesh is not generated .Is there a problem with the metric array I calculated, or with the parameter setting?
Thank you very much.

[n11,n21,n22,n31,n32,n33]=[0,0,0,0,0,0];
n11[] = [m11[], m12[], m22[], m23[], m33[]];

Note that it’s incorrect. Correct code is as follows:

[n11, n21, n22, n31, n32, n33] = [m11, m12, m22, m13, m23, m33];

instead.That is

n11[] = [m11[][0], m12[][0], ..., m33[][0],
         m11[][1], m12[][1], ..., m33[][1],
         ...,
         m11[][Th.nv-1], m12[][Th.nv-1], ..., m33[][Th.nv-1]];

if your m11, m12, m22, m13, m23, m33 are finite element functions.

When I use
[n11, n21, n22, n31, n32, n33] = [m11, m12, m22, m13, m23, m33];
Th=mmg3d(Th,metric=n11,hmin=1e-5,hmax=0.2,hgrad=10000);
The mesh is still unchanged, just like the initial mesh.

Cutting the L-shape domain and check its interior to see if the grid changes, if the singularity of the solution is inside the domain. Otherwise, checking individual metric or adjusting hmin and hmax. In addition, your metric input should be metric=n11[].