Mesh.Optimize = 1; Mesh.CharacteristicLengthMax = lc ; // CAVITY xCav = Lx/2; yCav = Ly/2; ap = App/2; pCav[0]=newp; Point(pCav[0]) = {-xCav, ap, 0}; pCav[1]=newp; Point(pCav[1]) = {-xCav, yCav, 0}; pCav[2]=newp; Point(pCav[2]) = { xCav, yCav, 0}; pCav[3]=newp; Point(pCav[3]) = { xCav,-yCav, 0}; pCav[4]=newp; Point(pCav[4]) = {-xCav,-yCav, 0}; pCav[5]=newp; Point(pCav[5]) = {-xCav,-ap, 0}; For i In {0:4} lCav[i]=newl; Line(lCav[i]) = {pCav[i],pCav[(i+1)]}; EndFor lApp=newl; Line(lApp) = {pCav[5],pCav[0]}; llCav=newll; Line Loop(llCav) = {lCav[],lApp}; surfCav=news; Plane Surface(surfCav) = {llCav}; // LAYER 1 x = Lx/2+Llayer1; y = Ly/2+Llayer1; pLay1[0]=newp; Point(pLay1[0]) = {-x, y, 0}; pLay1[1]=newp; Point(pLay1[1]) = {-xCav, y, 0}; pLay1[2]=newp; Point(pLay1[2]) = { x, y, 0}; pLay1[3]=newp; Point(pLay1[3]) = { x,-y, 0}; pLay1[4]=newp; Point(pLay1[4]) = {-xCav,-y, 0}; pLay1[5]=newp; Point(pLay1[5]) = {-x,-y, 0}; For i In {0:5} lLay1[i]=newl; Line(lLay1[i]) = {pLay1[i],pLay1[(i+1)%6]}; EndFor lCavLayTop=newl; Line(lCavLayTop) = {pCav[1],pLay1[1]}; lCavLayBot=newl; Line(lCavLayBot) = {pCav[4],pLay1[4]}; llLay1[0]=newll; Line Loop(llLay1[0]) = {lLay1[0],-lCavLayTop,-lCav[0],-lApp,-lCav[4],lCavLayBot,lLay1[4],lLay1[5]}; llLay1[1]=newll; Line Loop(llLay1[1]) = {lLay1[{1:3}],-lCavLayBot,-lCav[3],-lCav[2],-lCav[1],lCavLayTop}; surfLay1[0]=news; Plane Surface(surfLay1[0]) = {llLay1[0]}; surfLay1[1]=news; Plane Surface(surfLay1[1]) = {llLay1[1]}; // PHYSICAL ELEMENTS Physical Line(CAVITY_APERTURE) = {lApp}; Physical Line(CAVITY_BORDER) = {lCav[],lCavLayTop,lCavLayBot}; Physical Line(BORDER) = {lLay1[]}; Physical Surface(CAVITY_VOL) = {surfCav}; Physical Surface(LAYER1) = {surfLay1[]};