Hi everyone,

I recently installed FreeFem because I am interested in the 3d mesh adaption routines (very satisified with that so far).

My problem right now is, that I want to solve a 3 dimensional PDE (with a scalar solution “u”) but I want to have boundary condition on the 2d surface where u=u_fix (just for the next time step).

Is there a smart (efficient) way to extract the iso mesh computational efficient and include a “int2d” boundary condition (du/dn=f(x,y,z))

(I have some Fortran code of my “old” naive solution without adaptive mesh algorithms, but I am not “willing” to port my bad code to FF++).

I know the 2d isoline function (but to my knowledge nothing like this exists for 3d).

Every bit of help is appreciated!

Thanks,

Jonas

The solution “I came up with” utilizes “trunc” - but I only obtain a 3d mesh from that if i use “>” operator.

For “==” i get no results (because its unlikely to exaclity hit u==ufix on the any node).

Hi, i am still looking for a solution of the previous problem.

Furthermore, I want to solve a 2d equation on one surface of a 3d mesh, then transform the 3d mesh accordingly to the 2d solution.

Is there any smart way to do that? (I want to utilize movemesh, but right now i am not able to adress the 2d submesh)

Thank you

Sorry to day, you can not extract Iso surface in 3d.

In mmg3 I think they tool to do this but I am not sure.

A good idea…

I created a level set metric with mshmet, but for mmg3d i need to call the “-ls” (for level set: on) option.

But I cannot pass the argument.

Am I correct or missing something? (mmg3d does not adapt the mesh how I expect it - it rather does nothing)

Thank you for your help so far!

Best regards,

Jonas

mesh3 ThSol = trunc( Th3, T>=Tsol*0.7);

fespace Uh(ThSol,P1);

Uh Tiso;

Tiso=T-Tsol;

ThSol = mmg3d(ThSol,metric=Tiso[],iso=1,ls=0,hausd=0.003,hgrad=2.3,verbose=10);

plot(ThSol,cmm=“ThSol mmg3d bdmeshed”,wait=1);

ThSol = buildBdMesh(ThSol);

meshS ThSSol = ThSol.Gamma;

ThSSol = trunc(ThSSol,region==10);

ThSSol = mmgs(ThSSol,hausd=0.003,hgrad=2.3);

Thanks, with the new version it works!!

Best regards,

Jonas