m_l=8;

//ESTERNO
// circonferenza esterna superiore
raggio=91;
z=0;
id_curva=10;
Point(id_curva+1) = {0, 0, z, m_l};
Point(id_curva+2) = {0, raggio, z, m_l};
Point(id_curva+3) = {raggio, 0, z, m_l};
Point(id_curva+4) = {0, -raggio, z, m_l};
Point(id_curva+5) = {-raggio, 0, z, m_l};
Circle(id_curva+6) = {id_curva+2, id_curva+1, id_curva+3};
Circle(id_curva+7) = {id_curva+3, id_curva+1, id_curva+4};
Circle(id_curva+8) = {id_curva+4, id_curva+1, id_curva+5};
Circle(id_curva+9) = {id_curva+5, id_curva+1, id_curva+2};
Line Loop(id_curva) = {id_curva+6, id_curva+7, id_curva+8, id_curva+9};

// circonferenza esterna inferiore
raggio=91;
z=-5;
id_curva=20;
Point(id_curva+1) = {0, 0, z, m_l};
Point(id_curva+2) = {0, raggio, z, m_l};
Point(id_curva+3) = {raggio, 0, z, m_l};
Point(id_curva+4) = {0, -raggio, z, m_l};
Point(id_curva+5) = {-raggio, 0, z, m_l};
Circle(id_curva+6) = {id_curva+2, id_curva+1, id_curva+3};
Circle(id_curva+7) = {id_curva+3, id_curva+1, id_curva+4};
Circle(id_curva+8) = {id_curva+4, id_curva+1, id_curva+5};
Circle(id_curva+9) = {id_curva+5, id_curva+1, id_curva+2};
Line Loop(id_curva) = {id_curva+6, id_curva+7, id_curva+8, id_curva+9};

// mi faccio i 4 line loop per la superficie laterale li chiami come 100+numero progressivo
id_curva_sopra=10;
id_curva_sotto=20;
id_linea=80;
Line(id_linea+2)= {id_curva_sopra+2, id_curva_sotto+2};
Line(id_linea+3)= {id_curva_sopra+3, id_curva_sotto+3};
Line(id_linea+4)= {id_curva_sopra+4, id_curva_sotto+4};
Line(id_linea+5)= {id_curva_sopra+5, id_curva_sotto+5};
base_id_loop = 100;
base_id_sup = 150;

Line Loop(base_id_loop+1) = {id_curva_sopra+6, id_linea+3, -(id_curva_sotto+6), -(id_linea+2)};
Line Loop(base_id_loop+2) = {id_curva_sopra+7, id_linea+4, -(id_curva_sotto+7), -(id_linea+3)};
Line Loop(base_id_loop+3) = {id_curva_sopra+8, id_linea+5, -(id_curva_sotto+8), -(id_linea+4)};
Line Loop(base_id_loop+4) = {id_curva_sopra+9, id_linea+2, -(id_curva_sotto+9), -(id_linea+5)};
Ruled Surface(base_id_sup+1) ={base_id_loop+1};
Ruled Surface(base_id_sup+2) ={base_id_loop+2};
Ruled Surface(base_id_sup+3) ={base_id_loop+3};
Ruled Surface(base_id_sup+4) ={base_id_loop+4};

//INTERNO
// circonferenza superiore
raggio=45;
z=0;
id_curva=30;
Point(id_curva+1) = {0, 0, z, m_l};
Point(id_curva+2) = {0, raggio, z, m_l};
Point(id_curva+3) = {raggio, 0, z, m_l};
Point(id_curva+4) = {0, -raggio, z, m_l};
Point(id_curva+5) = {-raggio, 0, z, m_l};
Circle(id_curva+6) = {id_curva+2, id_curva+1, id_curva+3};
Circle(id_curva+7) = {id_curva+3, id_curva+1, id_curva+4};
Circle(id_curva+8) = {id_curva+4, id_curva+1, id_curva+5};
Circle(id_curva+9) = {id_curva+5, id_curva+1, id_curva+2};
Line Loop(id_curva) = {id_curva+6, id_curva+7, id_curva+8, id_curva+9};

// circonferenza esterna inferiore
raggio=45;
z=-2.15;
id_curva=40;
Point(id_curva+1) = {0, 0, z, m_l};
Point(id_curva+2) = {0, raggio, z, m_l};
Point(id_curva+3) = {raggio, 0, z, m_l};
Point(id_curva+4) = {0, -raggio, z, m_l};
Point(id_curva+5) = {-raggio, 0, z, m_l};
Circle(id_curva+6) = {id_curva+2, id_curva+1, id_curva+3};
Circle(id_curva+7) = {id_curva+3, id_curva+1, id_curva+4};
Circle(id_curva+8) = {id_curva+4, id_curva+1, id_curva+5};
Circle(id_curva+9) = {id_curva+5, id_curva+1, id_curva+2};
Line Loop(id_curva) = {id_curva+6, id_curva+7, id_curva+8, id_curva+9};

