I attach te source file.

  Lukas Oliva

(define-param r1 0.2)
(define-param r2 0.1)
(define-param eps1 5)
(define-param eps2 1)

(set! geometry-lattice (make lattice (size 1 1 no-size)
                         (basis1 0.5 0)
                         (basis2 0 0.5)))

(set! geometry
      (list (make cylinder
              (center 0 0 0) (radius r1) (height infinity)
              (material (make dielectric (epsilon eps1))))
            (make cylinder
              (center 0 0 0) (radius r2) (height infinity)
              (material (make dielectric (epsilon eps2))))))

; The k-points list, for the Brillouin zone of a triangular lattice:
(set! k-points (list (vector3 0 0 0)          ; Gamma
                     (vector3 0 0.5 0)        ; M
                     (vector3 0.5 0.5 0) ; K
                     (vector3 0 0 0)))        ; Gamma
(define-param k-interp 4) ; number of k-points to interpolate
(set! k-points (interpolate k-interp k-points))

(set-param! resolution 32)
(set-param! num-bands 8)

(define (tm_gap1 r1 r2 eps1 eps2)
    (set! geometry
      (list (make cylinder
              (center 0 0 0) (radius r1) (height infinity)
              (material (make dielectric (epsilon eps1))))
            (make cylinder
              (center 0 0 0) (radius r2) (height infinity)
              (material (make dielectric (epsilon eps2))))))

    (print "Conf: r1 = "r1" r2 = "r2" eps1 = " eps1"eps2 = "eps2"\n")
  (if ( (r1 <= r2)||( eps1<=eps2))
    (print "Chyba: r1 = "r1" r2 = "r2" eps1 = " eps1"eps2 = "eps2"\n"))

    (run-tm)
    (retrieve-gap 1))

(define (te_gap1 r1 r2 eps1 eps2)
    (set! geometry
      (list (make cylinder
              (center 0 0 0) (radius r1) (height infinity)
              (material (make dielectric (epsilon eps1))))
            (make cylinder
              (center 0 0 0) (radius r2) (height infinity)
              (material (make dielectric (epsilon eps2))))))

    (print "Conf: r1 = "r1" r2 = "r2" eps1 = " eps1"eps2 = "eps2"\n")
  (if ( (r1 <= r2)||( eps1<=eps2))
    (print "Chyba: r1 = "r1" r2 = "r2" eps1 = " eps1"eps2 = "eps2"\n"))

    (run-te)
    (retrieve-gap 1))

 (run-tm)
 (define-param first_tm (retrieve-gap 1))
 (run-te)
 (define-param first_te (retrieve-gap 1))
(print "First TM maximum: " first_tm"\nFirst TE maximum :" first_te"\n")

(maximize-multiple tm_gap1 0.001)
(maximize-multiple te_gap1 0.001)

_______________________________________________
mpb-discuss mailing list
mpb-discuss@ab-initio.mit.edu
http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/mpb-discuss

Reply via email to