// breast.geo
// definition and variable
MINUS_THREE_DIM = 2147483648;
MINUS_TWO_DIM   = 1073741824;
MINUS_ONE_DIM   =  536870912;

//parameter of the breast
R=0.1;
H=0.14;
s=0.05;
h=0;
h2l=0 + -0.034285714285714;
h2r=0 + -0.034285714285714;
d=0;
dl=0;
dr=0;
a=0.34906585039889;
a_left=0.34906585039889;
a_right=0.34906585039889;
lc=0.2*R;


r=0.5*(R*R+H*H)/H; 
h2=0.00;//value to evaluate point D coordinates
//epsi=1.0e-08;
epsi=0.0;
// make the breast geometry
tga=Tan(a);
b_left = 0;
b_right = 0;
tga_left=Tan(a_left);
tga_right=Tan(a_right);
tgb_left=Tan(b_left);
tgb_right=Tan(b_right);

shift=r-H;

dl=-dl;
dr=-dr;


Point(1) = {0+epsi,0.0+shift,0.0,lc};//point O
Ax=0.0;Az=s;Ay=-Sqrt(r*r-s*s);
Point(2) = {Ax+epsi,Ay+shift,Az,lc};//point A
Ex=0.0;Ez=R;Ey=H-r;
Point(3) = {Ex+epsi,Ey+shift,Ez,lc};// point E


//------------//
Delta_bl=4*Az*Az*tgb_left*tgb_left*tgb_left*tgb_left-4*(1+tgb_left*tgb_left)*(tgb_left*tgb_left*Az*Az+0.0*0.0-R*R);
delta_z=0.5*(2*Az*tgb_left*tgb_left-Sqrt(Delta_bl))/(1+tgb_left*tgb_left);
Dy=-tgb_left*(Az-delta_z);

Delta=4*Az*Az*tga_left*tga_left*tga_left*tga_left-4*(1+tga_left*tga_left)*(tga_left*tga_left*Az*Az+Dy*Dy-R*R);
Dz=0.5*(2*Az*tga_left*tga_left-Sqrt(Delta))/(1+tga_left*tga_left);Dx=tga_left*(Az-Dz);


Dy=-h2l+shift;
delta_M=Tan(-a_left+(Pi*0.5));
delta_A=1+(delta_M*delta_M);
delta_B=2*Az*delta_M;
delta_C=(Az*Az)+(h2l*h2l)-(r*r);
Dx=(-delta_B-Sqrt((delta_B*delta_B) - (4*delta_A*delta_C)))/(2*delta_A);
Dz=Az+delta_M*Dx;


Point(4) = {Dx,Dy,Dz,lc}; //point D

Printf("Ponto 4:: %g,%g,%g -- tan:%g -- r:%g -- delta:%g,%g,%g", Dx, Dy, Dz, delta_M, r, delta_A, delta_B, delta_C);

Delta_br=4*Az*Az*tgb_right*tgb_right*tgb_right*tgb_right-4*(1+tgb_right*tgb_right)*(tgb_right*tgb_right*Az*Az+0.0*0.0-R*R);
delta_z=0.5*(2*Az*tgb_right*tgb_right-Sqrt(Delta_br))/(1+tgb_right*tgb_right);
Dy_r=-tgb_right*(Az-delta_z);

Delta_r=4*Az*Az*tga_right*tga_right*tga_right*tga_right-4*(1+tga_right*tga_right)*(tga_right*tga_right*Az*Az+Dy_r*Dy_r-R*R);
Dz_r=0.5*(2*Az*tga_right*tga_right-Sqrt(Delta_r))/(1+tga_right*tga_right);Dx_r=tga_right*(Az-Dz_r);

Dy_r=-(h2r-shift);
delta_M=Tan(a_right-(Pi*0.5));
delta_A=1+(delta_M*delta_M);
delta_B=2*Az*delta_M;
delta_C=(Az*Az)+(h2r*h2r)-(r*r);
Dx_r=(-delta_B+Sqrt((delta_B*delta_B) - (4*delta_A*delta_C)))/(2*delta_A);
Dz_r=Az+delta_M*Dx_r;

Point(5) = {Dx_r,Dy_r,Dz_r,lc};

Printf("Ponto 5:: %g,%g,%g -- tan:%g -- r:%g -- delta:%g,%g,%g", Dx_r, Dy_r, Dz_r, delta_M, r, delta_A, delta_B, delta_C);

