From 016ef503307b2f4693c79c6e716fb46702458f44 Mon Sep 17 00:00:00 2001 From: Christophe Geuzaine <cgeuzaine@ulg.ac.be> Date: Tue, 30 Oct 2001 08:21:13 +0000 Subject: [PATCH] new benches --- benchmarks/2d/machine/Functions.geo | 55 ++++ benchmarks/2d/machine/Machine.geo | 43 +++ benchmarks/2d/machine/PhysNum.geo | 37 +++ benchmarks/2d/machine/Rotor.geo | 55 ++++ benchmarks/2d/machine/Rotor3kW.geo | 117 +++++++ benchmarks/2d/machine/Stator.geo | 49 +++ benchmarks/2d/machine/Stator3kW.geo | 127 ++++++++ benchmarks/3d/magnetron/box-old.geo | 81 +++++ benchmarks/3d/magnetron/box.geo | 78 +++++ benchmarks/3d/magnetron/cylindric.geo | Bin 0 -> 2285 bytes benchmarks/3d/magnetron/forme1-old.geo | 138 ++++++++ benchmarks/3d/magnetron/forme1.geo | 139 ++++++++ benchmarks/3d/magnetron/forme2.geo | 117 +++++++ .../{avetole.geo => magnetron/magnetron0.geo} | 2 +- benchmarks/3d/magnetron/magnetron1-full.geo | 253 +++++++++++++++ benchmarks/3d/magnetron/magnetron1.geo | 267 +++++++++++++++ benchmarks/3d/magnetron/magnetron2-full.geo | 305 ++++++++++++++++++ benchmarks/3d/magnetron/magnetron2.geo | 296 +++++++++++++++++ benchmarks/3d/magnetron/quacylin.geo | Bin 0 -> 2090 bytes benchmarks/3d/magnetron/traphedre1.geo | 113 +++++++ benchmarks/3d/magnetron/traphedre2.geo | 115 +++++++ 21 files changed, 2386 insertions(+), 1 deletion(-) create mode 100644 benchmarks/2d/machine/Functions.geo create mode 100644 benchmarks/2d/machine/Machine.geo create mode 100644 benchmarks/2d/machine/PhysNum.geo create mode 100644 benchmarks/2d/machine/Rotor.geo create mode 100644 benchmarks/2d/machine/Rotor3kW.geo create mode 100644 benchmarks/2d/machine/Stator.geo create mode 100644 benchmarks/2d/machine/Stator3kW.geo create mode 100644 benchmarks/3d/magnetron/box-old.geo create mode 100644 benchmarks/3d/magnetron/box.geo create mode 100644 benchmarks/3d/magnetron/cylindric.geo create mode 100644 benchmarks/3d/magnetron/forme1-old.geo create mode 100644 benchmarks/3d/magnetron/forme1.geo create mode 100644 benchmarks/3d/magnetron/forme2.geo rename benchmarks/3d/{avetole.geo => magnetron/magnetron0.geo} (99%) create mode 100644 benchmarks/3d/magnetron/magnetron1-full.geo create mode 100644 benchmarks/3d/magnetron/magnetron1.geo create mode 100644 benchmarks/3d/magnetron/magnetron2-full.geo create mode 100644 benchmarks/3d/magnetron/magnetron2.geo create mode 100644 benchmarks/3d/magnetron/quacylin.geo create mode 100644 benchmarks/3d/magnetron/traphedre1.geo create mode 100644 benchmarks/3d/magnetron/traphedre2.geo diff --git a/benchmarks/2d/machine/Functions.geo b/benchmarks/2d/machine/Functions.geo new file mode 100644 index 0000000000..47c612491b --- /dev/null +++ b/benchmarks/2d/machine/Functions.geo @@ -0,0 +1,55 @@ +Function CopySlot + + For t_ In {1:NbrSect_} + dt_ = (t_-1)*NbrLine_; + For j_ In {0:NbrLines_-1} + KK_[j_] = ((LineLoop_[j_]>0)?1:-1) * (L_[Fabs(LineLoop_[j_])+dt_]); +// Printf("KK %g %g", j_, KK_[j_]); + EndFor + ll_ = newreg; Line Loop(newreg) = {KK_[{0:NbrLines_-1}]}; + lll_= newreg; Plane Surface(newreg) = {ll_}; + Physical Surface(PhysNum_+(t_-1)*dPhysNum_) = {lll_}; + EndFor + +Return + + +Function ConnectLine + + ii_ = -1; + For t_ In {1:NbrSect_} + dt_ = (t_-1)*NbrLine_; + For j_ In {0:NbrLines_-1} + ii_++; KK_[ii_] = ((LineLoop_[j_]>0)?1:-1) * (L_[Fabs(LineLoop_[j_])+dt_]); +//Printf("KK %g %g %g %g", t_, j_, ii_,KK_[ii_]); + EndFor + EndFor + Printf("ConnectLine newreg %g", newreg); + Line Loop(newreg) = {KK_[{0:NbrLines_*NbrSect_-1}]}; + +Return + + + +Function CopyLines + + ii_=NbrLine_+1; + For t_ In {1:NbrSect_-1} + For i_ In {1:NbrLine_} + L_[ii_] = newreg; ii_++; + Rotate { {0,0,1},{0,0,0},2*Pi*t_/NbrSect_ } { Duplicata { Line{L_[i_]}; } } + EndFor + EndFor + Coherence; + +Return + + + + + + + + + + diff --git a/benchmarks/2d/machine/Machine.geo b/benchmarks/2d/machine/Machine.geo new file mode 100644 index 0000000000..c436851863 --- /dev/null +++ b/benchmarks/2d/machine/Machine.geo @@ -0,0 +1,43 @@ +Include "Functions.geo"; + +/* physical numbers */ + +Include "PhysNum.geo"; + + +Geometry.LineWidth = 2; +Geometry.AutoCoherence = 0; + + + + +Printf("****************************************** Stator *********************************************"); + +//Include "StatorSector.geo"; +Include "Stator3kW.geo"; +Include "Stator.geo"; + + + + + + +Printf("******************************************* Rotor *********************************************"); + +//Include "RotorSector.geo"; +Include "Rotor3kW.geo"; +Include "Rotor.geo"; + + + + +Printf("**************************************** Moving Band ******************************************"); + +Printf("Rotor airgap layer : physical region %g", RotorAirgapLayer); +mmm = newreg; Plane Surface(mmm) = {OuterMB_,InnerMB_}; +Physical Surface(MB) = {mmm}; + + + + + diff --git a/benchmarks/2d/machine/PhysNum.geo b/benchmarks/2d/machine/PhysNum.geo new file mode 100644 index 0000000000..6f07b1bddf --- /dev/null +++ b/benchmarks/2d/machine/PhysNum.geo @@ -0,0 +1,37 @@ + +StatorIron = 10000; +StatorAirgapLayer = 11000; +StatorConductor = 12000; +StatorSlotOpening = 14000; +OuterStator = 40000; +OuterMB = 17000; + +RotorIron = 5000; +RotorAirgapLayer = 7000; +RotorConductor = 500; +RotorSlotOpening = 8000; +Shaft = 6000; +InnerMB = 16000; +OuterShaft = 6001; + +MB = 20000; + + + + + + + + + + + + + + + + + + + + diff --git a/benchmarks/2d/machine/Rotor.geo b/benchmarks/2d/machine/Rotor.geo new file mode 100644 index 0000000000..3debe50221 --- /dev/null +++ b/benchmarks/2d/machine/Rotor.geo @@ -0,0 +1,55 @@ + + +NbrSect_ = NbrSect; NbrLine_ = NbrLine; L_[]=L[]; + +Printf("Copy lines"); +Call CopyLines; + +LineLoop_[] = LineLoop3[] ; NbrLines_ = NbrLines3; PhysNum_ = RotorSlotOpening; dPhysNum_ = 0; +Printf("Rotor slot openings : physical surface %g", PhysNum_); +Call CopySlot; + + + +LineLoop_[] = LineLoop2[] ; NbrLines_ = NbrLines2; PhysNum_ = RotorConductor; dPhysNum_ = 1; +Printf("Rotor conductors : physical surfaces %g to %g", PhysNum_, PhysNum_+(NbrSect-1)*dPhysNum_); +Call CopySlot; + + +Printf("Inner airgap : line loop %g", newreg); +LineLoop_[] = LineLoop1[] ; NbrLines_ = NbrLines1; InnerAirgap = newreg; Call ConnectLine; + +Printf("Inner moving band : line loop %g", newreg); +LineLoop_[] = LineLoop4[] ; NbrLines_ = NbrLines4; InnerMB_ = newreg; Call ConnectLine; +Physical Line(InnerMB) = {KK_[{0:NbrLines_*NbrSect_-1}]}; + + +Printf("OuterShaft : line loop %g / physical line %g", newreg, OuterShaft); +LineLoop_[] = LineLoop5[] ; NbrLines_ = NbrLines5; OuterShaft_ = newreg; Call ConnectLine; +Physical Line(OuterShaft) = {KK_[{0:NbrLines_*NbrSect_-1}]}; + + +Printf("Shaft : physical surface %g", Shaft); +mmm = newreg; Plane Surface(mmm) = {OuterShaft_}; +Physical Surface(Shaft) = {mmm}; + + +Printf("Inner rotor iron : line loop %g", newreg); +LineLoop_[] = LineLoop6[] ; NbrLines_ = NbrLines6; InnerRotor = newreg; Call ConnectLine; + +Printf("Rotor airgap layer : physical surface %g", RotorAirgapLayer); +mmm = newreg; Plane Surface(mmm) = {InnerMB_,InnerAirgap}; +Physical Surface(RotorAirgapLayer) = {mmm}; + + +Printf("RotorIron : physical surface %g", RotorIron); +mmm = newreg; Plane Surface(mmm) = {InnerRotor,OuterShaft_}; +Physical Surface(RotorIron) = {mmm}; + + + + + + + + diff --git a/benchmarks/2d/machine/Rotor3kW.geo b/benchmarks/2d/machine/Rotor3kW.geo new file mode 100644 index 0000000000..a064cfa4ea --- /dev/null +++ b/benchmarks/2d/machine/Rotor3kW.geo @@ -0,0 +1,117 @@ + + + +NbrSect = 32; // number of rotor teeth + +u=1e-3; // scale factor + +AG = u* 0.4; // airgap width +R2 = u* 92/2 - AG; // outer rotor radius +//R2 = u* 92/2; // outer rotor radius +R3 = u* 31.75/2; // shaft radius +//R1 = u* 94/2; // inner radius of moving band +R1 = R2+AG/3; // inner radius of moving band + +/* +R1 = u* 88/2; // inner radius of moving band +R2 = u* 86/2; // outer rotor radius +R3 = u* 31.75/2; // shaft radius +*/ + + +// parameters for conductor and slot opening +h1 = u* 1; +h2 = u* 14.25; +d1 = u* 2; +Rsl = u* 4.26/2; + + + + +// characteristic lengths +uc = u* 1.3; + +pslo = uc* 0.3; // slot opening +psl = uc* 0.6; // upper part slot +pslu = uc* 1; // lower part slot +psha = uc* 2; // shaft radius +pMB = AG; // MB +//pMB = uc* 0.5; // MB +p = uc* 2; // + + + +Y1 = Sqrt(R2*R2-d1*d1/4) ; +Y2 = Sqrt(Rsl*Rsl-d1*d1/4) ; +RX = Rsl*Cos(Pi/NbrSect) ; +RY = Rsl*Sin(Pi/NbrSect) ; +RR = (h2-Rsl*(1+1/Sin(Pi/NbrSect)))/(1-1/Sin(Pi/NbrSect)); +RX2 = RR*Cos(Pi/NbrSect) ; +RY2 = RR*Sin(Pi/NbrSect) ; + + +Point(0) = {0,0,0,p}; + +dP=newp-1; +Point(dP+1) = {d1/2,Y1,0,pslo}; +Point(dP+2) = {-d1/2,Y1,0,pslo}; +Point(dP+3) = {d1/2,Y1-h1,0,pslo}; +Point(dP+4) = {-d1/2,Y1-h1,0,pslo}; +Point(dP+5) = {0,Y1-h1-Y2,0,pslo}; +Point(dP+6) = {RX,Y1-h1-Y2-RY,0,psl}; +Point(dP+7) = {-RX,Y1-h1-Y2-RY,0,psl}; +Point(dP+8) = {0,Y1-h1-Y2+Rsl-h2+RR,0,p}; +Point(dP+9) = {RX2,Y1-h1-Y2+Rsl-h2+RR-RY2,0,pslu}; +Point(dP+10) = {-RX2,Y1-h1-Y2+Rsl-h2+RR-RY2,0,pslu}; +Point(dP+11) = {0,Y1-h1-Y2+Rsl-h2,0,pslu}; +Point(dP+12) = {0,Y1-h1-Y2+Rsl,0,p}; // not used +Point(dP+13) = {R3*Sin(Pi/NbrSect),R3*Cos(Pi/NbrSect),0,psha}; +Point(dP+14) = {-R3*Sin(Pi/NbrSect),R3*Cos(Pi/NbrSect),0,psha}; + +Point(dP+15) = {R2*Sin(Pi/NbrSect),R2*Cos(Pi/NbrSect),0,pMB}; +Point(dP+16) = {-R2*Sin(Pi/NbrSect),R2*Cos(Pi/NbrSect),0,pMB}; +Point(dP+17) = {R1*Sin(Pi/NbrSect),R1*Cos(Pi/NbrSect),0,pMB}; +Point(dP+18) = {-R1*Sin(Pi/NbrSect),R1*Cos(Pi/NbrSect),0,pMB}; + + +For t In {dP+1:dP+18} + Rotate {{0,0,1},{0,0,0}, 0*Pi/10} {Point{t};} +EndFor + + +i=1; +L[i] = newreg; i++; Line(newreg) = {dP+06,dP+09}; +L[i] = newreg; i++; Line(newreg) = {dP+07,dP+10}; +L[i] = newreg; i++; Line(newreg) = {dP+01,dP+03}; +L[i] = newreg; i++; Line(newreg) = {dP+02,dP+04}; +L[i] = newreg; i++; Circle(newreg) = {dP+13,0,dP+14}; +L[i] = newreg; i++; Circle(newreg) = {dP+15,0,dP+01}; +L[i] = newreg; i++; Circle(newreg) = {dP+01,0,dP+02}; +L[i] = newreg; i++; Circle(newreg) = {dP+02,0,dP+16}; +L[i] = newreg; i++; Circle(newreg) = {dP+06,dP+05,dP+03}; +L[i] = newreg; i++; Circle(newreg) = {dP+03,dP+05,dP+04}; +L[i] = newreg; i++; Circle(newreg) = {dP+04,dP+05,dP+07}; +L[i] = newreg; i++; Circle(newreg) = {dP+10,dP+08,dP+11}; +L[i] = newreg; i++; Circle(newreg) = {dP+11,dP+08,dP+09}; +L[i] = newreg; i++; Circle(newreg) = {dP+17,0,dP+18}; + +NbrLine = 14; + +/* +L[i] = newreg; i++; Line(newreg) = {dP+15,dP+17}; +L[i] = newreg; i++; Line(newreg) = {dP+16,dP+18}; +L[i] = newreg; i++; Line(newreg) = {dP+14,dP+16}; +L[i] = newreg; i++; Line(newreg) = {dP+13,dP+15}; +L[i] = newreg; i++; Line(newreg) = {dP+13,0}; +L[i] = newreg; i++; Line(newreg) = {dP+14,0}; +*/ + + +NbrLines1 = 3; LineLoop1[] = {6,7,8}; // inner airgap +NbrLines2 = 7; LineLoop2[] = {11,2,12,13,-1,9,10}; // rotor conductor +NbrLines3 = 4; LineLoop3[] = {10,-4,-7,3}; // rotor slot opening +NbrLines4 = 1; LineLoop4[] = {14}; // inner moving band +NbrLines5 = 1; LineLoop5[] = {5}; // shaft +NbrLines6 = 10; LineLoop6[] = {-8,4,11,2,12,13,-1,9,-3,-6}; // inner rotor iron + + diff --git a/benchmarks/2d/machine/Stator.geo b/benchmarks/2d/machine/Stator.geo new file mode 100644 index 0000000000..06b1cb8135 --- /dev/null +++ b/benchmarks/2d/machine/Stator.geo @@ -0,0 +1,49 @@ + + +NbrSect_ = NbrSect; NbrLine_ = NbrLine; L_[]=L[]; + +Printf("Copy lines"); +Call CopyLines; + +LineLoop_[] = LineLoop2[] ; NbrLines_ = NbrLines2; PhysNum_ = StatorConductor; dPhysNum_ = 1; +Printf("Stator conductors : physical ssurfaces %g to %g", PhysNum_, PhysNum_+(NbrSect-1)*dPhysNum_); +Call CopySlot; + + +LineLoop_[] = LineLoop3[] ; NbrLines_ = NbrLines3; PhysNum_ = StatorSlotOpening; dPhysNum_ = 0; +Printf("Stator slot openings : physical surface %g", PhysNum_); +Call CopySlot; + + +Printf("OuterAirgap : line loop %g", newreg); +LineLoop_[] = LineLoop1[] ; NbrLines_ = NbrLines1; OuterAirgap = newreg; Call ConnectLine; + + +Printf("OuterMB : line loop %g / physical line %g", newreg, OuterMB); +LineLoop_[] = LineLoop4[] ; NbrLines_ = NbrLines4; OuterMB_ = newreg; Call ConnectLine; + +Physical Line(OuterMB) = {KK_[{0:NbrLines_*NbrSect_-1}]}; + + +Printf("OuterStator : line loop %g / physical line %g", newreg, OuterStator); +LineLoop_[] = LineLoop5[] ; NbrLines_ = NbrLines5; OuterStator_ = newreg; Call ConnectLine; + +Physical Line(OuterStator) = {KK_[{0:NbrLines_*NbrSect_-1}]}; + + + +Printf("InnerStatorIron : line loop %g", newreg); +LineLoop_[] = LineLoop6[] ; NbrLines_ = NbrLines6; InnerStator = newreg; Call ConnectLine; + +Printf("Stator airgap layer : physical surface %g", StatorAirgapLayer); +mmm = newreg; Plane Surface(mmm) = {OuterAirgap,OuterMB_}; +Physical Surface(StatorAirgapLayer) = {mmm}; + +Printf("Stator iron : physical surface %g", StatorIron); +mmm = newreg; Plane Surface(mmm) = {OuterStator_,InnerStator}; +Physical Surface(StatorIron) = {mmm}; + + + + + diff --git a/benchmarks/2d/machine/Stator3kW.geo b/benchmarks/2d/machine/Stator3kW.geo new file mode 100644 index 0000000000..74b83b9eb1 --- /dev/null +++ b/benchmarks/2d/machine/Stator3kW.geo @@ -0,0 +1,127 @@ + +NbrSect = 36; // number of stator teeth + +u=1e-3; + +AG = u* 0.4; // airgap width +R2 = u* 92/2; // inner stator radius +R3 = u* 150/2; // outer stator radius +//R1 = u* 90/2; // outer radius of moving band +R1 = R2-AG/3; // outer radius of moving band + + +// parameters for conductor and slot opening +h1 = u* 1; +h2 = u* 15.3; +d1 = u* 2.5; +Rsl = u* 6.36/2; + +RR = (h2-Rsl*(1+1/Sin(Pi/NbrSect)))/(1-1/Sin(Pi/NbrSect)); + +Y1 = Sqrt(R2*R2-d1*d1/4) ; +Y2 = Sqrt(RR*RR-d1*d1/4) ; +RX = Rsl*Cos(Pi/NbrSect) ; +RY = Rsl*Sin(Pi/NbrSect) ; +RX2 = RR*Cos(Pi/NbrSect) ; +RY2 = RR*Sin(Pi/NbrSect) ; + + +p = u* 1.5; + + + +// characteristic lengths +uc = u* 1.4; + +pslo = uc* 0.3; // slot opening +psl = uc* 0.6; // upper part slot +pslu = uc* 1; // lower part slot +pout = uc* 3; // outer radius +pMB = AG; // MB +//pMB = uc* 0.5; // MB +p = uc* 2; // + + +Point(0) = {0,0,0,p}; + +dP=newp-1; +Point(dP+1) = {d1/2,Y1,0,pslo}; +Point(dP+2) = {-d1/2,Y1,0,pslo}; +Point(dP+3) = {d1/2,Y1+h1,0,pslo}; +Point(dP+4) = {-d1/2,Y1+h1,0,pslo}; +Point(dP+5) = {0,Y1+h1+Y2,0,p}; +Point(dP+6) = {RX2,Y1+h1+Y2-RY2,0,psl}; +Point(dP+7) = {-RX2,Y1+h1+Y2-RY2,0,psl}; +Point(dP+8) = {0,Y1+h1+Y2-RR+h2-Rsl,0,p}; +Point(dP+9) = {RX,Y1+h1+Y2-RR+h2-Rsl-RY,0,pslu}; +Point(dP+10) = {-RX,Y1+h1+Y2-RR+h2-Rsl-RY,0,pslu}; +Point(dP+11) = {0,Y1+h1+Y2-RR+h2,0,pslu}; +Point(dP+12) = {0,Y1+h1+Y2-Rsl,0,p}; //not used +Point(dP+13) = {R3*Sin(Pi/NbrSect),R3*Cos(Pi/NbrSect),0,pout}; +Point(dP+14) = {-R3*Sin(Pi/NbrSect),R3*Cos(Pi/NbrSect),0,pout}; +Point(dP+15) = {R2*Sin(Pi/NbrSect),R2*Cos(Pi/NbrSect),0,pMB}; +Point(dP+16) = {-R2*Sin(Pi/NbrSect),R2*Cos(Pi/NbrSect),0,pMB}; +Point(dP+17) = {R1*Sin(Pi/NbrSect),R1*Cos(Pi/NbrSect),0,pMB}; +Point(dP+18) = {-R1*Sin(Pi/NbrSect),R1*Cos(Pi/NbrSect),0,pMB}; + + +/* +For t In {dP+1:dP+18} + Rotate {{0,0,1},{0,0,0}, 0*Pi/10} {Point{t};} +EndFor +*/ + + +i=1; +L[i] = newreg; i++; Line(newreg) = {dP+06,dP+09}; +L[i] = newreg; i++; Line(newreg) = {dP+07,dP+10}; +L[i] = newreg; i++; Line(newreg) = {dP+01,dP+03}; +L[i] = newreg; i++; Line(newreg) = {dP+02,dP+04}; + +L[i] = newreg; i++; Circle(newreg) = {dP+13,0,dP+14}; +L[i] = newreg; i++; Circle(newreg) = {dP+15,0,dP+01}; +L[i] = newreg; i++; Circle(newreg) = {dP+01,0,dP+02}; +L[i] = newreg; i++; Circle(newreg) = {dP+02,0,dP+16}; +L[i] = newreg; i++; Circle(newreg) = {dP+06,dP+05,dP+03}; +L[i] = newreg; i++; Circle(newreg) = {dP+03,dP+05,dP+04}; +L[i] = newreg; i++; Circle(newreg) = {dP+04,dP+05,dP+07}; +L[i] = newreg; i++; Circle(newreg) = {dP+10,dP+08,dP+11}; +L[i] = newreg; i++; Circle(newreg) = {dP+11,dP+08,dP+09}; +L[i] = newreg; i++; Circle(newreg) = {dP+17,0,dP+18}; + +NbrLine = 14; + +/* +L[i] = newreg; i++; Line(newreg) = {dP+13,dP+15}; +L[i] = newreg; i++; Line(newreg) = {dP+15,dP+17}; +L[i] = newreg; i++; Line(newreg) = {dP+14,dP+16}; +L[i] = newreg; i++; Line(newreg) = {dP+16,dP+18}; +*/ + + +/* +Line Loop(19) = {6,7,8,18,-14,-16}; +Plane Surface(20) = {19}; +Line Loop(21) = {6,3,10,-4,8,18,-14,-16}; +Plane Surface(22) = {21}; +Line Loop(23) = {3,-9,1,-13,-12,-2,-11,-4,8,-17,-5,15,6}; +Plane Surface(24) = {23}; +Line Loop(25) = {11,2,12,13,-1,9,10}; +Plane Surface(26) = {25}; +*/ + +NbrLines1 = 3; LineLoop1[] = {6,7,8}; // outer airgap +NbrLines2 = 7; LineLoop2[] = {11,2,12,13,-1,9,10}; // conductor +NbrLines3 = 4; LineLoop3[] = {3,10,-4,-7}; // slot opening +NbrLines4 = 1; LineLoop4[] = {14}; // outer moving band +NbrLines5 = 1; LineLoop5[] = {5}; // outer stator +NbrLines6 = 10; LineLoop6[] = {6,3,-9,1,-13,-12,-2,-11,-4,8}; // inner stator iron + + + + + + + + + diff --git a/benchmarks/3d/magnetron/box-old.geo b/benchmarks/3d/magnetron/box-old.geo new file mode 100644 index 0000000000..972cf2aad3 --- /dev/null +++ b/benchmarks/3d/magnetron/box-old.geo @@ -0,0 +1,81 @@ +/// Function Box: +// create a box - of width wBox, length lBox and height hBox +// - of lower corner xBox, yBox, zBox +// - rotated from thetaBox degrees from the x axis +// - characteristic length lcBox +//Function Box + + p1 = newp; Point(p1) = {xBox, yBox, zBox, lcBox} ; + p2 = newp; Point(p2) = {xBox+wBox, yBox, zBox, lcBox} ; + p3 = newp; Point(p3) = {xBox+wBox, yBox+lBox, zBox, lcBox} ; + p4 = newp; Point(p4) = {xBox, yBox+lBox, zBox, lcBox} ; + + p5 = newp; Point(p5) = {xBox, yBox, zBox+hBox, lcBox} ; + p6 = newp; Point(p6) = {xBox+wBox, yBox, zBox+hBox, lcBox} ; + p7 = newp; Point(p7) = {xBox+wBox, yBox+lBox, zBox+hBox, lcBox} ; + p8 = newp; Point(p8) = {xBox, yBox+lBox, zBox+hBox, lcBox} ; + + Boxes_Point1[iBox] = p1 ; + Boxes_Point2[iBox] = p2 ; + Boxes_Point3[iBox] = p3 ; + Boxes_Point4[iBox] = p4 ; + Boxes_Point5[iBox] = p5 ; + + c1 = newreg; Line(c1) = {p1,p2}; + c2 = newreg; Line(c2) = {p2,p3}; + c3 = newreg; Line(c3) = {p3,p4}; + c4 = newreg; Line(c4) = {p4,p1}; + + c5 = newreg; Line(c5) = {p5,p6}; + c6 = newreg; Line(c6) = {p6,p7}; + c7 = newreg; Line(c7) = {p7,p8}; + c8 = newreg; Line(c8) = {p8,p5}; + + c9 = newreg; Line(c9) = {p1,p5}; + c10 = newreg; Line(c10) = {p2,p6}; + c11 = newreg; Line(c11) = {p3,p7}; + c12 = newreg; Line(c12) = {p4,p8}; + + Boxes_Linep1p2[iBox] = c1 ; + Boxes_Linep2p1[iBox] = -c1 ; + Boxes_Linep2p3[iBox] = -c2 ; + Boxes_Linep3p4[iBox] = -c3 ; + Boxes_Linep4p1[iBox] = -c4 ; + Boxes_Linep5p6[iBox] = c5 ; + Boxes_Linep8p5[iBox] = -c8 ; + Boxes_Linep1p5[iBox] = c9 ; + Boxes_Linep2p6[iBox] = -c10 ; + Boxes_Linep4p8[iBox] = -c12 ; + + + l1 = newreg; Line Loop(l1) = {c1,c2,c3,c4}; Plane Surface(l1+1) = {l1}; + l2 = newreg; Line Loop(l2) = {c5,c6,c7,c8}; Plane Surface(l2+1) = {l2}; + + Rotate{{0,0,1},{xBox,yBox,zBox},thetaBox*Pi/180}{ Surface{l1+1}; } + Rotate{{0,0,1},{xBox,yBox,zBox},thetaBox*Pi/180}{ Surface{l2+1}; } + + l3 = newreg; Line Loop(l3) = {c9,-c8,-c12,c4}; Plane Surface(l3+1) = {l3}; + l4 = newreg; Line Loop(l4) = {c10,-c5,-c9,c1}; Plane Surface(l4+1) = {l4}; + l5 = newreg; Line Loop(l5) = {c6,-c11,-c2,c10}; Plane Surface(l5+1) = {l5}; + l6 = newreg; Line Loop(l6) = {c12,-c7,-c11,c3}; Plane Surface(l6+1) = {l6}; + + Boxes_LineLoop1[iBox] = l1 ; + Boxes_LineLoop2[iBox] = l2 ; + Boxes_LineLoop3[iBox] = l3 ; + Boxes_LineLoop4[iBox] = l4 ; + Boxes_LineLoop5[iBox] = l5 ; + Boxes_LineLoop6[iBox] = l6 ; + + Boxes_PlanSurf1[iBox] = l1+1; + Boxes_PlanSurf2[iBox] = l2+1; + Boxes_PlanSurf3[iBox] = l3+1; + Boxes_PlanSurf4[iBox] = l4+1; + Boxes_PlanSurf5[iBox] = l5+1; + Boxes_PlanSurf6[iBox] = l6+1; + + s = newreg; Surface Loop(s) = {l2+1,l4+1,l5+1,l6+1,l3+1,l1+1}; Volume(s+1) = s ; + + Boxes_SurfaceLoop[iBox] = s ; + Boxes_Volume[iBox] = s+1 ; + +//Return diff --git a/benchmarks/3d/magnetron/box.geo b/benchmarks/3d/magnetron/box.geo new file mode 100644 index 0000000000..0866b804c5 --- /dev/null +++ b/benchmarks/3d/magnetron/box.geo @@ -0,0 +1,78 @@ + p1 = newp; Point(p1) = {xBox+h1Box, yBox-lBox/2, zBox, lcBox} ; + p2 = newp; Point(p2) = {xBox+h1Box+wBox, yBox-lBox/2, zBox, lcBox} ; + p3 = newp; Point(p3) = {xBox+h1Box+wBox, yBox+lBox/2, zBox, lcBox} ; + p4 = newp; Point(p4) = {xBox+h1Box, yBox+lBox/2, zBox, lcBox} ; + + p5 = newp; Point(p5) = {xBox+h1Box, yBox-lBox/2, zBox+hBox, lcBox} ; + p6 = newp; Point(p6) = {xBox+h1Box+wBox, yBox-lBox/2, zBox+hBox, lcBox} ; + p7 = newp; Point(p7) = {xBox+h1Box+wBox, yBox+lBox/2, zBox+hBox, lcBox} ; + p8 = newp; Point(p8) = {xBox+h1Box, yBox+lBox/2, zBox+hBox, lcBox} ; + + Boxes_Point1[iBox] = p1 ; + Boxes_Point2[iBox] = p2 ; + Boxes_Point3[iBox] = p3 ; + Boxes_Point4[iBox] = p4 ; + Boxes_Point5[iBox] = p5 ; + Boxes_Point6[iBox] = p6 ; + Boxes_Point7[iBox] = p7 ; + Boxes_Point8[iBox] = p8 ; + + c1 = newreg; Line(c1) = {p1,p2}; + c2 = newreg; Line(c2) = {p2,p3}; + c3 = newreg; Line(c3) = {p3,p4}; + c4 = newreg; Line(c4) = {p4,p1}; + + c5 = newreg; Line(c5) = {p5,p6}; + c6 = newreg; Line(c6) = {p6,p7}; + c7 = newreg; Line(c7) = {p7,p8}; + c8 = newreg; Line(c8) = {p8,p5}; + + c9 = newreg; Line(c9) = {p1,p5}; + c10 = newreg; Line(c10) = {p2,p6}; + c11 = newreg; Line(c11) = {p3,p7}; + c12 = newreg; Line(c12) = {p4,p8}; + + Boxes_Linep1p2[iBox] = c1 ; + Boxes_Linep2p3[iBox] = c2 ; + Boxes_Linep3p4[iBox] = c3 ; + Boxes_Linep4p1[iBox] = c4 ; + Boxes_Linep5p6[iBox] = c5 ; + Boxes_Linep6p7[iBox] = c6 ; + Boxes_Linep7p8[iBox] = c7 ; + Boxes_Linep8p1[iBox] = c8 ; + Boxes_Linep1p5[iBox] = c9 ; + Boxes_Linep2p6[iBox] = c10 ; + Boxes_Linep3p7[iBox] = c11 ; + Boxes_Linep4p8[iBox] = c12 ; + + l1 = newreg; Line Loop(l1) = {c1,c2,c3,c4}; Plane Surface(l1+1) = {l1}; + l2 = newreg; Line Loop(l2) = {c5,c6,c7,c8}; Plane Surface(l2+1) = {l2}; + + Rotate{{0,0,1},{xBox,yBox,zBox},thetaBox*Pi/180}{ Surface{l1+1}; } + Rotate{{0,0,1},{xBox,yBox,zBox},thetaBox*Pi/180}{ Surface{l2+1}; } + + l3 = newreg; Line Loop(l3) = {c9,-c8,-c12,c4}; Plane Surface(l3+1) = {l3}; + l4 = newreg; Line Loop(l4) = {c10,-c5,-c9,c1}; Plane Surface(l4+1) = {l4}; + l5 = newreg; Line Loop(l5) = {c6,-c11,-c2,c10}; Plane Surface(l5+1) = {l5}; + l6 = newreg; Line Loop(l6) = {c12,-c7,-c11,c3}; Plane Surface(l6+1) = {l6}; + + Boxes_LineLoop1[iBox] = l1 ; + Boxes_LineLoop2[iBox] = l2 ; + Boxes_LineLoop3[iBox] = l3 ; + Boxes_LineLoop4[iBox] = l4 ; + Boxes_LineLoop5[iBox] = l5 ; + Boxes_LineLoop6[iBox] = l6 ; + + Boxes_PlanSurf1[iBox] = l1+1; + Boxes_PlanSurf2[iBox] = l2+1; + Boxes_PlanSurf3[iBox] = l3+1; + Boxes_PlanSurf4[iBox] = l4+1; + Boxes_PlanSurf5[iBox] = l5+1; + Boxes_PlanSurf6[iBox] = l6+1; + + s = newreg; Surface Loop(s) = {l2+1,l4+1,l5+1,l6+1,l3+1,l1+1}; Volume(s+1) = s ; + + Boxes_SurfaceLoop[iBox] = s ; + Boxes_Volume[iBox] = s+1 ; + + diff --git a/benchmarks/3d/magnetron/cylindric.geo b/benchmarks/3d/magnetron/cylindric.geo new file mode 100644 index 0000000000000000000000000000000000000000..8a178f2d75b3a371d84855a5f41cf41dd08e0cc4 GIT binary patch literal 2285 zcma);Piq@75XE~o_&dzejb&`D*Z*pIX`u9wLr9^QQpzGL_JXn&yKCCC<hyr9qm{L? zDK<DE*3(Z<Z{C_rr&IWRs#IGZE4Y6(WwonI^#O(hTu`+xS`7s#UeGXs<1_5a;zhT* zh8=EzqT0bhm-|Bt2mIS@go~HksB}f!exppltNZ!qe_Pa{s0)Q#%BC$97+vk#0~qD^ z1mCLjJsb=N09L|BsPr$pg~wxAwIeIv<0pUVTyIR!Z*oAt1&|B;$dTV*>mXSQ$pU0d z7oTP~K;|iA9w2lwzBq_LyyhfNA$fpIZg#RrA&UTEBi>0MUN~{7EK|(#5`(;cv|}np zn(rzltpX{eaT{r!lGcILyIR1~)vkKlq@+zCg<Nj)Bxfl~&H}4*MJWaDbyF0&@_nxL zehUv}rALYjZ8Kq4Z?3M&*EP~`U+rAjwb%GIMjEc8&4t}~jW1iI;kMa@uyRHsXUW&e z$?nTq88pR>B2!Y>x##)9^n~0Qa)!d(3w<AYLaqeaL*c>;{kVHVp1AWUY!+PldG@3{ zQo9m%c}}JqS5N6DX4g*I1tjBXbXS*tAR8y;oM>?IRD#wIM$Vkr4UjT5F_^{-567b& z8AdB9)J9BHhHp#)o=!&Z;OnV=E|f;mm}N$CN+v!zg7Mi%QF#1B&GEf_+a|EAgSjNp zSy~+LjN5|{B_)D#eB*5r*t~=JMwql=9>z682&RT00%C6ySl+>WYfRk3=$c$bwGe74 z)JhNu9!-InhQt;f%J<5|O^r}oR?MCfql==yOWLxdVVeAi;IplppP!0G(-^;(`1cR| zPC&=*fjuviqiA_7qxCPvsqL@hLD4$JL+kPkz$U~ebc*b(!0}#F%+Cs(*)>IeR^T8= z!B=hgyUsm4K3^Vc<G%6?9w-d%5C%gR2CpCt9wDf;80EL4Ilbsn!x1*bo!-$C!5MjC eFGVNn1iU|ZLk?`;4F`8q`d{Qpx2L*dr~d$CRf2^8 literal 0 HcmV?d00001 diff --git a/benchmarks/3d/magnetron/forme1-old.geo b/benchmarks/3d/magnetron/forme1-old.geo new file mode 100644 index 0000000000..383e118935 --- /dev/null +++ b/benchmarks/3d/magnetron/forme1-old.geo @@ -0,0 +1,138 @@ +// Function Forme1: cree un demi T - de pt d'ancrage xFor,yFor zFor +// - de longueur LFor +// - de largeurs l1For, l2For +// - de hauteurs h1For, h2For, de lc lcFor +// + l1Fom=Sqrt[R1Fom^2-h1Fom^2]; + l2Fom=Sqrt[R2Fom^2-h1Fom^2]; + p1 = newp; Point(p1) = {xFom , yFom , zFom , lcFom} ; + p2 = newp; Point(p2) = {xFom-l2Fom+(L1Fom/Tan[angle]) , yFom, zFom-Sqrt[R1Fom^2-(l2Fom-(L1Fom/Tan[angle]))^2] , lcFom} ; + p3 = newp; Point(p3) = {xFom-l2Fom+(L1Fom/Tan[angle]), yFom , zFom-Sqrt[R2Fom^2-(l2Fom-(L1Fom/Tan[angle]))^2] , lcFom} ; + p4 = newp; Point(p4) = {xFom+l2Fom , yFom , zFom-h1Fom , lcFom} ; + p5 = newp; Point(p5) = {xFom+l1Fom , yFom , zFom-h1Fom , lcFom} ; + + p6 = newp; Point(p6) = {xFom , yFom+LFom , zFom , lcFom} ; + p7 = newp; Point(p7) = {xFom-l2Fom+(L1Fom/Tan[angle]) , yFom+LFom, zFom-Sqrt[R1Fom^2-(l2Fom-(L1Fom/Tan[angle]))^2] , lcFom} ; + p8 = newp; Point(p8) = {xFom-l2Fom+(L1Fom/Tan[angle]), yFom+LFom , zFom-Sqrt[R2Fom^2-(l2Fom-(L1Fom/Tan[angle]))^2] , lcFom} ; + p9 = newp; Point(p9) = {xFom+l2Fom , yFom+LFom , zFom-h1Fom , lcFom} ; + p10 = newp; Point(p10)= {xFom+l1Fom , yFom+LFom , zFom-h1Fom , lcFom} ; + p11 = newp; Point(p11)= {xFom-l1Fom , yFom+(L1Fom-(l2Fom-l1Fom)*Tan[angle]) , zFom-h1Fom , lcFom} ; + p12 = newp; Point(p12)= {xFom-l2Fom , yFom+L1Fom , zFom-h1Fom , lcFom} ; + p13 = newp; Point(p13)= {xFom-l2Fom , yFom+LFom-L1Fom , zFom-h1Fom , lcFom} ; + p14 = newp; Point(p14)= {xFom-l1Fom , yFom+(2*L1Fom+(l2Fom-l1Fom)*Tan[angle]) , zFom-h1Fom , lcFom} ; + prot = newp; Point(prot)= {xFom-(l2Fom+(L1Fom/(2*Tan[angle]))) , yFom+(3*L1Fom/2) , zFom-h1Fom , lcFom} ; + + Fomes_Point1[iFom] = p1 ; + Fomes_Point2[iFom] = p2 ; + Fomes_Point3[iFom] = p3 ; + Fomes_Point4[iFom] = p4 ; + Fomes_Point5[iFom] = p5 ; + Fomes_Point6[iFom] = p6 ; + Fomes_Point7[iFom] = p7 ; + Fomes_Point8[iFom] = p8 ; + Fomes_Point9[iFom] = p9 ; + Fomes_Point10[iFom] = p10 ; + Fomes_Point11[iFom] = p11 ; + Fomes_Point12[iFom] = p12 ; + Fomes_Point13[iFom] = p13 ; + Fomes_Point14[iFom] = p14 ; + + Rotate{{0,0,1},{xFom-(l2Fom+(L1Fom/(2*Tan[angle]))) , yFom+(3*L1Fom/2) , zFom-h1Fom},theta*Pi/180}{ Point{p1}; } + Rotate{{0,0,1},{xFom-(l2Fom+(L1Fom/(2*Tan[angle]))) , yFom+(3*L1Fom/2) , zFom-h1Fom},theta*Pi/180}{ Point{p2}; } + Rotate{{0,0,1},{xFom-(l2Fom+(L1Fom/(2*Tan[angle]))) , yFom+(3*L1Fom/2) , zFom-h1Fom},theta*Pi/180}{ Point{p3}; } + Rotate{{0,0,1},{xFom-(l2Fom+(L1Fom/(2*Tan[angle]))) , yFom+(3*L1Fom/2) , zFom-h1Fom},theta*Pi/180}{ Point{p4}; } + Rotate{{0,0,1},{xFom-(l2Fom+(L1Fom/(2*Tan[angle]))) , yFom+(3*L1Fom/2) , zFom-h1Fom},theta*Pi/180}{ Point{p5}; } + Rotate{{0,0,1},{xFom-(l2Fom+(L1Fom/(2*Tan[angle]))) , yFom+(3*L1Fom/2) , zFom-h1Fom},theta*Pi/180}{ Point{p6}; } + Rotate{{0,0,1},{xFom-(l2Fom+(L1Fom/(2*Tan[angle]))) , yFom+(3*L1Fom/2) , zFom-h1Fom},theta*Pi/180}{ Point{p7}; } + Rotate{{0,0,1},{xFom-(l2Fom+(L1Fom/(2*Tan[angle]))) , yFom+(3*L1Fom/2) , zFom-h1Fom},theta*Pi/180}{ Point{p8}; } + Rotate{{0,0,1},{xFom-(l2Fom+(L1Fom/(2*Tan[angle]))) , yFom+(3*L1Fom/2) , zFom-h1Fom},theta*Pi/180}{ Point{p9}; } + Rotate{{0,0,1},{xFom-(l2Fom+(L1Fom/(2*Tan[angle]))) , yFom+(3*L1Fom/2) , zFom-h1Fom},theta*Pi/180}{ Point{p10};} + Rotate{{0,0,1},{xFom-(l2Fom+(L1Fom/(2*Tan[angle]))) , yFom+(3*L1Fom/2) , zFom-h1Fom},theta*Pi/180}{ Point{p11}; } + Rotate{{0,0,1},{xFom-(l2Fom+(L1Fom/(2*Tan[angle]))) , yFom+(3*L1Fom/2) , zFom-h1Fom},theta*Pi/180}{ Point{p12}; } + Rotate{{0,0,1},{xFom-(l2Fom+(L1Fom/(2*Tan[angle]))) , yFom+(3*L1Fom/2) , zFom-h1Fom},theta*Pi/180}{ Point{p13}; } + Rotate{{0,0,1},{xFom-(l2Fom+(L1Fom/(2*Tan[angle]))) , yFom+(3*L1Fom/2) , zFom-h1Fom},theta*Pi/180}{ Point{p14}; } + + c1 = newreg; Line(c1) = {p2,p3}; + c2 = newreg; Circle(c2) = {p3,p1,p4}; + c3 = newreg; Line(c3) = {p4,p5}; + c4 = newreg; Circle(c4) = {p5,p1,p2}; + c5 = newreg; Line(c5) = {p7,p8}; + c6 = newreg; Circle(c6) = {p8,p6,p9}; + c7 = newreg; Line(c7) = {p9,p10}; + c8 = newreg; Circle(c8) = {p10,p6,p7}; + c9 = newreg; Line(c9) = {p2,p7}; + c10 = newreg; Line(c10) = {p3,p8}; + c11 = newreg; Line(c11) = {p4,p9}; + c12 = newreg; Line(c12) = {p5,p10}; + + c13 = newreg; Line(c13) = {p11,p12}; + c14 = newreg; Line(c14) = {p12,p13}; + c15 = newreg; Line(c15) = {p13,p14}; + c16 = newreg; Line(c16) = {p14,p11}; + c17 = newreg; Line(c17) = {p2,p11}; + c18 = newreg; Line(c18) = {p7,p14}; + c19 = newreg; Line(c19) = {p3,p12}; + c20 = newreg; Line(c20) = {p8,p13}; + + + Fomes_Linep2p3[iFom] = c1 ; + Fomes_Linep3p4[iFom] = c2 ; + Fomes_Linep4p5[iFom] = c3 ; + Fomes_Linep5p2[iFom] = c4 ; + Fomes_Linep7p8[iFom] = c5 ; + Fomes_Linep8p9[iFom] = c6 ; + Fomes_Linep9p10[iFom] = c7 ; + Fomes_Linep10p7[iFom] = c8 ; + Fomes_Linep2p7[iFom] = c9 ; + Fomes_Linep3p8[iFom] = c10 ; + Fomes_Linep4p9[iFom] = c11 ; + Fomes_Linep5p10[iFom] = c12 ; + Fomes_Linep11p12[iFom] = c13 ; + Fomes_Linep12p13[iFom] = c14 ; + Fomes_Linep13p14[iFom] = c15 ; + Fomes_Linep14p11[iFom] = c16 ; + Fomes_Linep2p11[iFom] = c17 ; + Fomes_Linep7p14[iFom] = c18 ; + Fomes_Linep3p12[iFom] = c19 ; + Fomes_Linep8p13[iFom] = c20 ; + + l1 = newreg; Line Loop(l1) = {c2,c11,-c6,-c10};Ruled Surface(l1+1) = {l1}; + l2 = newreg; Line Loop(l2) = {c3,c12,-c7,-c11};Plane Surface(l2+1) = {l2}; + l3 = newreg; Line Loop(l3) = {c1,c10,-c5,-c9};Plane Surface(l3+1) = {l3}; + l4 = newreg; Line Loop(l4) = {c4,c9,-c8,-c12};Ruled Surface(l4+1) = {l4}; + l5 = newreg; Line Loop(l5) = {c13,c14,c15,c16};Plane Surface(l5+1) = {l5}; + l6 = newreg; Line Loop(l6) = {c16,-c17,c9,c18};Plane Surface(l6+1) = {l6}; + l7 = newreg; Line Loop(l7) = {c14,-c20,-c10,c19}; Plane Surface(l7+1) = {l7}; + l8 = newreg; Line Loop(l8) = {c5,c6,c7,c8}; Plane Surface(l8+1) = {l8}; + l9 = newreg; Line Loop(l9) = {c13,-c19,-c1,c17};Plane Surface(l9+1) = {l9}; + l10 = newreg; Line Loop(l10) = {c1,c2,c3,c4};Plane Surface(l10+1) = {l10}; + l11 = newreg; Line Loop(l11) = {c15,-c18,c5,c20};Plane Surface(l11+1) = {l11}; + + + Fomes_LineLoop1[iFom]=l1;Fomes_Surf1[iFom] = l1+1; + Fomes_LineLoop2[iFom]=l2;Fomes_Surf2[iFom] = l2+1; + Fomes_LineLoop3[iFom]=l3;Fomes_Surf3[iFom] = l3+1; + Fomes_LineLoop4[iFom]=l4;Fomes_Surf4[iFom] = l4+1; + Fomes_LineLoop5[iFom]=l5;Fomes_Surf5[iFom] = l5+1; + Fomes_LineLoop6[iFom]=l6;Fomes_Surf6[iFom] = l6+1; + Fomes_LineLoop7[iFom]=l7;Fomes_Surf7[iFom] = l7+1; + Fomes_LineLoop8[iFom]=l8;Fomes_Surf8[iFom] = l8+1; + Fomes_LineLoop9[iFom]=l9;Fomes_Surf9[iFom] = l9+1; + Fomes_LineLoop10[iFom]=l10;Fomes_Surf10[iFom] = l10+1; + Fomes_LineLoop10[iFom]=l10;Fomes_Surf11[iFom] = l11+1; + + + s = newreg; Surface Loop(s) = {l1+1,l2+1,l4+1,l5+1,l6+1,l7+1,l8+1,l9+1,l10+1,l11+1}; Volume(s+1) = s ; + + + Fomes_SurfaceLoop[iFom] = s ; + Fomes_Volume[iFom] = s+1 ; + + + + + + + + + diff --git a/benchmarks/3d/magnetron/forme1.geo b/benchmarks/3d/magnetron/forme1.geo new file mode 100644 index 0000000000..b002545fbe --- /dev/null +++ b/benchmarks/3d/magnetron/forme1.geo @@ -0,0 +1,139 @@ +// Function Forme1: cree un demi T - de pt d'ancrage xFor,yFor zFor +// - de longueur LFor +// - de largeurs l1For, l2For +// - de hauteurs h1For, h2For, de lc lcFor +// + l1Fom=Sqrt[R1Fom^2-h1Fom^2]; + l2Fom=Sqrt[R2Fom^2-h1Fom^2]; + chouilla=0.0005; + p1 = newp; Point(p1) = {xFom , yFom , zFom , lcFom} ; + p2 = newp; Point(p2) = {xFom-l2Fom+(L1Fom/Tan[angle]) , yFom, zFom-Sqrt[R1Fom^2-(l2Fom-(L1Fom/Tan[angle]))^2] , lcFom} ; + p3 = newp; Point(p3) = {xFom-l2Fom+(L1Fom/Tan[angle]), yFom , zFom-Sqrt[R2Fom^2-(l2Fom-(L1Fom/Tan[angle]))^2] , lcFom} ; + p4 = newp; Point(p4) = {xFom+l2Fom , yFom , zFom-h1Fom , lcFom} ; + p5 = newp; Point(p5) = {xFom+l1Fom , yFom , zFom-h1Fom , lcFom} ; + + p6 = newp; Point(p6) = {xFom , yFom+LFom , zFom , lcFom} ; + p7 = newp; Point(p7) = {xFom-l2Fom+(L1Fom/Tan[angle]) , yFom+LFom, zFom-Sqrt[R1Fom^2-(l2Fom-(L1Fom/Tan[angle]))^2] , lcFom} ; + p8 = newp; Point(p8) = {xFom-l2Fom+(L1Fom/Tan[angle]), yFom+LFom , zFom-Sqrt[R2Fom^2-(l2Fom-(L1Fom/Tan[angle]))^2] , lcFom} ; + p9 = newp; Point(p9) = {xFom+l2Fom , yFom+LFom , zFom-h1Fom , lcFom} ; + p10 = newp; Point(p10)= {xFom+l1Fom , yFom+LFom , zFom-h1Fom , lcFom} ; + p11 = newp; Point(p11)= {xFom-l1Fom , yFom+(L1Fom-(l2Fom-l1Fom)*Tan[angle]) , zFom-h1Fom , lcFom} ; + p12 = newp; Point(p12)= {xFom-l2Fom , yFom+L1Fom , zFom-h1Fom , lcFom} ; + p13 = newp; Point(p13)= {xFom-l2Fom , yFom+LFom-L1Fom , zFom-h1Fom , lcFom} ; + p14 = newp; Point(p14)= {xFom-l1Fom , yFom+(2*L1Fom+(l2Fom-l1Fom)*Tan[angle]) , zFom-h1Fom , lcFom} ; + prot = newp; Point(prot)= {xFom-chouilla-(l2Fom+(L1Fom/(2*Tan[angle]))) , yFom+(3*L1Fom/2) , zFom-h1Fom , lcFom} ; + + Fomes_Point1[iFom] = p1 ; + Fomes_Point2[iFom] = p2 ; + Fomes_Point3[iFom] = p3 ; + Fomes_Point4[iFom] = p4 ; + Fomes_Point5[iFom] = p5 ; + Fomes_Point6[iFom] = p6 ; + Fomes_Point7[iFom] = p7 ; + Fomes_Point8[iFom] = p8 ; + Fomes_Point9[iFom] = p9 ; + Fomes_Point10[iFom] = p10 ; + Fomes_Point11[iFom] = p11 ; + Fomes_Point12[iFom] = p12 ; + Fomes_Point13[iFom] = p13 ; + Fomes_Point14[iFom] = p14 ; + + Rotate{{0,0,1},{xFom-chouilla-(l2Fom+(L1Fom/(2*Tan[angle]))) , yFom+(3*L1Fom/2) , zFom-h1Fom},theta*Pi/180}{ Point{p1}; } + Rotate{{0,0,1},{xFom-chouilla-(l2Fom+(L1Fom/(2*Tan[angle]))) , yFom+(3*L1Fom/2) , zFom-h1Fom},theta*Pi/180}{ Point{p2}; } + Rotate{{0,0,1},{xFom-chouilla-(l2Fom+(L1Fom/(2*Tan[angle]))) , yFom+(3*L1Fom/2) , zFom-h1Fom},theta*Pi/180}{ Point{p3}; } + Rotate{{0,0,1},{xFom-chouilla-(l2Fom+(L1Fom/(2*Tan[angle]))) , yFom+(3*L1Fom/2) , zFom-h1Fom},theta*Pi/180}{ Point{p4}; } + Rotate{{0,0,1},{xFom-chouilla-(l2Fom+(L1Fom/(2*Tan[angle]))) , yFom+(3*L1Fom/2) , zFom-h1Fom},theta*Pi/180}{ Point{p5}; } + Rotate{{0,0,1},{xFom-chouilla-(l2Fom+(L1Fom/(2*Tan[angle]))) , yFom+(3*L1Fom/2) , zFom-h1Fom},theta*Pi/180}{ Point{p6}; } + Rotate{{0,0,1},{xFom-chouilla-(l2Fom+(L1Fom/(2*Tan[angle]))) , yFom+(3*L1Fom/2) , zFom-h1Fom},theta*Pi/180}{ Point{p7}; } + Rotate{{0,0,1},{xFom-chouilla-(l2Fom+(L1Fom/(2*Tan[angle]))) , yFom+(3*L1Fom/2) , zFom-h1Fom},theta*Pi/180}{ Point{p8}; } + Rotate{{0,0,1},{xFom-chouilla-(l2Fom+(L1Fom/(2*Tan[angle]))) , yFom+(3*L1Fom/2) , zFom-h1Fom},theta*Pi/180}{ Point{p9}; } + Rotate{{0,0,1},{xFom-chouilla-(l2Fom+(L1Fom/(2*Tan[angle]))) , yFom+(3*L1Fom/2) , zFom-h1Fom},theta*Pi/180}{ Point{p10};} + Rotate{{0,0,1},{xFom-chouilla-(l2Fom+(L1Fom/(2*Tan[angle]))) , yFom+(3*L1Fom/2) , zFom-h1Fom},theta*Pi/180}{ Point{p11}; } + Rotate{{0,0,1},{xFom-chouilla-(l2Fom+(L1Fom/(2*Tan[angle]))) , yFom+(3*L1Fom/2) , zFom-h1Fom},theta*Pi/180}{ Point{p12}; } + Rotate{{0,0,1},{xFom-chouilla-(l2Fom+(L1Fom/(2*Tan[angle]))) , yFom+(3*L1Fom/2) , zFom-h1Fom},theta*Pi/180}{ Point{p13}; } + Rotate{{0,0,1},{xFom-chouilla-(l2Fom+(L1Fom/(2*Tan[angle]))) , yFom+(3*L1Fom/2) , zFom-h1Fom},theta*Pi/180}{ Point{p14}; } + + c1 = newreg; Line(c1) = {p2,p3}; + c2 = newreg; Circle(c2) = {p3,p1,p4}; + c3 = newreg; Line(c3) = {p4,p5}; + c4 = newreg; Circle(c4) = {p5,p1,p2}; + c5 = newreg; Line(c5) = {p7,p8}; + c6 = newreg; Circle(c6) = {p8,p6,p9}; + c7 = newreg; Line(c7) = {p9,p10}; + c8 = newreg; Circle(c8) = {p10,p6,p7}; + c9 = newreg; Line(c9) = {p2,p7}; + c10 = newreg; Line(c10) = {p3,p8}; + c11 = newreg; Line(c11) = {p4,p9}; + c12 = newreg; Line(c12) = {p5,p10}; + + c13 = newreg; Line(c13) = {p11,p12}; + c14 = newreg; Line(c14) = {p12,p13}; + c15 = newreg; Line(c15) = {p13,p14}; + c16 = newreg; Line(c16) = {p14,p11}; + c17 = newreg; Line(c17) = {p2,p11}; + c18 = newreg; Line(c18) = {p7,p14}; + c19 = newreg; Line(c19) = {p3,p12}; + c20 = newreg; Line(c20) = {p8,p13}; + + + Fomes_Linep2p3[iFom] = c1 ; + Fomes_Linep3p4[iFom] = c2 ; + Fomes_Linep4p5[iFom] = c3 ; + Fomes_Linep5p2[iFom] = c4 ; + Fomes_Linep7p8[iFom] = c5 ; + Fomes_Linep8p9[iFom] = c6 ; + Fomes_Linep9p10[iFom] = c7 ; + Fomes_Linep10p7[iFom] = c8 ; + Fomes_Linep2p7[iFom] = c9 ; + Fomes_Linep3p8[iFom] = c10 ; + Fomes_Linep4p9[iFom] = c11 ; + Fomes_Linep5p10[iFom] = c12 ; + Fomes_Linep11p12[iFom] = c13 ; + Fomes_Linep12p13[iFom] = c14 ; + Fomes_Linep13p14[iFom] = c15 ; + Fomes_Linep14p11[iFom] = c16 ; + Fomes_Linep2p11[iFom] = c17 ; + Fomes_Linep7p14[iFom] = c18 ; + Fomes_Linep3p12[iFom] = c19 ; + Fomes_Linep8p13[iFom] = c20 ; + + l1 = newreg; Line Loop(l1) = {c2,c11,-c6,-c10};Ruled Surface(l1+1) = {l1}; + l2 = newreg; Line Loop(l2) = {c3,c12,-c7,-c11};Plane Surface(l2+1) = {l2}; + l3 = newreg; Line Loop(l3) = {c1,c10,-c5,-c9};Plane Surface(l3+1) = {l3}; + l4 = newreg; Line Loop(l4) = {c4,c9,-c8,-c12};Ruled Surface(l4+1) = {l4}; + l5 = newreg; Line Loop(l5) = {c13,c14,c15,c16};Plane Surface(l5+1) = {l5}; + l6 = newreg; Line Loop(l6) = {c16,-c17,c9,c18};Plane Surface(l6+1) = {l6}; + l7 = newreg; Line Loop(l7) = {c14,-c20,-c10,c19}; Plane Surface(l7+1) = {l7}; + l8 = newreg; Line Loop(l8) = {c5,c6,c7,c8}; Plane Surface(l8+1) = {l8}; + l9 = newreg; Line Loop(l9) = {c13,-c19,-c1,c17};Plane Surface(l9+1) = {l9}; + l10 = newreg; Line Loop(l10) = {c1,c2,c3,c4};Plane Surface(l10+1) = {l10}; + l11 = newreg; Line Loop(l11) = {c15,-c18,c5,c20};Plane Surface(l11+1) = {l11}; + + + Fomes_LineLoop1[iFom]=l1;Fomes_Surf1[iFom] = l1+1; + Fomes_LineLoop2[iFom]=l2;Fomes_Surf2[iFom] = l2+1; + Fomes_LineLoop3[iFom]=l3;Fomes_Surf3[iFom] = l3+1; + Fomes_LineLoop4[iFom]=l4;Fomes_Surf4[iFom] = l4+1; + Fomes_LineLoop5[iFom]=l5;Fomes_Surf5[iFom] = l5+1; + Fomes_LineLoop6[iFom]=l6;Fomes_Surf6[iFom] = l6+1; + Fomes_LineLoop7[iFom]=l7;Fomes_Surf7[iFom] = l7+1; + Fomes_LineLoop8[iFom]=l8;Fomes_Surf8[iFom] = l8+1; + Fomes_LineLoop9[iFom]=l9;Fomes_Surf9[iFom] = l9+1; + Fomes_LineLoop10[iFom]=l10;Fomes_Surf10[iFom] = l10+1; + Fomes_LineLoop10[iFom]=l10;Fomes_Surf11[iFom] = l11+1; + + + s = newreg; Surface Loop(s) = {l1+1,l2+1,l4+1,l5+1,l6+1,l7+1,l8+1,l9+1,l10+1,l11+1}; Volume(s+1) = s ; + + + Fomes_SurfaceLoop[iFom] = s ; + Fomes_Volume[iFom] = s+1 ; + + + + + + + + + diff --git a/benchmarks/3d/magnetron/forme2.geo b/benchmarks/3d/magnetron/forme2.geo new file mode 100644 index 0000000000..80be8af3ff --- /dev/null +++ b/benchmarks/3d/magnetron/forme2.geo @@ -0,0 +1,117 @@ +// Function Forme1: cree un demi T - de pt d'ancrage xFor,yFor zFor +// - de longueur LFor +// - de largeurs l1For, l2For +// - de hauteurs h1For, h2For, de lc lcFor +// + l1Fom=Sqrt[R1Fom^2-h1Fom^2]; + l2Fom=Sqrt[R2Fom^2-h1Fom^2]; + p1 = newp; Point(p1) = {xFom , yFom , zFom , lcFom} ; + p2 = newp; Point(p2) = {xFom-l2Fom+(L1Fom/Tan[angle]) , yFom, zFom-Sqrt[R1Fom^2-(-l2Fom+(L1Fom/Tan[angle]))^2] , lcFom} ; + p3 = newp; Point(p3) = {xFom-l2Fom+(L1Fom/Tan[angle]), yFom , zFom-Sqrt[R2Fom^2-(-l2Fom+(L1Fom/Tan[angle]))^2] , lcFom} ; + p4 = newp; Point(p4) = {xFom+l2Fom , yFom , zFom-h1Fom , lcFom} ; + p5 = newp; Point(p5) = {xFom+l1Fom , yFom , zFom-h1Fom , lcFom} ; + + p6 = newp; Point(p6) = {xFom , yFom+LFom , zFom , lcFom} ; + p7 = newp; Point(p7) = {xFom-l2Fom+(L1Fom/Tan[angle]) , yFom+LFom, zFom-Sqrt[R1Fom^2-(-l2Fom+(L1Fom/Tan[angle]))^2] , lcFom} ; + p8 = newp; Point(p8) = {xFom-l2Fom+(L1Fom/Tan[angle]), yFom+LFom , zFom-Sqrt[R2Fom^2-(-l2Fom+(L1Fom/Tan[angle]))^2] , lcFom} ; + p9 = newp; Point(p9) = {xFom+l2Fom , yFom+LFom , zFom-h1Fom , lcFom} ; + p10 = newp; Point(p10)= {xFom+l1Fom , yFom+LFom , zFom-h1Fom , lcFom} ; + p11 = newp; Point(p11)= {xFom-l1Fom , yFom , zFom-h1Fom , lcFom} ; + p12 = newp; Point(p12)= {xFom-l2Fom , yFom , zFom-h1Fom , lcFom} ; + p13 = newp; Point(p13)= {xFom-l2Fom , yFom+LFom-L1Fom , zFom-h1Fom , lcFom} ; + p14 = newp; Point(p14)= {xFom-l1Fom , yFom+(LFom-L1Fom+(l2Fom-l1Fom)*Tan[angle]) , zFom-h1Fom , lcFom} ; + + + Fomes_Point1[iFom] = p1 ; + Fomes_Point2[iFom] = p2 ; + Fomes_Point3[iFom] = p3 ; + Fomes_Point4[iFom] = p4 ; + Fomes_Point5[iFom] = p5 ; + Fomes_Point6[iFom] = p6 ; + Fomes_Point7[iFom] = p7 ; + Fomes_Point8[iFom] = p8 ; + Fomes_Point9[iFom] = p9 ; + Fomes_Point10[iFom] = p10 ; + Fomes_Point11[iFom] = p11 ; + Fomes_Point12[iFom] = p12 ; + Fomes_Point13[iFom] = p13 ; + Fomes_Point14[iFom] = p14 ; + + c1 = newreg; Line(c1) = {p2,p3}; + c2 = newreg; Circle(c2) = {p3,p1,p4}; + c3 = newreg; Line(c3) = {p4,p5}; + c4 = newreg; Circle(c4) = {p5,p1,p2}; + c5 = newreg; Line(c5) = {p7,p8}; + c6 = newreg; Circle(c6) = {p8,p6,p9}; + c7 = newreg; Line(c7) = {p9,p10}; + c8 = newreg; Circle(c8) = {p10,p6,p7}; + c9 = newreg; Line(c9) = {p2,p7}; + c10 = newreg; Line(c10) = {p3,p8}; + c11 = newreg; Line(c11) = {p4,p9}; + c12 = newreg; Line(c12) = {p5,p10}; + + c13 = newreg; Line(c13) = {p11,p12}; + c14 = newreg; Line(c14) = {p12,p13}; + c15 = newreg; Line(c15) = {p13,p14}; + c16 = newreg; Line(c16) = {p14,p11}; + c17 = newreg; Line(c17) = {p2,p11}; + c18 = newreg; Line(c18) = {p7,p14}; + c19 = newreg; Line(c19) = {p3,p12}; + c20 = newreg; Line(c20) = {p8,p13}; + + + Fomes_Linep2p3[iFom] = c1 ; + Fomes_Linep3p4[iFom] = c2 ; + Fomes_Linep4p5[iFom] = c3 ; + Fomes_Linep5p2[iFom] = c4 ; + Fomes_Linep7p8[iFom] = c5 ; + Fomes_Linep8p9[iFom] = c6 ; + Fomes_Linep9p10[iFom] = c7 ; + Fomes_Linep10p7[iFom] = c8 ; + Fomes_Linep2p7[iFom] = c9 ; + Fomes_Linep3p8[iFom] = c10 ; + Fomes_Linep4p9[iFom] = c11 ; + Fomes_Linep5p10[iFom] = c12 ; + Fomes_Linep11p12[iFom] = c13 ; + Fomes_Linep12p13[iFom] = c14 ; + Fomes_Linep13p14[iFom] = c15 ; + Fomes_Linep14p11[iFom] = c16 ; + Fomes_Linep2p11[iFom] = c17 ; + Fomes_Linep7p14[iFom] = c18 ; + Fomes_Linep3p12[iFom] = c19 ; + Fomes_Linep8p13[iFom] = c20 ; + + l1 = newreg; Line Loop(l1) = {c2,c11,-c6,-c10};Ruled Surface(l1+1) = {l1}; + l2 = newreg; Line Loop(l2) = {c3,c12,-c7,-c11};Plane Surface(l2+1) = {l2}; + l3 = newreg; Line Loop(l3) = {c1,c10,-c5,-c9};Plane Surface(l3+1) = {l3}; + l4 = newreg; Line Loop(l4) = {c4,c9,-c8,-c12};Ruled Surface(l4+1) = {l4}; + l5 = newreg; Line Loop(l5) = {c13,c14,c15,c16};Plane Surface(l5+1) = {l5}; + l6 = newreg; Line Loop(l6) = {c16,-c17,c9,c18};Plane Surface(l6+1) = {l6}; + l7 = newreg; Line Loop(l7) = {c14,-c20,-c10,c19}; Plane Surface(l7+1) = {l7}; + l8 = newreg; Line Loop(l8) = {c5,c6,c7,c8}; Plane Surface(l8+1) = {l8}; + l9 = newreg; Line Loop(l9) = {c13,-c19,-c1,c17};Plane Surface(l9+1) = {l9}; + l10 = newreg; Line Loop(l10) = {c1,c2,c3,c4};Plane Surface(l10+1) = {l10}; + l11 = newreg; Line Loop(l11) = {c15,-c18,c5,c20};Plane Surface(l11+1) = {l11}; + + + Fomes_LineLoop1[iFom]=l1;Fomes_Surf1[iFom] = l1+1; + Fomes_LineLoop2[iFom]=l2;Fomes_Surf2[iFom] = l2+1; + //Fomes_LineLoop3[iFom]=l3;Fomes_Surf3[iFom] = l3+1; + Fomes_LineLoop4[iFom]=l4;Fomes_Surf4[iFom] = l4+1; + Fomes_LineLoop5[iFom]=l5;Fomes_Surf5[iFom] = l5+1; + Fomes_LineLoop6[iFom]=l6;Fomes_Surf6[iFom] = l6+1; + Fomes_LineLoop7[iFom]=l7;Fomes_Surf7[iFom] = l7+1; + Fomes_LineLoop8[iFom]=l8;Fomes_Surf8[iFom] = l8+1; + Fomes_LineLoop9[iFom]=l9;Fomes_Surf9[iFom] = l9+1; + Fomes_LineLoop10[iFom]=l10;Fomes_Surf10[iFom] = l10+1; + Fomes_LineLoop11[iFom]=l11;Fomes_Surf11[iFom] = l11+1; + + + + s = newreg; Surface Loop(s) = {l1+1,l2+1,l4+1,l5+1,l6+1,l7+1,l8+1,l9+1,l10+1,l11+1}; Volume(s+1) = s ; + + + Fomes_SurfaceLoop[iFom] = s ; + Fomes_Volume[iFom] = s+1 ; + + diff --git a/benchmarks/3d/avetole.geo b/benchmarks/3d/magnetron/magnetron0.geo similarity index 99% rename from benchmarks/3d/avetole.geo rename to benchmarks/3d/magnetron/magnetron0.geo index f102b6538a..74a9be8d20 100644 --- a/benchmarks/3d/avetole.geo +++ b/benchmarks/3d/magnetron/magnetron0.geo @@ -234,7 +234,7 @@ For i In {0:totaim} iBox=i; wBox=largaim[i]; lBox=longaim[i]; hBox=hautaim[i]; xBox=xancaim[i]; yBox=yancaim[i]; zBox= eppba ; lcBox=lc; thetaBox= anglerot[i]; - Include "BOX.geo"; + Include "box-old.geo"; EndFor Coherence; diff --git a/benchmarks/3d/magnetron/magnetron1-full.geo b/benchmarks/3d/magnetron/magnetron1-full.geo new file mode 100644 index 0000000000..1272164865 --- /dev/null +++ b/benchmarks/3d/magnetron/magnetron1-full.geo @@ -0,0 +1,253 @@ +mm = 0.001 ; // 1 milimetre = 0.001 metre +lc = 2.1*mm ; // unite de base min pour la taille caracteristique du maillage + +lcpba2 = 1.5*lc ; // lc dessous plaque base +lcpba1 = lc ; // lc dessus plaque base +lcrint1 = 3*lc ; // lc coquille spherique superieure +lcrint2 = 3*lc ; // lc coquille spherique inferieure +lcrext1 = 2.9*lcrint1 ; // lc coquille spherique infini superieure +lcrext2 = 2.9*lcrint2 ; // lc coquille spherique infini inferieure + +// definition de longueur de la plaque base + +eppba1 = 7.7 *mm ; // epaisseur plaque base 1 +eppba2 = 6.8 *mm ; // epaisseur plaque base 2 +eppba3 = 3.5 *mm ; // epaisseur plaque base 3 +Raypba = 88/2 *mm ; // longueur plaque base +Raypba1 = 35.5*mm ; +Raypba2 = 25.5*mm; +Raypba3 = 12.5*mm; + +// Definition de la plaque base + +Point(1) = { Raypba , 0.0 , 0.0 , lcpba2 }; +Point(2) = { Raypba , 0.0 , eppba2 , lcpba2 }; +Point(3) = { Raypba1 , 0.0 , eppba2 , lcpba2 }; +Point(4) = { Raypba1 , 0.0 , eppba1 , lcpba1 }; +Point(5) = { Raypba2 , 0.0 , eppba1 , lcpba1 }; +Point(6) = { Raypba2 , 0.0 , eppba3 , lcpba1 }; +//Point(7) = { Raypba3 , 0.0 , eppba3 , lcpba1 }; +//Point(8) = { Raypba3 , 0.0 , eppba1 , lcpba1 }; + +Point(9) = { 0.0 , Raypba , 0.0 , lcpba2 }; +Point(10) = { 0.0 , Raypba , eppba2 , lcpba2 }; +Point(11) = { 0.0 , Raypba1 , eppba2 , lcpba2 }; +Point(12) = { 0.0 , Raypba1 , eppba1 , lcpba1 }; +Point(13) = { 0.0 , Raypba2 , eppba1 , lcpba1 }; +Point(14) = { 0.0 , Raypba2 , eppba3 , lcpba1 }; +//Point(15) = { 0.0 , Raypba3 , eppba3 , lcpba1 }; +//Point(16) = { 0.0 , Raypba3 , eppba1 , lcpba1 }; + +Point(17) = { -Raypba , 0.0 , 0.0 , lcpba2 }; +Point(18) = { -Raypba , 0.0 , eppba2 , lcpba2 }; +Point(19) = { -Raypba1 , 0.0 , eppba2 , lcpba2 }; +Point(20) = { -Raypba1 , 0.0 , eppba1 , lcpba1 }; +Point(21) = { -Raypba2 , 0.0 , eppba1 , lcpba1 }; +Point(22) = { -Raypba2 , 0.0 , eppba3 , lcpba1 }; +//Point(23) = { -Raypba3 , 0.0 , eppba3 , lcpba1 }; +//Point(24) = { -Raypba3 , 0.0 , eppba1 , lcpba1 }; + +Point(25) = { 0.0 , -Raypba , 0.0 , lcpba2 }; +Point(26) = { 0.0 , -Raypba , eppba2 , lcpba2 }; +Point(27) = { 0.0 , -Raypba1 , eppba2 , lcpba2 }; +Point(28) = { 0.0 , -Raypba1 , eppba1 , lcpba1 }; +Point(29) = { 0.0 , -Raypba2 , eppba1 , lcpba1 }; +Point(30) = { 0.0 , -Raypba2 , eppba3 , lcpba1 }; +//Point(31) = { 0.0 , -Raypba3 , eppba3 , lcpba1 }; +//Point(32) = { 0.0 , -Raypba3 , eppba1 , lcpba1 }; + +centre1=newp;Point(centre1)= { 0.0, 0.0 , 0.0 , lcpba2 }; +centre2=newp;Point(centre2)= { 0.0, 0.0 , eppba2 , lcpba2 }; +centre3=newp;Point(centre3)= { 0.0, 0.0 , eppba1 , lcpba2 }; +centre4=newp;Point(centre4)= { 0.0, 0.0 , eppba3 , lcpba2 }; + +Circle(40) = {1,centre1,9}; +Circle(41) = {2,centre2,10}; +Circle(42) = {3,centre2,11}; +Circle(43) = {4,centre3,12}; +Circle(44) = {5,centre3,13}; +Circle(45) = {6,centre4,14}; +//Circle(46) = {7,centre4,15}; +//Circle(47) = {8,centre3,16}; + +Circle(48) = {9,centre1,17}; +Circle(49) = {10,centre2,18}; +Circle(50) = {11,centre2,19}; +Circle(51) = {12,centre3,20}; +Circle(52) = {13,centre3,21}; +Circle(53) = {14,centre4,22}; +//Circle(54) = {15,centre4,23}; +//Circle(55) = {16,centre3,24}; + +Circle(56) = {17,centre1,25}; +Circle(57) = {18,centre2,26}; +Circle(58) = {19,centre2,27}; +Circle(59) = {20,centre3,28}; +Circle(60) = {21,centre3,29}; +Circle(61) = {22,centre4,30}; +//Circle(62) = {23,centre4,31}; +//Circle(63) = {24,centre3,32}; + +Circle(64) = {25,centre1,1}; +Circle(65) = {26,centre2,2}; +Circle(66) = {27,centre2,3}; +Circle(67) = {28,centre3,4}; +Circle(68) = {29,centre3,5}; +Circle(69) = {30,centre4,6}; +//Circle(70) = {31,centre4,7}; +//Circle(71) = {32,centre3,8}; + +Line(72)={1,2}; +Line(73)={3,4}; +Line(74)={5,6}; +//Line(75)={7,8}; +Line(76)={17,18}; +Line(77)={19,20}; +Line(78)={21,22}; +//Line(79)={23,24}; +Line(80)={9,10}; +Line(81)={11,12}; +Line(82)={13,14}; +//Line(83)={15,16}; +Line(84)={25,26}; +Line(85)={27,28}; +Line(86)={29,30}; +//Line(87)={31,32}; + +iCyl=0; dCyl=12.5*mm; hCyl=8*mm; +xCyl=0; yCyl=0; zCyl= eppba1 ; lcCyl=lc; +Include "cylindric.geo"; +Coherence; + +nbtra=6; +nbtot=24; +thethatra[]={0,90,150,210,270,330,30,20,40,60,80,100,120,140,160,180,200,220,240,260,280,300,320,340,0}; +pcen = centre3; +pcen2= centre4; +difBox=eppba1-eppba3; +For i In {1:nbtot} + If (i<=nbtra) + iBox=i; h1Box=7.5*mm;h2Box=16.5*mm; epBox=8*mm;RBox=Raypba3; + xBox=0; yBox=0; zBox=eppba1 ; lcBox=3*mm;thetaBox=thethatra[i]; + Include "traphedre1.geo"; + EndIf + If (i>nbtra) + iBox=i; h1Box=36.5*mm;wBox=6*mm;lBox=12*mm; hBox=9*mm; + xBox=0; yBox=0; zBox=eppba2 ; lcBox=3*mm;thetaBox=thethatra[i]; + Include "box.geo"; + EndIf +EndFor + +//12 arc de cercle manquant +arc1=newreg; Circle(arc1)={Boxes_Point5[1],centre3,Boxes_Point2[2]}; +arc2=newreg; Circle(arc2)={Boxes_Point5[2],centre3,Boxes_Point2[3]}; +arc3=newreg; Circle(arc3)={Boxes_Point5[3],centre3,Boxes_Point2[4]}; +arc4=newreg; Circle(arc4)={Boxes_Point5[4],centre3,Boxes_Point2[5]}; +arc5=newreg; Circle(arc5)={Boxes_Point5[5],centre3,Boxes_Point2[6]}; +arc6=newreg; Circle(arc6)={Boxes_Point5[6],centre3,Boxes_Point2[1]}; +arc7=newreg; Circle(arc7)={Boxes_Point12[1],centre4,Boxes_Point11[2]}; +arc8=newreg; Circle(arc8)={Boxes_Point12[2],centre4,Boxes_Point11[3]}; +arc9=newreg; Circle(arc9)={Boxes_Point12[3],centre4,Boxes_Point11[4]}; +arc10=newreg; Circle(arc10)={Boxes_Point12[4],centre4,Boxes_Point11[5]}; +arc11=newreg; Circle(arc11)={Boxes_Point12[5],centre4,Boxes_Point11[6]}; +arc12=newreg; Circle(arc12)={Boxes_Point12[6],centre4,Boxes_Point11[1]}; + + +surfpbc1=newreg; +Line Loop(surfpbc1)={40,64,56,48}; +Plane Surface(surfpbc1+1)={surfpbc1}; +surfpbc2=newreg; +Line Loop(surfpbc2)={72,41,-80,-40}; +Ruled Surface(surfpbc2+1)={surfpbc2}; +surfpbc3=newreg; +Line Loop(surfpbc3)={80,49,-76,-48}; +Ruled Surface(surfpbc3+1)={surfpbc3}; +surfpbc4=newreg; +Line Loop(surfpbc4)={76,57,-84,-56}; +Ruled Surface(surfpbc4+1)={surfpbc4}; +surfpbc5=newreg; +Line Loop(surfpbc5)={84,65,-72,-64}; +Ruled Surface(surfpbc5+1)={surfpbc5}; +surfpbc6=newreg; +Line Loop(surfpbc6)={41,49,57,65}; +surfpbc7=newreg; +Line Loop(surfpbc7)={42,50,58,66}; +Plane Surface(surfpbc7+1)={surfpbc6,surfpbc7,Boxes_LineLoop1[{7:24}]}; +surfpbc8=newreg; +Line Loop(surfpbc8)={73,43,-81,-42}; +Ruled Surface(surfpbc8+1)={surfpbc8}; +surfpbc9=newreg; +Line Loop(surfpbc9)={81,51,-77,-50}; +Ruled Surface(surfpbc9+1)={surfpbc9}; +surfpbc10=newreg; +Line Loop(surfpbc10)={77,59,-85,-58}; +Ruled Surface(surfpbc10+1)={surfpbc10}; +surfpbc11=newreg; +Line Loop(surfpbc11)={85,67,-73,-66}; +Ruled Surface(surfpbc11+1)={surfpbc11}; +surfpbc12=newreg; +Line Loop(surfpbc12)={43,51,59,67}; +surfpbc13=newreg; +Line Loop(surfpbc13)={44,52,60,68}; +Plane Surface(surfpbc13+1)={surfpbc12,surfpbc13}; +surfpbc14=newreg; +Line Loop(surfpbc14)={-74,44,82,-45}; +Ruled Surface(surfpbc14+1)={surfpbc14}; +surfpbc15=newreg; +Line Loop(surfpbc15)={-82,52,78,-53}; +Ruled Surface(surfpbc15+1)={surfpbc15}; +surfpbc16=newreg; +Line Loop(surfpbc16)={-78,60,86,-61}; +Ruled Surface(surfpbc16+1)={surfpbc16}; +surfpbc17=newreg; +Line Loop(surfpbc17)={-86,68,74,-69}; +Ruled Surface(surfpbc17+1)={surfpbc17}; +surfpbc18=newreg; +Line Loop(surfpbc18)={45,53,61,69}; +surfpbc19=newreg; +Line Loop(surfpbc19)={Boxes_Linep11p12[{1:6}],arc7,arc8,arc9,arc10,arc11,arc12}; +Plane Surface(surfpbc19+1)={surfpbc18,surfpbc19}; + +surfpbc20=newreg; +Line Loop(surfpbc20)={arc1,Boxes_Linep2p11[2],-arc7,-Boxes_Linep5p12[1]}; +Ruled Surface(surfpbc20+1)={surfpbc20}; +surfpbc21=newreg; +Line Loop(surfpbc21)={arc2,Boxes_Linep2p11[3],-arc8,-Boxes_Linep5p12[2]}; +Ruled Surface(surfpbc21+1)={surfpbc21}; +surfpbc22=newreg; +Line Loop(surfpbc22)={arc3,Boxes_Linep2p11[4],-arc9,-Boxes_Linep5p12[3]}; +Ruled Surface(surfpbc22+1)={surfpbc22}; +surfpbc23=newreg; +Line Loop(surfpbc23)={arc4,Boxes_Linep2p11[5],-arc10,-Boxes_Linep5p12[4]}; +Ruled Surface(surfpbc23+1)={surfpbc23}; +surfpbc24=newreg; +Line Loop(surfpbc24)={arc5,Boxes_Linep2p11[6],-arc11,-Boxes_Linep5p12[5]}; +Ruled Surface(surfpbc24+1)={surfpbc24}; +surfpbc25=newreg; +Line Loop(surfpbc25)={arc6,Boxes_Linep2p11[1],-arc12,-Boxes_Linep5p12[6]}; +Ruled Surface(surfpbc25+1)={surfpbc25}; +surfpbc26=newreg; +Line Loop(surfpbc26)={arc1,-Boxes_Linep1p2[2],-Boxes_Linep6p1[2],-Boxes_Linep5p6[2],arc2,-Boxes_Linep1p2[3],-Boxes_Linep6p1[3],-Boxes_Linep5p6[3],arc3,-Boxes_Linep1p2[4],-Boxes_Linep6p1[4],-Boxes_Linep5p6[4],arc4,-Boxes_Linep1p2[5],-Boxes_Linep6p1[5],-Boxes_Linep5p6[5],arc5,-Boxes_Linep1p2[6],-Boxes_Linep6p1[6],-Boxes_Linep5p6[6],arc6,-Boxes_Linep1p2[1],-Boxes_Linep6p1[1],-Boxes_Linep5p6[1]}; +Plane Surface(surfpbc26+1)={surfpbc26,Cyles_BaseLoop[0]}; + +volpbc = newreg; +Surface Loop(volpbc)={surfpbc1+1,surfpbc2+1,surfpbc3+1,surfpbc4+1,surfpbc5+1,surfpbc7+1,surfpbc8+1,surfpbc9+1,surfpbc10+1,surfpbc11+1,surfpbc13+1,surfpbc14+1,surfpbc15+1,surfpbc16+1,surfpbc17+1,surfpbc19+1,surfpbc20+1,surfpbc21+1,surfpbc22+1,surfpbc23+1,surfpbc24+1,surfpbc25+1,surfpbc26+1,Boxes_PlanSurf1[{1:24}],Boxes_PlanSurf8[{1:6}],Cyles_BaseSurf[0]}; +Volume(volpbc+1)={volpbc}; + + +Physical Surface(7776)={surfpbc1+1,surfpbc2+1,surfpbc3+1,surfpbc4+1,surfpbc5+1,surfpbc7+1,surfpbc8+1,surfpbc9+1,surfpbc10+1,surfpbc11+1,surfpbc13+1,surfpbc14+1,surfpbc15+1,surfpbc16+1,surfpbc17+1,surfpbc19+1,surfpbc20+1,surfpbc21+1,surfpbc22+1,surfpbc23+1,surfpbc24+1,surfpbc25+1,surfpbc26+1,Boxes_PlanSurf8[{1:6}]}; + + +Physical Surface(7777)={Cyles_BaseSurf[0],Cyles_HautSurf[0],Cyles_RuleSurf1[0],Cyles_RuleSurf2[0],Cyles_RuleSurf3[0],Cyles_RuleSurf4[0]}; + +Physical Surface(7778)={Boxes_PlanSurf1[{1:6}],Boxes_PlanSurf2[{1:6}],Boxes_PlanSurf3[{1:6}],Boxes_PlanSurf4[{1:6}],Boxes_PlanSurf5[{1:6}],Boxes_PlanSurf6[{1:6}],Boxes_PlanSurf7[{1:6}]}; +Physical Surface(7779)={Boxes_PlanSurf1[{7:24}],Boxes_PlanSurf2[{7:24}],Boxes_PlanSurf3[{7:24}],Boxes_PlanSurf4[{7:24}],Boxes_PlanSurf5[{7:24}],Boxes_PlanSurf6[{7:24}]}; + + + + + + + + + diff --git a/benchmarks/3d/magnetron/magnetron1.geo b/benchmarks/3d/magnetron/magnetron1.geo new file mode 100644 index 0000000000..07e0e3e661 --- /dev/null +++ b/benchmarks/3d/magnetron/magnetron1.geo @@ -0,0 +1,267 @@ +mm = 0.001 ; // 1 milimetre = 0.001 metre +lc = 1.5*mm ; // unite de base min pour la taille caracteristique du maillage + +lcpba2 = 1.5*lc ; // lc dessous plaque base +lcpba1 = lc ; // lc dessus plaque base +lcrint1 = 3*lc ; // lc coquille spherique superieure +lcrint2 = 3*lc ; // lc coquille spherique inferieure +lcrext1 = 2.9*lcrint1 ; // lc coquille spherique infini superieure +lcrext2 = 2.9*lcrint2 ; // lc coquille spherique infini inferieure + +// definition de longueur de la plaque base + +eppba1 = 7.7 *mm ; // epaisseur plaque base 1 +eppba2 = 6.8 *mm ; // epaisseur plaque base 2 +eppba3 = 3.5 *mm ; // epaisseur plaque base 3 +Raypba = 88/2 *mm ; // longueur plaque base +Raypba1 = 35.5*mm ; +Raypba2 = 25.5*mm; +Raypba3 = 12.5*mm; +rint = 90. *mm ; // rayon interne coquille spherique +rext = 1.5 * rint ; // rayon externe coquille spherique + +Point(1) = { Raypba , 0.0 , 0.0 , lcpba2 }; +Point(2) = { Raypba , 0.0 , eppba2 , lcpba2 }; +Point(3) = { Raypba1 , 0.0 , eppba2 , lcpba2 }; +Point(4) = { Raypba1 , 0.0 , eppba1 , lcpba1 }; +Point(5) = { Raypba2 , 0.0 , eppba1 , lcpba1 }; +Point(6) = { Raypba2 , 0.0 , eppba3 , lcpba1 }; +Point(7) = { Raypba3 , 0.0 , eppba3 , lcpba1 }; +Point(8) = { Raypba3 , 0.0 , eppba1 , lcpba1 }; + +Point(9) = { 0.0 , Raypba , 0.0 , lcpba2 }; +Point(10) = { 0.0 , Raypba , eppba2 , lcpba2 }; +Point(11) = { 0.0 , Raypba1 , eppba2 , lcpba2 }; +Point(12) = { 0.0 , Raypba1 , eppba1 , lcpba1 }; +Point(13) = { 0.0 , Raypba2 , eppba1 , lcpba1 }; +Point(14) = { 0.0 , Raypba2 , eppba3 , lcpba1 }; +//Point(15) = { 0.0 , Raypba3 , eppba3 , lcpba1 }; +//Point(16) = { 0.0 , Raypba3 , eppba1 , lcpba1 }; + +centre1=newp;Point(centre1)= { 0.0, 0.0 , 0.0 , lcpba2 }; +centre2=newp;Point(centre2)= { 0.0, 0.0 , eppba2 , lcpba2 }; +centre3=newp;Point(centre3)= { 0.0, 0.0 , eppba1 , lcpba2 }; +centre4=newp;Point(centre4)= { 0.0, 0.0 , eppba3 , lcpba2 }; + +Circle(20) = {1,centre1,9}; +Circle(21) = {2,centre2,10}; +Circle(22) = {3,centre2,11}; +Circle(23) = {4,centre3,12}; +Circle(24) = {5,centre3,13}; +Circle(25) = {6,centre4,14}; +//Circle(26) = {7,centre4,15}; +//Circle(27) = {8,centre3,16}; + +Line(28)={centre1,1}; +Line(29)={1,2}; +//Line(30)={2,3}; +Line(31)={3,4}; +Line(32)={4,5}; +Line(33)={5,6}; +Line(34)={6,7}; +Line(35)={7,8}; +//Line(36)={8,centre3}; +Line(37)={centre3,centre1}; + +Line(38)={centre1,9}; +Line(39)={9,10}; +Line(40)={10,11}; +Line(41)={11,12}; +Line(42)={12,13}; +Line(43)={13,14}; +//Line(44)={14,15}; +//Line(45)={15,16}; +//Line(46)={16,centre3}; + +iCyl=0; dCyl=12.5*mm; hCyl=8*mm; +xCyl=0; yCyl=0; zCyl= eppba1 ; lcCyl=lc; +Include "quacylin.geo"; +Coherence; +nbtra=2; +nbtot=7; +thethatra[]={0,90,30,20,40,60,80,0}; +pcen = centre3; +pcen2= centre4; +difBox=eppba1-eppba3; + +For i In {1:nbtot} + If (i==1) + iBox=i; h1Box=7.5*mm;h2Box=16.5*mm; epBox=8*mm;RBox=Raypba3; + xBox=0; yBox=0; zBox=eppba1 ; lcBox=lc;thetaBox=thethatra[i]; + Include "traphedre2.geo"; + EndIf + If (i==2) + iBox=i; h1Box=7.5*mm;h2Box=16.5*mm; epBox=8*mm;RBox=Raypba3; + xBox=0; yBox=0; zBox=eppba1 ; lcBox=lc;thetaBox=thethatra[i]; + Include "traphedre1.geo"; + EndIf + If (i>nbtra && i<nbtot) + iBox=i; h1Box=36.5*mm;wBox=6*mm;lBox=12*mm; hBox=9*mm; + xBox=0; yBox=0; zBox=eppba2 ; lcBox=lc;thetaBox=thethatra[i]; + Include "box.geo"; + EndIf + If (i==nbtot) + iBox=i; h1Box=36.5*mm;wBox=6*mm;lBox=6*mm; hBox=9*mm; + xBox=0; yBox=3*mm; zBox=eppba2 ; lcBox=lc;thetaBox=thethatra[i]; + Include "box.geo"; + EndIf +EndFor + +//ligne et arc de cercle manquant +arc1=newreg; Circle(arc1)={8,centre3,Boxes_Point2[2]}; +arc2=newreg; Circle(arc2)={Boxes_Point5[2],centre3,Boxes_Point2[1]}; +arc3=newreg; Circle(arc3)={7,centre4,Boxes_Point11[2]}; +arc4=newreg; Circle(arc4)={Boxes_Point12[2],centre3,Boxes_Point11[1]}; +axex1=newreg; +Line(axex1) = {Cyles_Point2[0],8}; +axex2=newreg; +Line(axex2) = {3,Boxes_Point1[7]}; +axex3=newreg; +Line(axex3) = {Boxes_Point2[7],2}; +axex[]={axex1,axex2,axex3}; +axey1=newreg; +Line(axey1) = {Cyles_Point3[0],Boxes_Point6[1]}; +axey2=newreg; +Line(axey2) = {Boxes_Point12[1],14}; + +// Surfaces manquantes +surfpbx=newreg; +Line Loop(surfpbx)={Cyles_Linep1p2[0],axex[],-35,-34,-33,-32,-31,Boxes_Linep1p2[7],-29,-28,-37}; +Plane Surface(surfpbx+1) ={surfpbx}; +surfpby=newreg; +Line Loop(surfpby)={Cyles_Linep1p3[0],axey1,-Boxes_Linep5p6[1], Boxes_Linep5p12[1],axey2,-43,-42,-41,-40,-39,-38,-37}; +Plane Surface(surfpby+1) ={surfpby}; +surfpb1=newreg; +Line Loop(surfpb1)={28,20,-38}; +Plane Surface(surfpb1+1) ={surfpb1}; +surfpb2=newreg; +Line Loop(surfpb2)={29,21,-39,-20}; +Ruled Surface(surfpb2+1) ={surfpb2}; +surfpb3=newreg; +Line Loop(surfpb3)={axex2,-Boxes_Linep4p1[7],-Boxes_Linep3p4[7],-Boxes_Linep2p3[7],axex3,21,40,-22}; +Plane Surface(surfpb3+1) ={surfpb3,Boxes_LineLoop1[{3:6}]}; +surfpb4=newreg; +Line Loop(surfpb4)={31,23,-41,-22}; +Ruled Surface(surfpb4+1) ={surfpb4}; +surfpb5=newreg; +Line Loop(surfpb5)={32,24,-42,-23}; +Plane Surface(surfpb5+1) ={surfpb5}; +surfpb6=newreg; +Line Loop(surfpb6)={33,25,-43,-24}; +Ruled Surface(surfpb6+1) ={surfpb6}; +surfpb7=newreg; +Line Loop(surfpb7)={34,arc3,Boxes_Linep11p12[{1:2}],arc4,axey2,-25}; +Plane Surface(surfpb7+1) ={surfpb7}; +surfpb8=newreg; +Line Loop(surfpb8)={35,arc1,Boxes_Linep2p11[2],-arc3}; +Ruled Surface(surfpb8+1) ={surfpb8}; +surfpb9=newreg; +Line Loop(surfpb9)={arc2,Boxes_Linep2p11[1],-arc4,-Boxes_Linep5p12[2]}; +Ruled Surface(surfpb9+1) ={surfpb9}; +surfpb10=newreg; +Line Loop(surfpb10)={axex1,arc1,-Boxes_Linep1p2[2],-Boxes_Linep6p1[2],-Boxes_Linep5p6[2],arc2,-Boxes_Linep1p2[1],-Boxes_Linep6p1[1],-axey1,Cyles_Curvep3p2[0]}; +Plane Surface(surfpb10+1) ={surfpb10}; + +//Volume plaque base + +volpb=newreg; +Surface Loop(volpb)={surfpbx+1,surfpby+1,surfpb1+1,surfpb2+1,surfpb3+1,surfpb4+1,surfpb5+1,surfpb6+1,surfpb7+1,surfpb8+1,surfpb9+1,surfpb10+1,Boxes_PlanSurf8[{1:2}],Boxes_PlanSurf1[{1:7}],Cyles_BaseSurf[0]}; +Volume(volpb+1)={volpb}; + + +//creation des points pour creer les sphere de transfo inf +tranZ=20*mm; +Point(350) = { rint , 0.0 , tranZ , lcrint1 }; +Point(351) = { rext , 0.0 , tranZ , lcrext1 }; +Point(352) = { 0.0 , rint , tranZ , lcrint1 }; +Point(353) = { 0.0 , rext , tranZ , lcrext1 }; +Point(354) = { 0.0 , 0.0 , rext+tranZ , lcrext1 }; +Point(355) = { 0.0 , 0.0 , rint+tranZ , lcrint1 }; +Point(356) = { 0.0 , 0.0 , -rint+tranZ , lcrint2 }; +Point(357) = { 0.0 , 0.0 , -rext+tranZ , lcrext2 }; + +Line(358)={centre1,356}; +Line(359)={356,357}; +Line(360)={Cyles_Point4[0],355}; +Line(361)={355,354}; + +centre=newreg; +Point(centre) = { 0.0 , 0.0 , tranZ , lcpba2 }; +Circle(362) = {350, centre,355}; +Circle(363) = {351, centre,354}; +Circle(364) = {350, centre,356}; +Circle(365) = {351, centre,357}; +Circle(366) = {352, centre,355}; +Circle(367) = {353, centre,354}; +Circle(368) = {352, centre,356}; +Circle(369) = {353, centre,357}; +Circle(370) = {350, centre,352}; +Circle(371) = {351, centre,353}; + +Line Loop(372) = {362,-366,-370}; +Ruled Surface(373) = {372}; +Line Loop(374) = {363,-367,-371}; +Ruled Surface(375) = {374}; +Line Loop(376) = {364,-368,-370}; +Ruled Surface(377) = {376}; +Line Loop(378) = {365,-369,-371}; +Ruled Surface(379) = {378}; +Line Loop(380) = {361,-363,365,-359,-364,362}; +Plane Surface(381) = {380}; +Line Loop(382) = {361,-367,369,-359,-368,366}; +Plane Surface(383) = {382}; + +Surface Loop(384) = {373,375,377,379,381,383}; +Volume(385) = {384}; + +//Surfaces et volume manquants air + +surfair1 = newreg; +Line Loop(surfair1)= {358,-364,362,-360,Cyles_Linep4p5[0],Cyles_Linep5p2[0],axex[],-35,-34,-33,-32,-31,Boxes_Linep1p5[7],Boxes_Linep5p6[7],-Boxes_Linep2p6[7],-29,-28}; +Plane Surface(surfair1+1)= {surfair1}; + +surfair2 = newreg; +Line Loop(surfair2)= {358,-368,366,-360,Cyles_Linep4p6[0],Cyles_Linep6p3[0],axey1,Boxes_Linep6p10[1],-Boxes_Linep9p10[1],-Boxes_Linep4p9[1],Boxes_Linep4p5[1],Boxes_Linep5p12[1],axey2,-43,-42,-41,-40,-39,-38}; +Plane Surface(surfair2+1)= {surfair2}; + +volair = newreg; +Surface Loop(volair)={surfair1+1,surfair2+1,Cyles_HautSurf[0],Cyles_RuleSurf1[0],surfpb1+1,surfpb2+1,surfpb3+1,surfpb4+1,surfpb5+1,surfpb6+1,surfpb7+1,surfpb8+1,surfpb9+1,surfpb10+1,Boxes_PlanSurf8[{1:2}],Boxes_PlanSurf7[{1:2}],Boxes_PlanSurf6[2],Boxes_PlanSurf5[{1:2}],Boxes_PlanSurf4[{1:2}],Boxes_PlanSurf3[{1:2}],Boxes_PlanSurf2[{1:2}],Boxes_PlanSurf2[{3:7}],Boxes_PlanSurf3[{3:7}],Boxes_PlanSurf4[{3:6}],Boxes_PlanSurf5[{3:7}],Boxes_PlanSurf6[{3:7}],373,377}; +Volume(volair+1) ={volair}; + + +// definition des entites physiques + +Physical Volume(9999)={volpb+1}; +Physical Volume(9998)={volair+1}; +Physical Volume(9997)={385}; + +Physical Volume(8888)={Cyles_Volume[0]}; +Physical Volume(8887)={Boxes_Volume[{3:7}]}; +Physical Volume(8886)={Boxes_Volume[2]}; +Physical Volume(8885)={Boxes_Volume[1]}; + +Physical Surface(7776)={375,379}; +Physical Surface(7777)={Boxes_PlanSurf4[7],surfpbx+1,surfair1+1,381,Cyles_Surf3[0],Cyles_Surf4[0],Boxes_PlanSurf6[1],surfpby+1,surfair2+1,383}; + + +/* +Point(900) = { 0.0 , 50*mm , 0.0 , lcpba2 }; +Point(901) = { 50*mm , 0*mm , 0.0 , lcpba2 }; + +Point(902) = { 0.0 , 30*mm , 0.0 , lcpba2 }; +Point(903) = { 30*mm , 0*mm , 0.0 , lcpba2 }; + +Point(904) = { 0.0 , 60*mm , 0.0 , lcpba2 }; +Point(905) = { 60*mm , 0*mm , 0.0 , lcpba2 }; + +Circle(906) = {900,centre1,901}; +Circle(907) = {902,centre1,903}; +Circle(908) = {904,centre1,905}; +*/ + + + + + + + diff --git a/benchmarks/3d/magnetron/magnetron2-full.geo b/benchmarks/3d/magnetron/magnetron2-full.geo new file mode 100644 index 0000000000..ca26b8157c --- /dev/null +++ b/benchmarks/3d/magnetron/magnetron2-full.geo @@ -0,0 +1,305 @@ +mm = 0.001 ; // 1 milimetre = 0.001 metre +lc = 3*mm ; // unite de base min pour la taille caracteristique du maillage + +lcpba = lc ; // lc plaques base centrale et laterale + + +// Definition de la plaque base centrale + +r1pbc = 3*mm; +r2pbc = 5*mm; +r3pbc = 19.75*mm; +r4pbc = 18*mm; +e1pbc = 2*mm; +e2pbc = 4*mm; +e3pbc = 6.2*mm; + +Point(1) = { r1pbc , 0.0 , 0.0 , lcpba }; +Point(2) = { r2pbc , 0.0 , 0.0 , lcpba }; +Point(3) = { r2pbc , 0.0 , e1pbc , lcpba }; +Point(4) = { r3pbc , 0.0 , e1pbc , lcpba }; +Point(5) = { r3pbc , 0.0 , e2pbc , lcpba }; +Point(6) = { r4pbc , 0.0 , e2pbc , lcpba }; +Point(7) = { r4pbc , 0.0 , e3pbc , lcpba }; +Point(8) = { r1pbc , 0.0 , e3pbc , lcpba }; + +Point(9) = { 0.0 , r1pbc , 0.0 , lcpba }; +Point(10) = { 0.0 , r2pbc , 0.0 , lcpba }; +Point(11) = { 0.0 , r2pbc , e1pbc , lcpba }; +Point(12) = { 0.0 , r3pbc , e1pbc , lcpba }; +Point(13) = { 0.0 , r3pbc , e2pbc , lcpba }; +Point(14) = { 0.0 , r4pbc , e2pbc , lcpba }; +Point(15) = { 0.0 , r4pbc , e3pbc , lcpba }; +Point(16) = { 0.0 , r1pbc , e3pbc , lcpba }; + +Point(17) = { -r1pbc , 0.0 , 0.0 , lcpba }; +Point(18) = { -r2pbc , 0.0 , 0.0 , lcpba }; +Point(19) = { -r2pbc , 0.0 , e1pbc , lcpba }; +Point(20) = { -r3pbc , 0.0 , e1pbc , lcpba }; +Point(21) = { -r3pbc , 0.0 , e2pbc , lcpba }; +Point(22) = { -r4pbc , 0.0 , e2pbc , lcpba }; +Point(23) = { -r4pbc , 0.0 , e3pbc , lcpba }; +Point(24) = { -r1pbc , 0.0 , e3pbc , lcpba }; + +Point(25) = { 0.0 , -r1pbc , 0.0 , lcpba }; +Point(26) = { 0.0 , -r2pbc , 0.0 , lcpba }; +Point(27) = { 0.0 , -r2pbc , e1pbc , lcpba }; +Point(28) = { 0.0 , -r3pbc , e1pbc , lcpba }; +Point(29) = { 0.0 , -r3pbc , e2pbc , lcpba }; +Point(30) = { 0.0 , -r4pbc , e2pbc , lcpba }; +Point(31) = { 0.0 , -r4pbc , e3pbc , lcpba }; +Point(32) = { 0.0 , -r1pbc , e3pbc , lcpba }; + + +centre1=newp;Point(centre1)= { 0.0, 0.0 , 0.0 , lcpba }; +centre2=newp;Point(centre2)= { 0.0, 0.0 , e1pbc , lcpba }; +centre3=newp;Point(centre3)= { 0.0, 0.0 , e2pbc , lcpba }; +centre4=newp;Point(centre4)= { 0.0, 0.0 , e3pbc , lcpba }; + +Circle(40) = {1,centre1,9}; +Circle(41) = {2,centre1,10}; +Circle(42) = {3,centre2,11}; +Circle(43) = {4,centre2,12}; +Circle(44) = {5,centre3,13}; +Circle(45) = {6,centre3,14}; +Circle(46) = {7,centre4,15}; +Circle(47) = {8,centre4,16}; + +Circle(48) = {9,centre1,17}; +Circle(49) = {10,centre1,18}; +Circle(50) = {11,centre2,19}; +Circle(51) = {12,centre2,20}; +Circle(52) = {13,centre3,21}; +Circle(53) = {14,centre3,22}; +Circle(54) = {15,centre4,23}; +Circle(55) = {16,centre4,24}; + +Circle(56) = {17,centre1,25}; +Circle(57) = {18,centre1,26}; +Circle(58) = {19,centre2,27}; +Circle(59) = {20,centre2,28}; +Circle(60) = {21,centre3,29}; +Circle(61) = {22,centre3,30}; +Circle(62) = {23,centre4,31}; +Circle(63) = {24,centre4,32}; + +Circle(64) = {25,centre1,1}; +Circle(65) = {26,centre1,2}; +Circle(66) = {27,centre2,3}; +Circle(67) = {28,centre2,4}; +Circle(68) = {29,centre3,5}; +Circle(69) = {30,centre3,6}; +Circle(70) = {31,centre4,7}; +Circle(71) = {32,centre4,8}; + +Line(72)={2,3}; +Line(73)={4,5}; +Line(74)={6,7}; +Line(75)={8,1}; +Line(76)={18,19}; +Line(77)={20,21}; +Line(78)={22,23}; +Line(79)={24,17}; +Line(80)={10,11}; +Line(81)={12,13}; +Line(82)={14,15}; +Line(83)={16,9}; +Line(84)={26,27}; +Line(85)={28,29}; +Line(86)={30,31}; +Line(87)={32,25}; + + +// Definition de la plaque base laterale + +r1pbl = 60*mm; +r2pbl = 74*mm; + +Point(91) = { r1pbl , 0.0 , e1pbc , lcpba }; +Point(92) = { r2pbl , 0.0 , e1pbc , lcpba }; +Point(93) = { r2pbl , 0.0 , e3pbc , lcpba }; +Point(94) = { r1pbl , 0.0 , e3pbc , lcpba }; + +Point(95) = { 0.0 , r1pbl , e1pbc , lcpba }; +Point(96) = { 0.0 , r2pbl , e1pbc , lcpba }; +Point(97) = { 0.0 , r2pbl , e3pbc , lcpba }; +Point(98) = { 0.0 , r1pbl , e3pbc , lcpba }; + +Point(99) = { -r1pbl , 0.0 , e1pbc , lcpba }; +Point(100) = { -r2pbl , 0.0 , e1pbc , lcpba }; +Point(101) = { -r2pbl , 0.0 , e3pbc , lcpba }; +Point(102) = { -r1pbl , 0.0 , e3pbc , lcpba }; + +Point(103) = { 0.0 , -r1pbl , e1pbc , lcpba }; +Point(104) = { 0.0 , -r2pbl , e1pbc , lcpba }; +Point(105) = { 0.0 , -r2pbl , e3pbc , lcpba }; +Point(106) = { 0.0 , -r1pbl , e3pbc , lcpba }; + +Circle(107) = {91,centre2,95}; +Circle(108) = {92,centre2,96}; +Circle(109) = {93,centre4,97}; +Circle(110) = {94,centre4,98}; + +Circle(111) = {95,centre2,99}; +Circle(112) = {96,centre2,100}; +Circle(113) = {97,centre4,101}; +Circle(114) = {98,centre4,102}; + +Circle(115) = {99,centre2,103}; +Circle(116) = {100,centre2,104}; +Circle(117) = {101,centre4,105}; +Circle(118) = {102,centre4,106}; + +Circle(119) = {103,centre2,91}; +Circle(120) = {104,centre2,92}; +Circle(121) = {105,centre4,93}; +Circle(122) = {106,centre4,94}; + +Line(123)={92,93}; +Line(124)={94,91}; +Line(125)={100,101}; +Line(126)={102,99}; +Line(127)={96,97}; +Line(128)={98,95}; +Line(129)={104,105}; +Line(130)={106,103}; + +//introduction aimants + +LFom=21*mm; lcFom=lc ;L1Fom=7*mm; +h1Fom=13*mm;R1Fom=26*mm;R2Fom=35*mm;angle=30*Pi/180; +xFom=39*mm;yFom=-10.5*mm;zFom=15*mm; +thetarot[]={0,60,120,180,240,300,0}; + +For i In {1:6} +iFom=i; +theta=thetarot[i]; +Include "forme1.geo"; +EndFor + +// definition des surfaces + +surfpbc1=newreg; +Line Loop(surfpbc1)={41,65,57,49}; +surfpbc2=newreg; +Line Loop(surfpbc2)={40,64,56,48}; +Plane Surface(surfpbc1+1)={surfpbc1,surfpbc2}; +surfpbc3=newreg; +Line Loop(surfpbc3)={80,41,-72,-42}; +Ruled Surface(surfpbc3+1)={surfpbc3}; +surfpbc4=newreg; +Line Loop(surfpbc4)={72,65,-84,-66}; +Ruled Surface(surfpbc4+1)={surfpbc4}; +surfpbc5=newreg; +Line Loop(surfpbc5)={84,57,-76,-58}; +Ruled Surface(surfpbc5+1)={surfpbc5}; +surfpbc6=newreg; +Line Loop(surfpbc6)={76,49,-80,-50}; +Ruled Surface(surfpbc6+1)={surfpbc6}; +surfpbc7=newreg; +Line Loop(surfpbc7)={43,67,59,51}; +surfpbc8=newreg; +Line Loop(surfpbc8)={42,66,58,50}; +Plane Surface(surfpbc7+1)={surfpbc7,surfpbc8,Fomes_LineLoop5[{1:6}]}; +surfpbc9=newreg; +Line Loop(surfpbc9)={81,43,-73,-44}; +Ruled Surface(surfpbc9+1)={surfpbc9}; +surfpbc10=newreg; +Line Loop(surfpbc10)={73,67,-85,-68}; +Ruled Surface(surfpbc10+1)={surfpbc10}; +surfpbc11=newreg; +Line Loop(surfpbc11)={85,59,-77,-60}; +Ruled Surface(surfpbc11+1)={surfpbc11}; +surfpbc12=newreg; +Line Loop(surfpbc12)={77,51,-81,-52}; +Ruled Surface(surfpbc12+1)={surfpbc12}; +surfpbc13=newreg; +Line Loop(surfpbc13)={44,52,60,68}; +surfpbc14=newreg; +Line Loop(surfpbc14)={45,53,61,69}; +Plane Surface(surfpbc13+1)={surfpbc13,surfpbc14}; +surfpbc15=newreg; +Line Loop(surfpbc15)={74,46,-82,-45}; +Ruled Surface(surfpbc15+1)={surfpbc15}; +surfpbc16=newreg; +Line Loop(surfpbc16)={82,54,-78,-53}; +Ruled Surface(surfpbc16+1)={surfpbc16}; +surfpbc17=newreg; +Line Loop(surfpbc17)={78,62,-86,-61}; +Ruled Surface(surfpbc17+1)={surfpbc17}; +surfpbc18=newreg; +Line Loop(surfpbc18)={86,70,-74,-69}; +Ruled Surface(surfpbc18+1)={surfpbc18}; +surfpbc19=newreg; +Line Loop(surfpbc19)={46,54,62,70}; +surfpbc20=newreg; +Line Loop(surfpbc20)={47,55,63,71}; +Plane Surface(surfpbc20+1)={surfpbc19,surfpbc20}; +surfpbc21=newreg; +Line Loop(surfpbc21)={75,40,-83,-47}; +Ruled Surface(surfpbc21+1)={surfpbc21}; +surfpbc22=newreg; +Line Loop(surfpbc22)={83,48,-79,-55}; +Ruled Surface(surfpbc22+1)={surfpbc22}; +surfpbc23=newreg; +Line Loop(surfpbc23)={79,56,-87,-63}; +Ruled Surface(surfpbc23+1)={surfpbc23}; +surfpbc24=newreg; +Line Loop(surfpbc24)={87,64,-75,-71}; +Ruled Surface(surfpbc24+1)={surfpbc24}; + + +surfpbl1=newreg; +Line Loop(surfpbl1)={120,116,112,108}; +surfpbl2=newreg; +Line Loop(surfpbl2)={119,115,111,107}; +Plane Surface(surfpbl2+1)={surfpbl1,surfpbl2,Fomes_LineLoop2[{1:6}]}; +surfpbl3=newreg; +Line Loop(surfpbl3)={123,109,-127,-108}; +Ruled Surface(surfpbl3+1)={surfpbl3}; +surfpbl4=newreg; +Line Loop(surfpbl4)={127,113,-125,-112}; +Ruled Surface(surfpbl4+1)={surfpbl4}; +surfpbl5=newreg; +Line Loop(surfpbl5)={125,117,-129,-116}; +Ruled Surface(surfpbl5+1)={surfpbl5}; +surfpbl6=newreg; +Line Loop(surfpbl6)={129,121,-123,-120}; +Ruled Surface(surfpbl6+1)={surfpbl6}; +surfpbl7=newreg; +Line Loop(surfpbl7)={109,113,117,121}; +surfpbl8=newreg; +Line Loop(surfpbl8)={110,114,118,122}; +Plane Surface(surfpbl8+1)={surfpbl7,surfpbl8}; +surfpbl9=newreg; +Line Loop(surfpbl9)={124,107,-128,-110}; +Ruled Surface(surfpbl9+1)={surfpbl9}; +surfpbl10=newreg; +Line Loop(surfpbl10)={128,111,-126,-114}; +Ruled Surface(surfpbl10+1)={surfpbl10}; +surfpbl11=newreg; +Line Loop(surfpbl11)={126,115,-130,-118}; +Ruled Surface(surfpbl11+1)={surfpbl11}; +surfpbl12=newreg; +Line Loop(surfpbl12)={130,119,-124,-122}; +Ruled Surface(surfpbl12+1)={surfpbl12}; + +volpbc=newreg; +Surface Loop(volpbc)={surfpbc1+1,surfpbc3+1,surfpbc4+1,surfpbc5+1,surfpbc6+1,surfpbc7+1,surfpbc9+1,surfpbc10+1,surfpbc11+1,surfpbc12+1,surfpbc13+1,surfpbc15+1,surfpbc16+1,surfpbc17+1,surfpbc18+1,surfpbc20+1,surfpbc21+1,surfpbc22+1,surfpbc23+1,surfpbc24+1,Fomes_Surf5[{1:6}]}; +Volume(volpbc+1)={volpbc}; + + +volpbl=newreg; +Surface Loop(volpbl)={surfpbl2+1,surfpbl3+1,surfpbl4+1,surfpbl5+1,surfpbl6+1,surfpbl8+1,surfpbl9+1,surfpbl10+1,surfpbl11+1,surfpbl12+1,Fomes_Surf2[{1:6}]}; +Volume(volpbl+1)={volpbl}; +Printf("num %g",volpbl+1); + +// definition des entites physiques + + +Physical Surface(7776)={surfpbc1+1,surfpbc3+1,surfpbc4+1,surfpbc5+1,surfpbc6+1,surfpbc7+1,surfpbc9+1,surfpbc10+1,surfpbc11+1,surfpbc12+1,surfpbc13+1,surfpbc15+1,surfpbc16+1,surfpbc17+1,surfpbc18+1,surfpbc20+1,surfpbc21+1,surfpbc22+1,surfpbc23+1,surfpbc24+1}; + +Physical Surface(7777)={surfpbl2+1,surfpbl3+1,surfpbl4+1,surfpbl5+1,surfpbl6+1,surfpbl8+1,surfpbl9+1,surfpbl10+1,surfpbl11+1,surfpbl12+1}; +Physical Surface(7778)={Fomes_Surf1[{1:6}],Fomes_Surf2[{1:6}],Fomes_Surf3[{1:6}],Fomes_Surf4[{1:6}],Fomes_Surf5[{1:6}],Fomes_Surf6[{1:6}],Fomes_Surf7[{1:6}],Fomes_Surf8[{1:6}],Fomes_Surf9[{1:6}],Fomes_Surf10[{1:6}],Fomes_Surf11[{1:6}]}; + + diff --git a/benchmarks/3d/magnetron/magnetron2.geo b/benchmarks/3d/magnetron/magnetron2.geo new file mode 100644 index 0000000000..d5578b2b83 --- /dev/null +++ b/benchmarks/3d/magnetron/magnetron2.geo @@ -0,0 +1,296 @@ +mm = 0.001 ; // 1 milimetre = 0.001 metre +lc = 2.2*mm ; // unite de base min pour la taille caracteristique du maillage + +lcpba = lc ; // lc plaques base centrale et laterale +lcrint1 = 2.6*lc ; // lc coquille spherique superieure +lcrext1 = 2.9*lcrint1 ; // lc coquille spherique infini superieure + +// Definition de la plaque base centrale + +r1pbc = 3*mm; +r2pbc = 5*mm; +r3pbc = 19.75*mm; +r4pbc = 18*mm; +e1pbc = 2*mm; +e2pbc = 4*mm; +e3pbc = 6*mm; + +Point(1) = { r1pbc , 0.0 , 0.0 , lcpba }; +Point(2) = { r2pbc , 0.0 , 0.0 , lcpba }; +Point(3) = { r2pbc , 0.0 , e1pbc , lcpba }; +Point(4) = { r3pbc , 0.0 , e1pbc , lcpba }; +Point(5) = { r3pbc , 0.0 , e2pbc , lcpba }; +Point(6) = { r4pbc , 0.0 , e2pbc , lcpba }; +Point(7) = { r4pbc , 0.0 , e3pbc , lcpba }; +Point(8) = { r1pbc , 0.0 , e3pbc , lcpba }; + +Point(9) = { 0.0 , r1pbc , 0.0 , lcpba }; +Point(10) = { 0.0 , r2pbc , 0.0 , lcpba }; +Point(11) = { 0.0 , r2pbc , e1pbc , lcpba }; +Point(12) = { 0.0 , r3pbc , e1pbc , lcpba }; +Point(13) = { 0.0 , r3pbc , e2pbc , lcpba }; +Point(14) = { 0.0 , r4pbc , e2pbc , lcpba }; +Point(15) = { 0.0 , r4pbc , e3pbc , lcpba }; +Point(16) = { 0.0 , r1pbc , e3pbc , lcpba }; + + +Line(20) = {1,2}; +Line(21) = {2,3}; +//Line(22) = {3,4}; +Line(23) = {4,5}; +Line(24) = {5,6}; +Line(25) = {6,7}; +Line(26) = {7,8}; +Line(27) = {8,1}; + +Line(28) = {9,10}; +Line(29) = {10,11}; +Line(30) = {11,12}; +Line(31) = {12,13}; +Line(32) = {13,14}; +Line(33) = {14,15}; +Line(34) = {15,16}; +Line(35) = {16,9}; + +centre1=newp;Point(centre1)= { 0.0, 0.0 , 0.0 , lcpba }; +centre2=newp;Point(centre2)= { 0.0, 0.0 , e1pbc , lcpba }; +centre3=newp;Point(centre3)= { 0.0, 0.0 , e2pbc , lcpba }; +centre4=newp;Point(centre4)= { 0.0, 0.0 , e3pbc , lcpba }; + +Circle(40) = {1,centre1,9}; +Circle(41) = {2,centre1,10}; +Circle(42) = {3,centre2,11}; +Circle(43) = {4,centre2,12}; +Circle(44) = {5,centre3,13}; +Circle(45) = {6,centre3,14}; +Circle(46) = {7,centre4,15}; +Circle(47) = {8,centre4,16}; + +// Definition de la plaque base laterale + +r1pbl = 60*mm; +r2pbl = 74*mm; + +Point(51) = { r1pbl , 0.0 , e1pbc , lcpba }; +Point(52) = { r2pbl , 0.0 , e1pbc , lcpba }; +Point(53) = { r2pbl , 0.0 , e3pbc , lcpba }; +Point(54) = { r1pbl , 0.0 , e3pbc , lcpba }; + +Point(55) = { 0.0 , r1pbl , e1pbc , lcpba }; +Point(56) = { 0.0 , r2pbl , e1pbc , lcpba }; +Point(57) = { 0.0 , r2pbl , e3pbc , lcpba }; +Point(58) = { 0.0 , r1pbl , e3pbc , lcpba }; + +//Line(60) = {51,52}; +Line(61) = {52,53}; +Line(62) = {53,54}; +Line(63) = {54,51}; +Line(64) = {55,56}; +Line(65) = {56,57}; +Line(66) = {57,58}; +Line(67) = {58,55}; + +Circle(70) = {51,centre2,55}; +Circle(71) = {52,centre2,56}; +Circle(72) = {53,centre4,57}; +Circle(73) = {54,centre4,58}; + +//introduction aimants + +iFom=1;LFom=10.5*mm; lcFom=lc ;L1Fom=7*mm; +h1Fom=13*mm;R1Fom=26*mm;R2Fom=35*mm;angle=30*Pi/180; +xFom=39*mm;yFom=0;zFom=15*mm; +Include "forme2.geo"; +Coherence; + +iFom=2;LFom=21*mm; lcFom=lc ;L1Fom=7*mm; +h1Fom=13*mm;R1Fom=26*mm;R2Fom=35*mm;angle=30*Pi/180;theta=61; +xFom=39.2*mm;yFom=-10*mm;zFom=15*mm; +Include "forme1-old.geo"; +Coherence; + +//definition du volume de la plaque base centrale +//premiere etape ligne manquante (1) + +axex1=newreg; +Line(axex1)={3,Fomes_Point12[1]} ; +axex2=newreg; +Line(axex2)={Fomes_Point11[1],4} ; + +//deuxieme etape definir surface (10) + +surfpbc1=newreg; +Line Loop(surfpbc1)={20,21,axex1,-Fomes_Linep11p12[1],axex2,23,24,25,26,27}; +Plane Surface(surfpbc1+1)={surfpbc1}; +surfpbc2=newreg; +Line Loop(surfpbc2)={28,29,30,31,32,33,34,35}; +Plane Surface(surfpbc2+1)={surfpbc2}; +surfpbc3=newreg; +Line Loop(surfpbc3)={27,40,-35,-47}; +Plane Surface(surfpbc3+1)={surfpbc3}; +surfpbc4=newreg; +Line Loop(surfpbc4)={20,41,-28,-40}; +Plane Surface(surfpbc4+1)={surfpbc4}; +surfpbc5=newreg; +Line Loop(surfpbc5)={21,42,-29,-41}; +Plane Surface(surfpbc5+1)={surfpbc5}; +surfpbc6=newreg; +Line Loop(surfpbc6)={axex1,Fomes_Linep12p13[1],Fomes_Linep13p14[1],Fomes_Linep14p11[1],axex2,43,-30,-42}; +Plane Surface(surfpbc6+1)={surfpbc6,Fomes_LineLoop5[2]}; +surfpbc7=newreg; +Line Loop(surfpbc7)={23,44,-31,-43}; +Plane Surface(surfpbc7+1)={surfpbc7}; +surfpbc8=newreg; +Line Loop(surfpbc8)={24,45,-32,-44}; +Plane Surface(surfpbc8+1)={surfpbc8}; +surfpbc9=newreg; +Line Loop(surfpbc9)={25,46,-33,-45}; +Plane Surface(surfpbc9+1)={surfpbc9}; +surfpbc10=newreg; +Line Loop(surfpbc10)={26,47,-34,-46}; +Plane Surface(surfpbc10+1)={surfpbc10}; +volpbc=newreg; +Surface Loop(volpbc)={surfpbc1+1,surfpbc2+1,surfpbc3+1,surfpbc4+1,surfpbc5+1,surfpbc6+1,surfpbc7+1,surfpbc8+1,surfpbc9+1,surfpbc10+1,Fomes_Surf5[{1:2}]}; +Volume(volpbc+1)={volpbc}; + +//definition du volume de la plaque base laterale +//premiere etape ligne manquante (1) + +axex3=newreg; +Line(axex3)={51,Fomes_Point5[1]} ; +axex4=newreg; +Line(axex4)={Fomes_Point4[1],52} ; +//deuxieme etape definir surface (6) + +surfpbl1=newreg; +Line Loop(surfpbl1)={axex3,-Fomes_Linep4p5[1],axex4,61,62,63}; +Plane Surface(surfpbl1+1)={surfpbl1}; +surfpbl2=newreg; +Line Loop(surfpbl2)={64,65,66,67}; +Plane Surface(surfpbl2+1)={surfpbl2}; +surfpbl3=newreg; +Line Loop(surfpbl3)={-63,73,67,-70}; +Ruled Surface(surfpbl3+1)={surfpbl3}; +surfpbl4=newreg; +Line Loop(surfpbl4)={70,64,-71,-axex4,Fomes_Linep4p9[1],Fomes_Linep9p10[1],-Fomes_Linep5p10[1],-axex3}; +Plane Surface(surfpbl4+1)={surfpbl4,Fomes_LineLoop2[2]}; +surfpbl5=newreg; +Line Loop(surfpbl5)={61,72,-65,-71}; +Ruled Surface(surfpbl5+1)={surfpbl5}; +surfpbl6=newreg; +Line Loop(surfpbl6)={62,73,-66,-72}; +Plane Surface(surfpbl6+1)={surfpbl6}; +volpbl=newreg; +Surface Loop(volpbl)={surfpbl1+1,surfpbl2+1,surfpbl3+1,surfpbl4+1,surfpbl5+1,surfpbl6+1,Fomes_Surf2[{1:2}]}; +Volume(volpbl+1)={volpbl}; + +//creation des points pour creer les sphere de transfo inf + +rint = 95. *mm ; // rayon interne coquille spherique +rext = 1.5 * rint ; // rayon externe coquille spherique + +tranZ=10*mm; +Point(350) = { rint , 0.0 , tranZ , lcrint1 }; +Point(351) = { rext , 0.0 , tranZ , lcrext1 }; +Point(352) = { 0.0 , rint , tranZ , lcrint1 }; +Point(353) = { 0.0 , rext , tranZ , lcrext1 }; +Point(354) = { 0.0 , 0.0 , rext+tranZ , lcrext1 }; +Point(355) = { 0.0 , 0.0 , rint+tranZ , lcrint1 }; +Point(356) = { 0.0 , 0.0 , -rint+tranZ , lcrint1 }; +Point(357) = { 0.0 , 0.0 , -rext+tranZ , lcrext1 }; + +Line(358)={centre1,356}; +Line(359)={356,357}; +Line(360)={centre1,355}; +Line(361)={355,354}; + +centre=newreg; +Point(centre) = { 0.0 , 0.0 , tranZ , lcpba }; +Circle(362) = {350, centre,355}; +Circle(363) = {351, centre,354}; +Circle(364) = {350, centre,356}; +Circle(365) = {351, centre,357}; +Circle(366) = {352, centre,355}; +Circle(367) = {353, centre,354}; +Circle(368) = {352, centre,356}; +Circle(369) = {353, centre,357}; +Circle(370) = {350, centre,352}; +Circle(371) = {351, centre,353}; + +Line Loop(372) = {362,-366,-370}; +Ruled Surface(373) = {372}; +Line Loop(374) = {363,-367,-371}; +Ruled Surface(375) = {374}; +Line Loop(376) = {364,-368,-370}; +Ruled Surface(377) = {376}; +Line Loop(378) = {365,-369,-371}; +Ruled Surface(379) = {378}; +Line Loop(380) = {361,-363,365,-359,-364,362}; +Plane Surface(381) = {380}; +Line Loop(382) = {361,-367,369,-359,-368,366}; +Plane Surface(383) = {382}; + +Surface Loop(384) = {373,375,377,379,381,383}; +Volume(385) = {384}; + +//Surfaces et volume manquants air + +surfair1 = newreg; +Line Loop(surfair1)= {358,-364,362,-360}; +//definir lineloop axex +lineloo1 = newreg; +Line Loop(lineloo1)= {20,21,axex1,-Fomes_Linep3p12[1],Fomes_Linep3p4[1],axex4,61,62,63,axex3,Fomes_Linep5p2[1],Fomes_Linep2p11[1],axex2,23,24,25,26,27}; +Plane Surface(surfair1+1)= {surfair1,lineloo1}; +surfair2 = newreg; +Line Loop(surfair2)= {358,-368,366,-360}; +Plane Surface(surfair2+1)= {surfair2,surfpbc2,surfpbl2}; + +surfcent[]={surfpbc3+1,surfpbc4+1,surfpbc5+1,surfpbc6+1,surfpbc7+1,surfpbc8+1,surfpbc9+1,surfpbc10+1}; +surflat[]={surfpbl3+1,surfpbl4+1,surfpbl5+1,surfpbl6+1}; +surfaim[]={Fomes_Surf1[{1:2}],Fomes_Surf4[{1:2}],Fomes_Surf6[{1:2}],Fomes_Surf7[{1:2}],Fomes_Surf8[{1:2}],Fomes_Surf9[2],Fomes_Surf10[2],Fomes_Surf11[{1:2}]}; + +volair = newreg; +Surface Loop(volair)={surfair1+1,surfair2+1,surfcent[],surflat[],surfaim[],373,377}; +Volume(volair+1) ={volair}; + +// definition des entites physiques + +Physical Volume(9999)={volpbc+1,volpbl+1}; +Physical Volume(9998)={volair+1}; +Physical Volume(9997)={385}; + +Physical Volume(8888)={Fomes_Volume[1]}; +Physical Volume(8887)={Fomes_Volume[2]}; + + +Physical Surface(7776)={375,379}; +Physical Surface(7777)={surfair1+1,381,surfair2+1,383,surfpbc1+1,surfpbc2+1,surfpbl1+1,surfpbl2+1,Fomes_Surf9[1],Fomes_Surf10[1]}; + +/* + +Point(900) = { 0.0 , 50*mm , 0.0 , lc }; +Point(901) = { 50*mm , 0*mm , 0.0 , lc }; +Point(902) = { 0.0 , 30*mm , 0.0 , lc }; +Point(903) = { 30*mm , 0*mm , 0.0 , lc }; + +Point(904) = { 0.0 , 60*mm , 0.0 , lc }; +Point(905) = { 60*mm , 0*mm , 0.0 , lc }; + +Circle(906) = {900,centre1,901}; +Circle(907) = {902,centre1,903}; +Circle(908) = {904,centre1,905}; + +Printf("surf1 %g surf2 %g surf11 %g",surfpbl1+1,surfpbl2+1,surfpbl6+1); + +For i In {93:113:2} +Symmetry { 1,0,0,0 } { + Duplicata {Surface{i+2};} +} +EndFor + +For i In {1:volpb+190} +Symmetry { 0,1,0,0 } { + Duplicata {Surface{i};} +} +EndFor +*/ diff --git a/benchmarks/3d/magnetron/quacylin.geo b/benchmarks/3d/magnetron/quacylin.geo new file mode 100644 index 0000000000000000000000000000000000000000..685762f76edff58fb97377cd492280cc1e6d8be1 GIT binary patch literal 2090 zcma)6%ZeK@5X{-&f9RuwWsK)#J0_PHLJoUaHjv8_!qC>*1KP2eN0Lq0e^0k0k7SJr zJK$%PO4X{GSuU6Gxv#OS&Nb{`R8=3E3O~SfLI5_h>?D+c7Lc%j^AjAZ@>zDWfdego zvOd5`R>xBZC;Dv`!ss#!QP#ZdH_-&VnD;;bTY{&uDUp^`ZC4>ESs%L-D0FKE-+1vo zolGYHdIcY$mcR54?$1@-&GhO${qvXib;bmLvIG7Uz%J-7qx=dxBa*}-$sjW4!I#M! zMABF!9YlC%y6iy=ieo3nOcv{8V;vH^o@mZ_#AD^LQa&gRCf=r0#7f1W#DmdwW45s; zo{xOW_J;{;^;prb@1#vJnj``+@nA9nQxB#iF!NwG0&@@MBe3vb!65rZ*RVz&cW_tL za)!2IdL?xBYHXt`P{6Sb(uvTy<G6kV99s~b3SBsk%Rb=P@OiJqaa^ha$HvN>)Nx#1 z0mlZWGw)|@GYvRv6Do6zA2a<XVC}0070th~Jen=oa(jcgwZxnbYM9Y?fDcozv=17u z;&QN$8m|H~aHf5pXd=55%)ogdzMznTj=AMNaa@n!Li^1ZcvZB0-~5z1z0%*nj-I7F zpNcyJcjvR7DO()O1a8CvsTgpt%38wLzIiH95@BvBYGs2|aj~3`Z5I{-w<NS43ndpJ z*BTYK&k5NIvZI8A3VPAbv8(hV=IW*5nmRGtRm=sZ?CQ2yb`f*;j*9#2#B8bQpo|!g zNu$6+ujIj>SAG#QH<_>2r?QoNsKfotCmZJbrR=+F0-ab$;EkBzpHYf73mJ_1ekeMm z81)Y#MN?apJ+{HE!YUNK9lAC53wsrc{0J5myjJk$H2$}<>YwGTwPUwl(mpty7?*9B a+>tE7uJ;(bddHnzE+1sqH#L8sPW}PG8Bag} literal 0 HcmV?d00001 diff --git a/benchmarks/3d/magnetron/traphedre1.geo b/benchmarks/3d/magnetron/traphedre1.geo new file mode 100644 index 0000000000..3009474676 --- /dev/null +++ b/benchmarks/3d/magnetron/traphedre1.geo @@ -0,0 +1,113 @@ + + angle=30*Pi/180; + chouilla=0.0005; + R = RBox; + racine=(Tan[angle]*chouilla+Sqrt[R^2-chouilla^2+(R^2*Tan[angle]^2)])/(1+Tan[angle]^2); + + + p1 = newp; Point(p1) = {xBox+h1Box,yBox-(h1Box*Tan[angle]-chouilla) , zBox, lcBox} ; + p2 = newp; Point(p2) = {xBox+racine,yBox-(racine*Tan[angle]-chouilla), zBox, lcBox} ; + p3 = newp; Point(p3) = {xBox+h2Box,yBox-(h2Box*Tan[angle]-chouilla) , zBox, lcBox} ; + p4 = newp; Point(p4) = {xBox+h2Box,yBox+(h2Box*Tan[angle]-chouilla) , zBox, lcBox} ; + p5 = newp; Point(p5) = {xBox+racine,yBox+(racine*Tan[angle]-chouilla), zBox, lcBox} ; + p6 = newp; Point(p6) = {xBox+h1Box,yBox+(h1Box*Tan[angle]-chouilla) , zBox, lcBox} ; + + p7 = newp; Point(p7) = {xBox+h1Box,yBox-(h1Box*Tan[angle]-chouilla) , zBox+epBox, lcBox} ; + p8 = newp; Point(p8) = {xBox+h2Box,yBox-(h2Box*Tan[angle]-chouilla), zBox+epBox, lcBox} ; + p9 = newp; Point(p9) = {xBox+h2Box,yBox+(h2Box*Tan[angle]-chouilla), zBox+epBox, lcBox} ; + p10 = newp; Point(p10) = {xBox+h1Box,yBox+(h1Box*Tan[angle]-chouilla) , zBox+epBox, lcBox} ; + + p11 = newp; Point(p11) = {xBox+racine,yBox-(racine*Tan[angle]-chouilla), zBox-difBox, lcBox} ; + p12 = newp; Point(p12) = {xBox+racine,yBox+(racine*Tan[angle]-chouilla), zBox-difBox, lcBox} ; + + + Rotate{{0,0,1},{xBox,yBox,zBox},thetaBox*Pi/180}{ Point{p1}; } + Rotate{{0,0,1},{xBox,yBox,zBox},thetaBox*Pi/180}{ Point{p2}; } + Rotate{{0,0,1},{xBox,yBox,zBox},thetaBox*Pi/180}{ Point{p3}; } + Rotate{{0,0,1},{xBox,yBox,zBox},thetaBox*Pi/180}{ Point{p4}; } + Rotate{{0,0,1},{xBox,yBox,zBox},thetaBox*Pi/180}{ Point{p5}; } + Rotate{{0,0,1},{xBox,yBox,zBox},thetaBox*Pi/180}{ Point{p6}; } + Rotate{{0,0,1},{xBox,yBox,zBox},thetaBox*Pi/180}{ Point{p7}; } + Rotate{{0,0,1},{xBox,yBox,zBox},thetaBox*Pi/180}{ Point{p8}; } + Rotate{{0,0,1},{xBox,yBox,zBox},thetaBox*Pi/180}{ Point{p9}; } + Rotate{{0,0,1},{xBox,yBox,zBox},thetaBox*Pi/180}{ Point{p10}; } + Rotate{{0,0,1},{xBox,yBox,zBox},thetaBox*Pi/180}{ Point{p11}; } + Rotate{{0,0,1},{xBox,yBox,zBox},thetaBox*Pi/180}{ Point{p12}; } + + Boxes_Point1[iBox] = p1 ; + Boxes_Point2[iBox] = p2 ; + Boxes_Point3[iBox] = p3 ; + Boxes_Point4[iBox] = p4 ; + Boxes_Point5[iBox] = p5 ; + Boxes_Point6[iBox] = p6 ; + Boxes_Point7[iBox] = p7 ; + Boxes_Point8[iBox] = p8 ; + Boxes_Point9[iBox] = p9 ; + Boxes_Point10[iBox] = p10 ; + Boxes_Point11[iBox] = p11 ; + Boxes_Point12[iBox] = p12 ; + + c1 = newreg; Line(c1) = {p1,p2}; + c2 = newreg; Line(c2) = {p2,p3}; + c3 = newreg; Line(c3) = {p3,p4}; + c4 = newreg; Line(c4) = {p4,p5}; + c5 = newreg; Line(c5) = {p5,p6}; + c6 = newreg; Line(c6) = {p6,p1}; + c7 = newreg; Circle(c7) = {p2,pcen,p5}; + c8 = newreg; Line(c8) = {p7,p8}; + c9 = newreg; Line(c9) = {p8,p9}; + c10 = newreg; Line(c10) = {p9,p10}; + c11 = newreg; Line(c11) = {p10,p7}; + c12 = newreg; Line(c12) = {p1,p7}; + c13 = newreg; Line(c13) = {p3,p8}; + c14 = newreg; Line(c14) = {p4,p9}; + c15 = newreg; Line(c15) = {p6,p10}; + c16 = newreg; Line(c16) = {p2,p11}; + c17 = newreg; Line(c17) = {p5,p12}; + c18 = newreg; Circle(c18) = {p11,pcen2,p12}; + + Boxes_Linep1p2[iBox] = c1 ; + Boxes_Linep2p3[iBox] = c2 ; + Boxes_Linep3p4[iBox] = c3 ; + Boxes_Linep4p5[iBox] = c4 ; + Boxes_Linep5p6[iBox] = c5 ; + Boxes_Linep6p1[iBox] = c6 ; + Boxes_Linep2p5[iBox] = c7 ; + Boxes_Linep7p8[iBox] = c8 ; + Boxes_Linep8p9[iBox] = c9 ; + Boxes_Linep9p10[iBox] = c10 ; + Boxes_Linep10p7[iBox] = c11 ; + Boxes_Linep1p7[iBox] = c12 ; + Boxes_Linep3p8[iBox] = c13 ; + Boxes_Linep4p9[iBox] = c14 ; + Boxes_Linep6p10[iBox] = c15 ; + Boxes_Linep2p11[iBox] = c16 ; + Boxes_Linep5p12[iBox] = c17 ; + Boxes_Linep11p12[iBox] = c18 ; + + + l1 = newreg; Line Loop(l1) = {c1,c7,c5,c6}; Plane Surface(l1+1) = {l1}; + l2 = newreg; Line Loop(l2) = {c2,c3,c4,-c7}; Plane Surface(l2+1) = {l2}; + l3 = newreg; Line Loop(l3) = {c8,c9,c10,c11}; Plane Surface(l3+1) = {l3}; + l4 = newreg; Line Loop(l4) = {c1,c2,c13,-c8,-c12}; Plane Surface(l4+1) = {l4}; + l5 = newreg; Line Loop(l5) = {c3,c14,-c9,-c13}; Plane Surface(l5+1) = {l5}; + l6 = newreg; Line Loop(l6) = {c4,c5,c15,-c10,-c14}; Plane Surface(l6+1) = {l6}; + l7 = newreg; Line Loop(l7) = {c6,c12,-c11,-c15}; Plane Surface(l7+1) = {l7}; + l8 = newreg; Line Loop(l8) = {c16,c18,-c17,-c7}; Ruled Surface(l8+1) = {l8}; + + Boxes_LineLoop1[iBox] = l1 ;Boxes_PlanSurf1[iBox] = l1+1; + Boxes_LineLoop2[iBox] = l2 ;Boxes_PlanSurf2[iBox] = l2+1; + Boxes_LineLoop3[iBox] = l3 ;Boxes_PlanSurf3[iBox] = l3+1; + Boxes_LineLoop4[iBox] = l4 ;Boxes_PlanSurf4[iBox] = l4+1; + Boxes_LineLoop5[iBox] = l5 ;Boxes_PlanSurf5[iBox] = l5+1; + Boxes_LineLoop6[iBox] = l6 ;Boxes_PlanSurf6[iBox] = l6+1; + Boxes_LineLoop7[iBox] = l7 ;Boxes_PlanSurf7[iBox] = l7+1; + Boxes_LineLoop8[iBox] = l8 ;Boxes_PlanSurf8[iBox] = l8+1; + + s = newreg; Surface Loop(s) = {l1+1,l2+1,l3+1,l4+1,l5+1,l6+1,l7+1}; Volume(s+1) = s ; + + Boxes_SurfaceLoop[iBox] = s ; + Boxes_Volume[iBox] = s+1 ; + + + diff --git a/benchmarks/3d/magnetron/traphedre2.geo b/benchmarks/3d/magnetron/traphedre2.geo new file mode 100644 index 0000000000..ff97959d34 --- /dev/null +++ b/benchmarks/3d/magnetron/traphedre2.geo @@ -0,0 +1,115 @@ + + angle=30*Pi/180; + chouilla=0.0005; + R = RBox; + racine=(Tan[angle]*chouilla+Sqrt[R^2-chouilla^2+(R^2*Tan[angle]^2)])/(1+Tan[angle]^2); + + + p1 = newp; Point(p1) = {xBox+h1Box,yBox-(h1Box*Tan[angle]-chouilla) , zBox, lcBox} ; + p2 = newp; Point(p2) = {xBox+racine,yBox-(racine*Tan[angle]-chouilla), zBox, lcBox} ; + p3 = newp; Point(p3) = {xBox+h2Box,yBox-(h2Box*Tan[angle]-chouilla) , zBox, lcBox} ; + p4 = newp; Point(p4) = {xBox+h2Box,yBox , zBox, lcBox} ; + + p6 = newp; Point(p6) = {xBox+h1Box,yBox , zBox, lcBox} ; + + p7 = newp; Point(p7) = {xBox+h1Box,yBox-(h1Box*Tan[angle]-chouilla) , zBox+epBox, lcBox} ; + p8 = newp; Point(p8) = {xBox+h2Box,yBox-(h2Box*Tan[angle]-chouilla), zBox+epBox, lcBox} ; + p9 = newp; Point(p9) = {xBox+h2Box,yBox, zBox+epBox, lcBox} ; + p10 = newp; Point(p10) = {xBox+h1Box,yBox, zBox+epBox, lcBox} ; + + p11 = newp; Point(p11) = {xBox+racine,yBox-(racine*Tan[angle]-chouilla), zBox-difBox, lcBox} ; + + + + Rotate{{0,0,1},{xBox,yBox,zBox},thetaBox*Pi/180}{ Point{p1}; } + Rotate{{0,0,1},{xBox,yBox,zBox},thetaBox*Pi/180}{ Point{p2}; } + Rotate{{0,0,1},{xBox,yBox,zBox},thetaBox*Pi/180}{ Point{p3}; } + Rotate{{0,0,1},{xBox,yBox,zBox},thetaBox*Pi/180}{ Point{p4}; } + p5 = newp; Point(p5) = {xBox+RBox,yBox, zBox, lcBox} ; + Rotate{{0,0,1},{xBox,yBox,zBox},thetaBox*Pi/180}{ Point{p5}; } + Rotate{{0,0,1},{xBox,yBox,zBox},thetaBox*Pi/180}{ Point{p6}; } + Rotate{{0,0,1},{xBox,yBox,zBox},thetaBox*Pi/180}{ Point{p7}; } + Rotate{{0,0,1},{xBox,yBox,zBox},thetaBox*Pi/180}{ Point{p8}; } + Rotate{{0,0,1},{xBox,yBox,zBox},thetaBox*Pi/180}{ Point{p9}; } + Rotate{{0,0,1},{xBox,yBox,zBox},thetaBox*Pi/180}{ Point{p10}; } + Rotate{{0,0,1},{xBox,yBox,zBox},thetaBox*Pi/180}{ Point{p11}; } + p12 = newp; Point(p12) = {xBox+RBox,yBox, zBox-difBox, lcBox} ; + Rotate{{0,0,1},{xBox,yBox,zBox},thetaBox*Pi/180}{ Point{p12}; } + + Boxes_Point1[iBox] = p1 ; + Boxes_Point2[iBox] = p2 ; + Boxes_Point3[iBox] = p3 ; + Boxes_Point4[iBox] = p4 ; + Boxes_Point5[iBox] = p5 ; + Boxes_Point6[iBox] = p6 ; + Boxes_Point7[iBox] = p7 ; + Boxes_Point8[iBox] = p8 ; + Boxes_Point9[iBox] = p9 ; + Boxes_Point10[iBox] = p10 ; + Boxes_Point11[iBox] = p11 ; + Boxes_Point12[iBox] = p12 ; + + c1 = newreg; Line(c1) = {p1,p2}; + c2 = newreg; Line(c2) = {p2,p3}; + c3 = newreg; Line(c3) = {p3,p4}; + c4 = newreg; Line(c4) = {p4,p5}; + c5 = newreg; Line(c5) = {p5,p6}; + c6 = newreg; Line(c6) = {p6,p1}; + c7 = newreg; Circle(c7) = {p2,pcen,p5}; + c8 = newreg; Line(c8) = {p7,p8}; + c9 = newreg; Line(c9) = {p8,p9}; + c10 = newreg; Line(c10) = {p9,p10}; + c11 = newreg; Line(c11) = {p10,p7}; + c12 = newreg; Line(c12) = {p1,p7}; + c13 = newreg; Line(c13) = {p3,p8}; + c14 = newreg; Line(c14) = {p4,p9}; + c15 = newreg; Line(c15) = {p6,p10}; + c16 = newreg; Line(c16) = {p2,p11}; + c17 = newreg; Line(c17) = {p5,p12}; + c18 = newreg; Circle(c18) = {p11,pcen2,p12}; + + Boxes_Linep1p2[iBox] = c1 ; + Boxes_Linep2p3[iBox] = c2 ; + Boxes_Linep3p4[iBox] = c3 ; + Boxes_Linep4p5[iBox] = c4 ; + Boxes_Linep5p6[iBox] = c5 ; + Boxes_Linep6p1[iBox] = c6 ; + Boxes_Linep2p5[iBox] = c7 ; + Boxes_Linep7p8[iBox] = c8 ; + Boxes_Linep8p9[iBox] = c9 ; + Boxes_Linep9p10[iBox] = c10 ; + Boxes_Linep10p7[iBox] = c11 ; + Boxes_Linep1p7[iBox] = c12 ; + Boxes_Linep3p8[iBox] = c13 ; + Boxes_Linep4p9[iBox] = c14 ; + Boxes_Linep6p10[iBox] = c15 ; + Boxes_Linep2p11[iBox] = c16 ; + Boxes_Linep5p12[iBox] = c17 ; + Boxes_Linep11p12[iBox] = c18 ; + + + l1 = newreg; Line Loop(l1) = {c1,c7,c5,c6}; Plane Surface(l1+1) = {l1}; + l2 = newreg; Line Loop(l2) = {c2,c3,c4,-c7}; Plane Surface(l2+1) = {l2}; + l3 = newreg; Line Loop(l3) = {c8,c9,c10,c11}; Plane Surface(l3+1) = {l3}; + l4 = newreg; Line Loop(l4) = {c1,c2,c13,-c8,-c12}; Plane Surface(l4+1) = {l4}; + l5 = newreg; Line Loop(l5) = {c3,c14,-c9,-c13}; Plane Surface(l5+1) = {l5}; + l6 = newreg; Line Loop(l6) = {c4,c5,c15,-c10,-c14}; Plane Surface(l6+1) = {l6}; + l7 = newreg; Line Loop(l7) = {c6,c12,-c11,-c15}; Plane Surface(l7+1) = {l7}; + l8 = newreg; Line Loop(l8) = {c16,c18,-c17,-c7}; Ruled Surface(l8+1) = {l8}; + + Boxes_LineLoop1[iBox] = l1 ;Boxes_PlanSurf1[iBox] = l1+1; + Boxes_LineLoop2[iBox] = l2 ;Boxes_PlanSurf2[iBox] = l2+1; + Boxes_LineLoop3[iBox] = l3 ;Boxes_PlanSurf3[iBox] = l3+1; + Boxes_LineLoop4[iBox] = l4 ;Boxes_PlanSurf4[iBox] = l4+1; + Boxes_LineLoop5[iBox] = l5 ;Boxes_PlanSurf5[iBox] = l5+1; + Boxes_LineLoop6[iBox] = l6 ;Boxes_PlanSurf6[iBox] = l6+1; + Boxes_LineLoop7[iBox] = l7 ;Boxes_PlanSurf7[iBox] = l7+1; + Boxes_LineLoop8[iBox] = l8 ;Boxes_PlanSurf8[iBox] = l8+1; + + s = newreg; Surface Loop(s) = {l1+1,l2+1,l3+1,l4+1,l5+1,l6+1,l7+1}; Volume(s+1) = s ; + + Boxes_SurfaceLoop[iBox] = s ; + Boxes_Volume[iBox] = s+1 ; + + + -- GitLab