// mi faccio i 4 line loop per la superficie laterale li chiami come 100+numero progressivo
id_curva_sopra=30;
id_curva_sotto=40;
id_linea=90;
Line(id_linea+2)= {id_curva_sopra+2, id_curva_sotto+2};
Line(id_linea+3)= {id_curva_sopra+3, id_curva_sotto+3};
Line(id_linea+4)= {id_curva_sopra+4, id_curva_sotto+4};
Line(id_linea+5)= {id_curva_sopra+5, id_curva_sotto+5};
base_id_loop = 200;
base_id_sup = 250;

Line Loop(base_id_loop+1) = {id_curva_sopra+6, id_linea+3, -(id_curva_sotto+6), -(id_linea+2)};
Line Loop(base_id_loop+2) = {id_curva_sopra+7, id_linea+4, -(id_curva_sotto+7), -(id_linea+3)};
Line Loop(base_id_loop+3) = {id_curva_sopra+8, id_linea+5, -(id_curva_sotto+8), -(id_linea+4)};
Line Loop(base_id_loop+4) = {id_curva_sopra+9, id_linea+2, -(id_curva_sotto+9), -(id_linea+5)};
Ruled Surface(base_id_sup+1) ={base_id_loop+1};
Ruled Surface(base_id_sup+2) ={base_id_loop+2};
Ruled Surface(base_id_sup+3) ={base_id_loop+3};
Ruled Surface(base_id_sup+4) ={base_id_loop+4};

// creo le superfici piane
Plane Surface(1020) = {20};
Plane Surface(1010) = {10, 30};
Plane Surface(1040) = {40};

// creo il volume complessivo
Surface Loop(9999) = {1040, 251, 252, 253, 254, 1010,  151, 152, 153, 154, 1020};
Volume(10000) = {9999};

// creo il contatto di anodo esterno
raggio=69;
z=0;
id_curva=70;
Point(id_curva+1) = {0, 0, z, m_l};
Point(id_curva+2) = {0, raggio, z, m_l};
Point(id_curva+3) = {raggio, 0, z, m_l};
Point(id_curva+4) = {0, -raggio, z, m_l};
Point(id_curva+5) = {-raggio, 0, z, m_l};
Circle(id_curva+6) = {id_curva+2, id_curva+1, id_curva+3};
Circle(id_curva+7) = {id_curva+3, id_curva+1, id_curva+4};
Circle(id_curva+8) = {id_curva+4, id_curva+1, id_curva+5};
Circle(id_curva+9) = {id_curva+5, id_curva+1, id_curva+2};
Line Loop(id_curva) = {id_curva+6, id_curva+7, id_curva+8, id_curva+9};
raggio=65;
z=0;
id_curva=60;
Point(id_curva+1) = {0, 0, z, m_l};
Point(id_curva+2) = {0, raggio, z, m_l};
Point(id_curva+3) = {raggio, 0, z, m_l};
Point(id_curva+4) = {0, -raggio, z, m_l};
Point(id_curva+5) = {-raggio, 0, z, m_l};
Circle(id_curva+6) = {id_curva+2, id_curva+1, id_curva+3};
Circle(id_curva+7) = {id_curva+3, id_curva+1, id_curva+4};
Circle(id_curva+8) = {id_curva+4, id_curva+1, id_curva+5};
Circle(id_curva+9) = {id_curva+5, id_curva+1, id_curva+2};
Line Loop(id_curva) = {id_curva+6, id_curva+7, id_curva+8, id_curva+9};
Plane Surface(1070) = {70, 60};

// creo il contatto di anodo interno
raggio=25;
z=-2.15;
id_curva=50;
Point(id_curva+1) = {0, 0, z, m_l};
Point(id_curva+2) = {0, raggio, z, m_l};
Point(id_curva+3) = {raggio, 0, z, m_l};
Point(id_curva+4) = {0, -raggio, z, m_l};
Point(id_curva+5) = {-raggio, 0, z, m_l};
Circle(id_curva+6) = {id_curva+2, id_curva+1, id_curva+3};
Circle(id_curva+7) = {id_curva+3, id_curva+1, id_curva+4};
Circle(id_curva+8) = {id_curva+4, id_curva+1, id_curva+5};
Circle(id_curva+9) = {id_curva+5, id_curva+1, id_curva+2};
Line Loop(id_curva) = {id_curva+6, id_curva+7, id_curva+8, id_curva+9};
Plane Surface(1050) = {50};

// definisco i volumi e le superficii fisiche
Physical Surface('Anodo_int') = {1050};
Physical Surface('Anodo_ext') = {1070};
Physical Volume('Volume') = {10000};