//pontos laterais obtidos com um certo ângulo
Cz=-dr;Cy=Ey;Cx=Sqrt(R*R-(dr*dr));
Point(6) = {Cx+epsi,Cy+shift,Cz,lc};// Point C
Cz_r=-dl;Cy_r=Ey;Cx_r=-Sqrt(R*R-(dl*dl));
Point(7) = {Cx_r+epsi,Cy_r+shift,Cz_r,lc};

Fx=0.0;Fz=0.;Fy=H-r;
Point(8) = {Fx,Fy+shift,Fz,lc};// point F centre of base circle
Bx=Ax;By=Ey;Bz=Az;
Point(9) = {Bx+epsi,By+shift,Bz,lc};// Point B
ux=(Cy-By)*(Dz-Bz)-(Cz-Bz)*(Dy-By);
uy=(Cz-Bz)*(Dx-Bx)-(Cx-Bx)*(Dz-Bz);
uz=(Cx-Bx)*(Dy-By)-(Cy-By)*(Dx-Bx);
lambda=(Bx*ux+By*uy+Bz*uz)/(ux*ux+uy*uy+uz*uz);
Gx=lambda*ux;Gy=lambda*uy;Gz=lambda*uz;

ux=(Cy_r-By)*(Dz_r-Bz)-(Cz_r-Bz)*(Dy_r-By);
uy=(Cz_r-Bz)*(-Dx_r-Bx)-(Cx_r-Bx)*(Dz_r-Bz);
uz=(Cx_r-Bx)*(Dy_r-By)-(Cy_r-By)*(-Dx_r-Bx);
lambda=(Bx*ux+By*uy+Bz*uz)/(ux*ux+uy*uy+uz*uz);
Gx=lambda*ux;Gy=lambda*uy;Gz=lambda*uz;

//Fx=0.0;Fz=0.;Fy=0;
//Point(10) = {Fx,Fy+shift,Fz,lc};// Point B
//Point(11) = {Fx,Fy+shift,Fz,lc};// Point B

//center of arc
//P1 - Cx,Cy+shift,Cz
//P2 - Dx_r,Dy_r,Dz_r
Bx=Ax;By=0;Bz=Az;
p1x=Cx; p1y=Cy+shift; p1z=Cz;
p2x=Dx_r; p2y=Dy_r; p2z=Dz_r; 
n1 = ((p1y-By)*(p2z-Bz)) - ((p2y-By)*(p1z-Bz));
n2 = ((p2x-Bx)*(p1z-Bz)) - ((p1x-Bx)*(p2z-Bz));
n3 = ((p1x-Bx)*(p2y-By)) - ((p2x-Bx)*(p1y-By));
gamma = (p1x*p1x) - (p2x*p2x) + (p1y*p1y) - (p2y*p2y) + (p1z*p1z) - (p2z*p2z);

CCx=0;
CCz = (gamma - ( ( ((n1*Bx) + (n3*Bz))/(n2) ) * ((2*p1y) - (2*p2y)) ) ) / ((2*p1z) - (2*p2z) - ((n3/n2)*((2*p1y)-(2*p2y))) );
CCy = ((n1*Bx) + (n3*Bz) - (n3*CCz)) / n2;

Point(10) = {CCx,CCy,CCz,lc};// Point B

Bx=Ax;By=0;Bz=Az;
p1x=Cx; p1y=Cy+shift; p1z=Cz;
p2x=Dx; p2y=Dy; p2z=Dz; 
n1 = ((p1y-By)*(p2z-Bz)) - ((p2y-By)*(p1z-Bz));
n2 = ((p2x-Bx)*(p1z-Bz)) - ((p1x-Bx)*(p2z-Bz));
n3 = ((p1x-Bx)*(p2y-By)) - ((p2x-Bx)*(p1y-By));
gamma = (p1x*p1x) - (p2x*p2x) + (p1y*p1y) - (p2y*p2y) + (p1z*p1z) - (p2z*p2z);

CCx=0;
CCz = (gamma - ( ( ((n1*Bx) + (n3*Bz))/(n2) ) * ((2*p1y) - (2*p2y)) ) ) / ((2*p1z) - (2*p2z) - ((n3/n2)*((2*p1y)-(2*p2y))) );
CCy = ((n1*Bx) + (n3*Bz) - (n3*CCz)) / n2;


