From 63608644149d3692ae3e24bbfe6bf6e4047c5d6e Mon Sep 17 00:00:00 2001
From: Christophe Geuzaine <cgeuzaine@ulg.ac.be>
Date: Wed, 28 Nov 2001 16:52:53 +0000
Subject: [PATCH] maitresse, ses tresses

---
 benchmarks/2d/tresse2.geo | 53 +++++++++++++++++++++++++++++++
 benchmarks/2d/tresse3.geo | 66 +++++++++++++++++++++++++++++++++++++++
 2 files changed, 119 insertions(+)
 create mode 100644 benchmarks/2d/tresse2.geo
 create mode 100644 benchmarks/2d/tresse3.geo

diff --git a/benchmarks/2d/tresse2.geo b/benchmarks/2d/tresse2.geo
new file mode 100644
index 0000000000..c10a3f0356
--- /dev/null
+++ b/benchmarks/2d/tresse2.geo
@@ -0,0 +1,53 @@
+rayon = 0.008 ; 
+haut  = 0.024 ;           // hauteur du cylindre
+psi   = 40. * Pi / 180 ;  // angle de tressage par rapport a l'axe vertical z du cable
+nn    = 24 ;              // nbre de meplats (qui vont dans le meme sens) 
+nw    = 6 ;               // nombre de fils dans un meplat
+dw    = 0.0002 ;          // diametre des fils
+ampl  = 0.0004 ;          // amplitude du Cosinus
+v     = 1 ;               // je le pose arbitrairement
+omega = 1 / ( rayon * Tan(Pi/2-psi) ) ; Printf("omega = %g" , omega ) ;
+tmax = haut ; 
+nbr_pas_tot = 50 ;
+dt = tmax / nbr_pas_tot ;
+omdeph = nn * omega / 2;  // vitesse angulaire pour dephasage de Pi entre 2 meplats
+angm = dw/rayon/Cos(psi) ; 
+
+Geometry.AutoCoherence = 0;
+
+lc1 = 0.0011 ;
+
+For jj In {1:nn} 
+
+   For ii In {0:nbr_pas_tot} 
+
+      t = ii * dt ;
+      rf = rayon ; 
+      thetaf =  -nw*angm/2 + (jj-1)*2*Pi/nn + omega * t ; 
+      zf = v * t ;
+      aa = ampl * Cos( Pi/4 + (jj-1)*Pi + omdeph * t );
+      xf = (rf+aa) * Cos(thetaf) ; yf = (rf+aa) * Sin(thetaf) ;
+      num = (2*jj-1)*10000+ii;
+      Point(num) = { xf , yf , zf , lc1 } ;
+      tab1[ii] = num ;
+
+      thetaf =  -nw*angm/2 + (jj-1)*2*Pi/nn - omega * t ; 
+      aa = ampl * Cos( 3*Pi/4 + (jj-1)*Pi + omdeph * t );
+      xf = (rf+aa) * Cos(thetaf) ; yf = (rf+aa) * Sin(thetaf) ;
+      num = (2*jj)*10000+ii;
+      Point(num) = { xf , yf , zf , lc1 } ;
+      tab2[ii] = num;
+
+   EndFor
+
+   num = (2*jj-1)*10000+ii;
+   Spline(num) = tab1[];
+   Extrude Line { num , {0,0,1}, {0,0,0}, nw*angm }{Layers{5,num,1};Recombine;} ;
+
+   num = (2*jj)*10000+ii;
+   Spline(num) = tab2[];
+   Extrude Line { num , {0,0,1}, {0,0,0}, nw*angm }{Layers{5,num,1};Recombine;} ;
+
+EndFor      
+
+Coherence;
diff --git a/benchmarks/2d/tresse3.geo b/benchmarks/2d/tresse3.geo
new file mode 100644
index 0000000000..de0a5ec922
--- /dev/null
+++ b/benchmarks/2d/tresse3.geo
@@ -0,0 +1,66 @@
+rayon = 0.004 ; 
+haut  = 0.012 ;           // hauteur du cylindre
+psi   = 40. * Pi / 180 ;  // angle de tressage par rapport a l'axe vertical z du cable
+nn    = 24 ;              // nbre de meplats (qui vont dans le meme sens) 
+nw    = 5;               // nombre de fils dans un meplat
+dw    = 0.0002 ;          // diametre des fils
+ampl  = 0.0003 ;          // amplitude du Cosinus
+v     = 1 ;               // je le pose arbitrairement
+omega = 1 / ( rayon * Tan(Pi/2-psi) ) ; Printf("omega = %g" , omega ) ;
+tmax = haut ; 
+nbr_pas_tot = 30 ;
+dt = tmax / nbr_pas_tot ;
+omdeph = nn * omega / 2;  // vitesse angulaire pour dephasage de Pi entre 2 meplats
+angm = dw/rayon/Cos(psi) ; 
+
+Geometry.AutoCoherence = 0;
+
+lc1 = 0.0008 ;
+
+For jj In {1:nn} 
+
+   For ii In {0:nbr_pas_tot} 
+
+      t = ii * dt ;
+      rf = rayon ; 
+      thetaf =  -nw*angm/2 + (jj-1)*2*Pi/nn + omega * t ; 
+      zf = v * t ;
+      aa = ampl * Cos( Pi/4 + (jj-1)*Pi + omdeph * t );
+      xf = (rf+aa) * Cos(thetaf) ; yf = (rf+aa) * Sin(thetaf) ;
+      Point((2*jj-1)*1000+ii) = { xf , yf , zf , lc1 } ;
+      tab1[ii] = (2*jj-1)*1000+ii ;
+
+      thetaf =  -nw*angm/2 + (jj-1)*2*Pi/nn - omega * t ; 
+      aa = ampl * Cos( 3*Pi/4 + (jj-1)*Pi + omdeph * t );
+      xf = (rf+aa) * Cos(thetaf) ; yf = (rf+aa) * Sin(thetaf) ;
+      Point((2*jj)*1000+ii) = { xf , yf , zf , lc1 } ;
+      tab2[ii] = (2*jj)*1000+ii ;
+
+      EndFor
+     
+      Spline((2*jj-1)*1000+ii) = tab1[];
+//    Extrude Line { ((2*jj-1)*1000+ii) , {0,0,1}, {0,0,0}, nw*angm } ;
+      For kk In {1:nw-1}
+         Rotate { {0,0,1}, {0,0,0}, kk*angm}  { Duplicata { Line{(2*jj-1)*1000+ii} ; } }
+         EndFor
+
+      Spline((2*jj)*1000+ii) = tab2[];
+//    Extrude Line { ((2*jj)*1000+ii) , {0,0,1}, {0,0,0}, nw*angm } ;
+      For kk In {1:nw-1}
+         Rotate { {0,0,1}, {0,0,0}, kk*angm}  { Duplicata { Line{(2*jj)*1000+ii} ; } }
+         EndFor
+
+   EndFor      
+
+Coherence;
+
+b = rayon ; 
+L = 2*nn ;    
+N = nw ;       
+d = dw ;  
+ld = 4*Pi*b/L-N*d/Cos(psi) ;// small axis of the diamond shaped aperture (horizontal)
+Ld = ld/Tan(psi) ;          // Big axis of the diamond shaped aperture (vertical=z)
+P = 4*Pi*b/L/Tan(psi);      // Periode du tressage selon axe z vertical du cable
+n = L*L*Tan(psi)/(4*Pi*b) ; // number of apertures per unit length
+F = N*d*L/(4*Pi*rayon*Cos(psi)) ; Printf("Fill Factor = %g" , F ) ;
+K = 2*F-F*F ;                     Printf("Optical coverage = %g" , K ) ;
-- 
GitLab