Hi,

prj thank you for your reply,

for the mesh with the hole I have an inner boundary and an outer boundary:

real x0=0,y0=0;

real xF=pi,yF=pi;

int N =2^7;

real xS=48 *pi/N,yS=48* pi/N;

real xSF=80 *pi/N,ySF=80* pi/N;

// domain of problem

int[int] lab = [1,2,10,5];

mesh ThBot = square(N,N,[x0+(xF-x0) *x,y0+0.5* (yF-y0)*y] , label = lab);

lab = [10,2,3,4];

mesh ThTop = square(N,N,[x0+(xF-x0) *x,y0+0.5* (yF-y0) *y+0.5* pi], label = lab);

mesh Th = ThBot + ThTop;

mesh Thwithole = trunc(Th, (x<xS | x>xSF|y<yS) | (x<xS | x>xSF| y>ySF ));

- If I use the additional parameter label inside the “trunc” command, will FF++ assign this label only to the inner boundary?

I mean, my inner boundary is a boundary of a square so it has four edges, than if I add to the code two lines

int[int] lab1 = [6,7,8,9];

mesh Thwithole = trunc(Th, (x<xS | x>xSF|y<yS) | (x<xS | x>xSF| y>ySF ), label=lab1);

will FF++, assign the label only to the inner boundary?

Because I want to keep the label of the outer boundary the same as it was before using the “trunc” command.

- For the labeling order, I saw in the documentation these examples

// Mesh

mesh Th1 = square(10, 10);

mesh Th2 = square(20, 10, [x+1, y]);

int[int] r1=[2,0];

plot(Th1, wait=true);

Th1 = change(Th1, label=r1); //change the label of Edges 2 in 0.

plot(Th1, wait=true);

// boundary label: 1 -> 1 bottom, 2 -> 1 right, 3->1 top, 4->1 left boundary label is 1

int[int] re=[1,1, 2,1, 3,1, 4,1]

Th2=change(Th2,refe=re);

plot(Th2,wait=1) ;

But I am not sure if this is what you meant for the labeling order?

Best Regards,

Mordechai.