Point(11) = {CCx,CCy,CCz,lc};// Point B

d_val = Sqrt((Dx-Ax)*(Dx-Ax) + (Dy-Ay+shift)*(Dy-Ay+shift) + (Dz-Az)*(Dz-Az)); 
beta = 1/(Sin((d_val*0.5)/R));
t = Cos(beta) * R; //dist

meanX = (Dx + Ax)/2.0; meanY = (Dy+(Ay+shift))/2.0; meanZ = (Dz + Az)/2.0;
meanDist = Sqrt((meanX-Bx)*(meanX-Bx) + (meanY-By)*(meanY-By) + (meanZ-Bz)*(meanZ-Bz)); 
vx = (Bx-meanX)/meanDist;
vy = (By-meanY)/meanDist;
vz = (Bz-meanZ)/meanDist;

//Point(12) = {-(meanX + vx*t), meanY + vy*t, meanZ + vz*t, lc};

h_aux = Sqrt(R*R - (d_val*0.5)*(d_val*0.5));
v1x = -Tan(a_left - (Pi*0.5));
v1y = 0.0;
v1z = 1.0;

ddx = -v1z*(Dy-(Ay+shift));
ddy = -v1x*(Dz-Az) + v1z*(Dx-Ax);
ddz = v1x*(Dy-(Ay+shift));
//ddx = -v1z*(Dy_r-(Ay+shift));
//ddy = -v1x*(Dz_r-Az) + v1z*(Dx_r-Ax);
//ddz = v1x*(Dy_r-(Ay+shift));

P_cX = (meanX+h_aux*ddx);
P_cY = (meanY+h_aux*ddy);
P_cZ = (meanZ+h_aux*ddz);

teste = Sqrt((Ax-P_cX)*(Ax-P_cX) + ((Ay+shift)-P_cY)*((Ay+shift)-P_cY) + (Az-P_cZ)*(Az-P_cZ) );
teste1 = Sqrt((Dx-P_cX)*(Dx-P_cX) + ((Dy)-P_cY)*((Dy)-P_cY) + (Dz-P_cZ)*(Dz-P_cZ) );
teste2 = Tan(Pi*0.5-a_left)*P_cX - P_cZ + Az;
//Printf("teste esq:: %g <-> %g -- maisumteste:%g",teste, teste1, teste2);

//Point(12) = {-(meanX+h_aux*ddx),meanY+h_aux*ddy,meanZ+h_aux*ddz,lc};

lambda = (-Az) / (Tan(-a_left+(Pi*0.5))*Tan(-a_left+(Pi*0.5)) + 1.0);
c_auxX = (lambda*(Tan(-a_left+(Pi*0.5))));
c_auxY = shift;
c_auxZ = -lambda;

Printf("Value test:: P(%g,%g,%g) -- C(%g,%g,%g) -- %g -- %g", P_cX, P_cY, P_cZ, c_auxX, c_auxY, c_auxZ, Sqrt((c_auxX-Ax)*(c_auxX-Ax) + (c_auxY-Ay+shift)*(c_auxY-Ay+shift) + (c_auxZ-Az)*(c_auxZ-Az)), Sqrt((c_auxX-Dx_r)*(c_auxX-Dx_r) + (c_auxY-Dy_r)*(c_auxY-Dy_r) + (c_auxZ-Dz_r)*(c_auxZ-Dz_r)));
Printf("Value test:: P(%g,%g,%g) -- C(%g,%g,%g) -- %g -- %g", P_cX, P_cY, P_cZ, c_auxX, c_auxY, c_auxZ, Sqrt((c_auxX-Ax)*(c_auxX-Ax) + (c_auxY-Ay+shift)*(c_auxY-Ay+shift) + (c_auxZ-Az)*(c_auxZ-Az)), Sqrt((c_auxX-Dx)*(c_auxX-Dx) + (c_auxY-Dy)*(c_auxY-Dy) + (c_auxZ-Dz)*(c_auxZ-Dz)));


Point(12) = {c_auxX,c_auxY,c_auxZ,lc};

