Hi,

first I want to thank Steve for the advices to my problem with meep, but now I 
concentrate on calculations with mpb.
mpb doesn't provide information to confinement loss, but I consider to 
calculate it like it is done in the CUDOS MOF Utilities (described in: 
Multipole method for microstructured optical fibers II : implementation and 
results, B. T. Kuhlmey, T. P. White, G. Renversez, D. Maystre, L. C. Botten, C. 
Martijn de Sterke, and R. C. McPhedran, J. Opt. Soc. B. 19, pp. 2331-2340 
(2002)), as the ratio between the surface-integral of transvers Poyntingvector  
on a cylinder and the volume-integral of Sz. So write the atteched scm-file. I 
calculate PBG-fibers with hex-lattice. My questions are
1. It is rationally to do this?
2. The integrals takes relative long to calculate; is it becaus of the rotation 
of the position-vector?
3. What would be the best parameter for the radius of the region of 
integration, the core-radius or a radius which includes some of the rings of 
holes around the core?  

I doesn't had the time to verify this methode and to compare it wit CUDOS, but 
for the two fundamental modes I some times get diffrences between their losses 
of one order, which doubt me on this methode.    

Thanks in advance

Jan Leppert

--------------------------------------------------------------------
;LOSS.scm (L [1/m] and neff)

(define (head L) (car L)) ;Kopf=1.Element der Liste L
(define (tail L) (cdr L)) ;Schwanz=restl.Elemente der Liste L

(define (Ith i L) ;Fkt. zur Auswahl des i-ten Elements der Liste L
        (if (= i 1)
            (head L)
            (Ith (- i 1) (tail L))
        )
)

 (define Pi 3.14159)
 (define Rn 2.5)                                            ;Radius für 
Integrationsgebiet R=(Rn)*Pitch 
 (define (Sfeld sfeld n theta)                            ;Sfeld=S(Rn,theta)
         (cvector-field-get-point sfeld (Pos n theta))
         ;(print "Pos" (vector3-x (Pos n theta)) ", " (vector3-y (Pos n theta)) 
", " (vector3-z (Pos n theta)) "\n")
 ) 

 (define (funcSt sfeld theta)                                   ;transversal 
Komponente S
         (+ (* (vector3-x sfeld) (cos theta)) (* (vector3-y sfeld) (sin theta)))
 )
 (define (funcSz sfeld)                                   ;longitudinal 
Komponente S
         (vector3-z sfeld)
 )
 
 (define zAchse (vector3 0 0 1))                          ; z-Achse
 (define (Pos n theta)                                    ; Position=f(Rn,theta)
        ;(rotate-vector3 zAchse theta (vector3 n))
        ;(rotate-vector3 zAchse theta (vector3 (/ n (sqrt 3))))
        ;(rotate-vector3 zAchse theta (cartesian->reciprocal (vector3 n )))
        (rotate-vector3 zAchse theta (cartesian->lattice (vector3 n )))
 )
 (define VecStart (vector 0 0))
 (define VecEnde (vector Rn (* 2 Pi)))
 (define relerr 1);0.05)
 (define intSt 0)
 (define intSz 1)
 (define L 1)
 (define Imneff 1)

 (define (loss x x-max dx)
         (if (<= x x-max)
          (begin
                    ;   (get-dfield x)
          ;(if (>= (energy-in-core x) min-energ)
             (begin
                 (get-poynting x)
                 ;(field-map! Stransversal funcSt cur-field)
                 ;(field-map! Sz funcSz cur-field)
                 (set! intSt (integrate (lambda (var) (* (real-part (funcSt 
(Sfeld cur-field Rn var) var )) Rn)) 0 (* 2 Pi) relerr))
                 (set! intSz (integrate (lambda (var1 var2) (* (real-part 
(funcSz (Sfeld cur-field var1 var2))) var1) ) VecStart VecEnde relerr))
                 (set! L (/ (/ intSt intSz) (* pitch 0.000001)))       ; Loss 
in 1/m
                 (set! Imneff (/ (* L (/ (* pitch 0.000001) (Ith x freqs))) (* 
4 Pi)))   
                 (print "loss, band: " x ", omega: " (Ith x freqs) ",  int-St: 
" intSt ",  int-Sz: " intSz ", L: " L ", Im_neff: " Imneff "\n")
                 ;(print "energy-in-core - "(energy-in-core x))
                 (loss (+ x dx) x-max dx)
             )
          ;)
          )
         )
 )

 (print "loss, beta" kz "\n")
 ;implementation:
 ;(include "/home/leppert/mpb/LOSS.scm")
 ;(loss lossstart lossend step)
 ;lossstart...first band to calculate the loss
 ;lossend.....last band
 to calculate the loss
----------------------------------------------------------------------

_______________________________________________
mpb-discuss mailing list
[email protected]
http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/mpb-discuss

Reply via email to