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