teste = Sqrt((Ax-c_auxX)*(Ax-c_auxX) + ((Ay+shift)-c_auxY)*((Ay+shift)-c_auxY) + (Az-c_auxZ)*(Az-c_auxZ) );
teste1 = Sqrt((Dx-c_auxX)*(Dx-c_auxX) + ((Dy)-c_auxY)*((Dy)-c_auxY) + (Dz-c_auxZ)*(Dz-c_auxZ) );
teste2 = Tan((Pi*0.5)-a_left)*c_auxX - c_auxZ + Az;
Printf("teste esq:: %g <-> %g -- isplane:%f -- lambda:%g",teste, teste1, teste2, lambda);


d_val = Sqrt((Dx_r-Ax)*(Dx_r-Ax) + (Dy_r-Ay+shift)*(Dy_r-Ay+shift) + (Dz_r-Az)*(Dz_r-Az)); 

beta = 1/(Sin((d_val*0.5)/R));
t = Cos(beta) * R; //dist

meanX = (Dx_r + Ax)/2.0; meanY = (Dy_r+(Ay+shift))/2.0; meanZ = (Dz_r + Az)/2.0;
meanDist = Sqrt((meanX-Bx)*(meanX-Bx) + (meanY-By)*(meanY-By) + (meanZ-Bz)*(meanZ-Bz));
vx = (Bx-meanX)/meanDist;
vy = (By-meanY)/meanDist;
vz = (Bz-meanZ)/meanDist;
//Point(13) = {(meanX + vx*t), meanY + vy*t, meanZ + vz*t, lc};


h_aux = Sqrt(R*R - (d_val*0.5)*(d_val*0.5));
v1x = -Tan(a_right - Pi/2.0);
v1y = 0.0;
v1z = 1.0;

ddx = -v1z*(Dy_r-(Ay+shift));
ddy = -v1x*(Dz_r-Az) + v1z*(Dx_r-Ax);
ddz = v1x*(Dy_r-(Ay+shift));

teste = (Dx_r - Ax)*Tan(a_right-(Pi*0.5)) - (Dz_r-Az);

//Printf("teste=%g",teste);

//Point(13) = {(meanX+h_aux*ddx),meanY+h_aux*ddy,meanZ+h_aux*ddz,lc};

P_cX = (meanX+h_aux*ddx);
P_cY = (meanY+h_aux*ddy);
P_cZ = (meanZ+h_aux*ddz);

teste = Sqrt((Ax-P_cX)*(Ax-P_cX) + ((Ay+shift)-P_cY)*((Ay+shift)-P_cY) + (Az-P_cZ)*(Az-P_cZ) );
teste1 = Sqrt((Dx_r-P_cX)*(Dx_r-P_cX) + ((Dy_r)-P_cY)*((Dy_r)-P_cY) + (Dz_r-P_cZ)*(Dz_r-P_cZ) );

//Printf("teste dir:: %g <-> %g -- lambda:%g -- maisumteste:%g",teste, teste1, lambda, teste2);

P_cM = Tan(a_right-(Pi*0.5));
P_aux = (2.0*Dx_r + 2.0*P_cM*(Az-Dz_r));
//P_aux = 0.0;
P_cY = shift;
P_cX = ((Ay+shift)*(Ay+shift) - (2.0*P_cY*(Ay+shift)) - (Dx_r*Dx_r) - (Dy_r*Dy_r) + (2.0*P_cY*Dy_r) - ((Az-Dz_r)*(Az-Dz_r))) / P_aux;
P_cZ = Az + P_cM*P_cX;

Printf("aux: %g", P_aux);


lambda = (-Az) / (Tan(-a_right+(Pi*0.5))*Tan(-a_right+(Pi*0.5)) + 1.0);

c_auxX = (-lambda*Tan(-a_right+(Pi*0.5)));
c_auxY = shift;
c_auxZ = -lambda;

Printf("Value test:: P(%g,%g,%g) -- C(%g,%g,%g) -- %g -- %g", P_cX, P_cY, P_cZ, c_auxX, c_auxY, c_auxZ, Sqrt((c_auxX-Ax)*(c_auxX-Ax) + (c_auxY-Ay+shift)*(c_auxY-Ay+shift) + (c_auxZ-Az)*(c_auxZ-Az)), Sqrt((c_auxX-Dx)*(c_auxX-Dx) + (c_auxY-Dy)*(c_auxY-Dy) + (c_auxZ-Dz)*(c_auxZ-Dz)));
Printf("Value test:: P(%g,%g,%g) -- C(%g,%g,%g) -- %g -- %g", P_cX, P_cY, P_cZ, c_auxX, c_auxY, c_auxZ, Sqrt((c_auxX-Ax)*(c_auxX-Ax) + (c_auxY-Ay+shift)*(c_auxY-Ay+shift) + (c_auxZ-Az)*(c_auxZ-Az)), Sqrt((c_auxX-Dx_r)*(c_auxX-Dx_r) + (c_auxY-Dy_r)*(c_auxY-Dy_r) + (c_auxZ-Dz_r)*(c_auxZ-Dz_r)));


AAy = Ay+shift;
//exp1 = (Dx_r*Dx_r) + (Dx_r*Dx_r) + (Dx_r*Dx_r) - (Ax*Ax) - (AAy*AAy) - (Az*Az);
//exp2 = (2*Dx_r) - (2*Ax) + ( (Tan(a_right-(Pi*0.5)))*((2*Dz_r)-(2*Az)) );
//c_auxX = (exp1 - (Az*((2*Dz_r)-(2*Az))))/exp2;
//c_auxZ = Az + (Tan(a_right-(Pi*0.5))*c_auxX);
//c_auxY = -shift;

//c_auxX = 0;
//c_auxZ = Az;
//c_auxY = ( (Dx_r*Dx_r) + (Dy_r*Dy_r) - (AAy*AAy) - (Ax*Ax) + (Dz_r*Dz_r) + (Az*Az) - (2*Dz_r*Az)) / ((2*Dy_r) - (2*AAy));

Printf("PONTO 13");
Printf("Value test:: P(%g,%g,%g) -- C(%g,%g,%g) -- %g -- %g", P_cX, P_cY, P_cZ, c_auxX, c_auxY, c_auxZ, Sqrt((c_auxX-Ax)*(c_auxX-Ax) + (c_auxY-(Ay+shift))*(c_auxY-(Ay+shift)) + (c_auxZ-Az)*(c_auxZ-Az)), Sqrt((c_auxX-Dx)*(c_auxX-Dx) + (c_auxY-Dy)*(c_auxY-Dy) + (c_auxZ-Dz)*(c_auxZ-Dz)));
Printf("Value test:: P(%g,%g,%g) -- C(%g,%g,%g) -- %g -- %g", P_cX, P_cY, P_cZ, c_auxX, c_auxY, c_auxZ, Sqrt((c_auxX-Ax)*(c_auxX-Ax) + (c_auxY-(Ay+shift))*(c_auxY-(Ay+shift)) + (c_auxZ-Az)*(c_auxZ-Az)), Sqrt((c_auxX-Dx_r)*(c_auxX-Dx_r) + (c_auxY-Dy_r)*(c_auxY-Dy_r) + (c_auxZ-Dz_r)*(c_auxZ-Dz_r)));
Printf("Value test:: P(%g,%g,%g) -- C(%g,%g,%g) -- %g -- %g", P_cX, P_cY, P_cZ, c_auxX, c_auxY, c_auxZ, Sqrt((P_cX-Ax)*(P_cX-Ax) + (P_cY-(Ay+shift))*(P_cY-(Ay+shift)) + (P_cZ-Az)*(P_cZ-Az)), Sqrt((P_cX-Dx_r)*(P_cX-Dx_r) + (P_cY-Dy_r)*(P_cY-Dy_r) + (P_cZ-Dz_r)*(P_cZ-Dz_r)));

Point(13) = {c_auxX,c_auxY,c_auxZ,lc};
//Point(13) = {P_cX,P_cY,P_cZ,lc};

delta_A = Sqrt( ((Ax-c_auxX)*(Ax-c_auxX)) + ((AAy-c_auxY)*(AAy-c_auxY)) + ((Az-c_auxZ)*(Az-c_auxZ)) );
delta_B = Sqrt( ((Dx_r-c_auxX)*(Dx_r-c_auxX)) + ((Dy_r-c_auxY)*(Dy_r-c_auxY)) + ((Dz_r-c_auxZ)*(Dz_r-c_auxZ)) );
Printf("Ponto 13:: %g,%g,%g -- delta:%g,%g", c_auxX, c_auxY, c_auxZ, delta_A, delta_B);


teste = Sqrt((Ax-c_auxX)*(Ax-c_auxX) + ((Ay+shift)-c_auxY)*((Ay+shift)-c_auxY) + (Az-c_auxZ)*(Az-c_auxZ) );
teste1 = Sqrt((Dx_r-c_auxX)*(Dx_r-c_auxX) + ((Dy_r)-c_auxY)*((Dy_r)-c_auxY) + (Dz_r-c_auxZ)*(Dz_r-c_auxZ) );
teste2 = -Tan(Pi*0.5-a_right)*c_auxX - c_auxZ + Az;
Printf("teste dir:: %g <-> %g -- isplane:%f -- lambda:%g",teste, teste1, teste2, lambda);





//Circle(1) = {2,12,4};
Circle(1) = {2,1,4};
Circle(2) = {6,10,5};
Circle(3) = {6,8,3};
//Circle(4) = {2,13,5};
Circle(4) = {2,1,5};
Circle(5) = {7,11,4};
Circle(6) = {7,8,3};
Circle(7) = {2,1,3};
Circle(8) = {2,1,6};
Circle(9) = {2,1,7};
Line(10)={2,9};
Line(11)={9,4};
Line(12)={9,7};
Line(13)={9,6};
Line(14)={9,5};
Line(15)={9,3};


Line Loop(1) = {8,3,-7};
Surface(1) = {1} In Sphere{1};
Line Loop(2) = {8,2,-4};
Surface(2) = {2} In Sphere{1};
Line Loop(3) = {9,6,-7};
Surface(3) = {3} In Sphere{1};
Line Loop(4) = {9,5,-1};
Surface(4) = {4} In Sphere{1};
Line Loop(5) = {10,14,-4};
Surface(5) = {5};
Line Loop(6) = {10,11,-1};
Surface(6) = {6};
Line Loop(7) = {13,3,-15};
Surface(7) = {7};
Line Loop(8) = {13,2,-14};
Surface(8) = {8};
Line Loop(9) = {12,6,-15};
Surface(9) = {9};
Line Loop(10) = {12,5,-11};
Surface(10) = {10};
Line Loop(11) = {10,13,-8};
Surface(11) = {11};
Line Loop(12) = {10,12,-9};
Surface(12) = {12};
Surface Loop(1) = {1,3,7,9,11,12};
Volume(1) = {1};
Surface Loop(2) = {2,5,8,11};
Volume(2) = {2};
Surface Loop(3) = {4,6,10,12};
Volume(3) = {3};


// coding
// code 1 : fixe vertices
// code 2 ; Chassignac 
// code 3 : enregy surface
// code 4 : suturation left side 
// code 5 : suturation right side 
// code 6 : suturation bottom side
// code 7 : double suturation Left side
// code 8 : double suturation Right side
// code 9 : table match


Physical Surface(4) = {6};
Physical Surface(4+MINUS_ONE_DIM) = {6};
Physical Surface(4+MINUS_TWO_DIM) = {6};

Physical Surface(5) = {5};
Physical Surface(5+MINUS_ONE_DIM) = {5};
Physical Surface(5+MINUS_TWO_DIM) = {5};

Physical Line(7) = {11};
Physical Line(7+MINUS_ONE_DIM) = {11};

Physical Line(8) = {14};
Physical Line(8+MINUS_ONE_DIM) = {14};

Physical Line(1) = {15};
Physical Line(1+MINUS_ONE_DIM) = {15};

Physical Line(0) = {10};
Physical Line(0+MINUS_ONE_DIM) = {10};

Physical Line(9) = {1};
Physical Line(9+MINUS_ONE_DIM) = {1};

Physical Line(10) = {4};
Physical Line(10+MINUS_ONE_DIM) = {4};

//Physical Line(4) = {4};
//Physical Line(4+MINUS_ONE_DIM) = {4};

//Physical Line(5) = {1};
//Physical Line(5+MINUS_ONE_DIM) = {1};

Physical Surface(6) = {7,8,9,10};
Physical Surface(6+MINUS_ONE_DIM) = {7,8,9,10};
Physical Surface(6+MINUS_TWO_DIM) = {7,8,9,10};

Reverse Surface{2,3,6,7,10};

Physical Surface(3) = {1,2,3,4};
//Physical Surface(3+MINUS_ONE_DIM) = {1,2,3,4};
//Physical Surface(3+MINUS_TWO_DIM) = {1,2,3,4};

Physical Point(1) = {9,3};

Physical Point(0) = {2};

Physical Volume(1)= {1,2,3};
