Ubuntu’da Elektromanyetik Dalga Simülasyon Programı MEEP Kurulumu ve Kullanımı
MEEP programı Elektromanyetik dalga çözümünde FDTD(Sonlu Farklar Zaman Domeni) simülasyon metodunu kullanmaktadır. En önemli özelliği tek simülasyonda geniş frekans bandında analiz yapılabilmesidir.
MEEP açık kaynak programı ile 2B ve 3B yapı tasarlayabilirsiniz. Tasarlanan yapının;
- İletim oranı
- Zaman içinde elektrik alan resmi ve animasyonu
- Kavite ise kalite faktörü
gibi özellikler simüle edilebilir.
Kurulum:
1 |
sudo apt-get install meep h5utils mayavi2 kate |
H5utils: MEEP programı verileri h5 dosya formatında oluşturur.
Mayavi2: Vtk formatındaki 3 boyutlu yapıları görselleştirmek için gerekli.
kate: Scheme dilinde parantezleri de renklendiren bir yazı editör.
komutunu vererek paket programları otomatik olarak kuruyoruz. Ubuntu 19 kullanıyor iseniz MEEP versiyonu aşağıdaki gibi olacaktır.
1 |
meep –version |
Meep 1.7.0, Copyright (C) 2005-2018 Massachusetts Insitute of Technology.
Using libctl 4.1.4 and Guile 2.2.6.
Kullanım:
Ubuntu’da Terminali açıyoruz. “deneme” adında klasör oluşturup, içine girip “deneme.ctl” adında “Scheme” dilinde yapımızı tasarlayacağımız ve MEEP programının çalıştıracağı kontrol dosyasını oluşturuyoruz.
1 2 3 |
mkdir deneme cd deneme touch deneme.ctl |
dosyayı direk çift tıklayarak veya aşağıdaki komut ile de açabilirsiniz
1 |
kate deneme.ctl |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
(reset-meep) ;MEEP i yeniden baslatir.birden fazla ctl dosyası çalıştırmak ;isterseniz reset-meep kodunu kaldırmanızı öneriyoruz. (define-param sx 16) ;x yönünde 16 birim (define-param sy 16) ;y yönünde 16 birim (define-param sz no-size) ;z yönü yok xy yapı için (define-param zyapi infinity) ;z yönü sonsuz xy yapı için ;(define-param sz 5) ;z yönü var xyz yapı için ;(define-param zyapi 5) ;z yönü var xyz yapı için (set! resolution 10) ;1 brim 10 nokta ile ifade ediliyor. 0.1 brimlik adım (define-param silikon 12) ;Silikon bağıl dielektrik sabiti (define-param hava 1.0) ;Havanın bağıl dielektrik sabiti (define-param r 0.9) (define-param a 1.8) ;örgü sabiti MEEP ve MPB programında 1 olmali. (define-param N 4) ;Kopyalama sayısı (set! pml-layers (list (make pml (thickness 1.0)))) ;1 brim kalınlıkta Elektromanyetik dalgayı emen bir duvar olusturuyoruz (set! geometry-lattice (make lattice (size sx sy sz))) ; 2 Boyutlu alan tanımlanıyor (set! geometry (append geometry ; combine lists of objects: (geometric-object-duplicates (vector3 a 0) 0 N ;(a 0) aralıklar ile N adet kopyala yana (make prism (vertices (list (vector3 (* r -1) 0 0) ;Sol kose (vector3 (* r -0.5) (/ (sqrt 3) 2) 0) ;Sol alt kose (vector3 (* r 0.5) (/ (sqrt 3) 2) 0) (vector3 r 0 0) (vector3 (* r 0.5) (/ (sqrt 3) -2) 0) (vector3 (* r -0.5) (/ (sqrt 3) -2) 0))) (axis 0 0 1) (height zyapi) ;z yon yukseklik (center -7 0) ;Merkez (material (make dielectric (epsilon silikon))))) (geometric-object-duplicates (vector3 0 a) 0 N ;(0 a) aralıklar ile N adet kopyala yukarıya (make prism (vertices (list (vector3 (* r -1) 0 0) (vector3 (* r -0.5) (/ (sqrt 3) 2) 0) (vector3 (* r 0.5) (/ (sqrt 3) 2) 0) (vector3 r 0 0) (vector3 (* r 0.5) (/ (sqrt 3) -2) 0) (vector3 (* r -0.5) (/ (sqrt 3) -2) 0))) (axis 0 0 1) (height zyapi) (center 0 0) (material (make dielectric (epsilon silikon))))))) (set! sources (list (make source (src (make continuous-src (wavelength (* 2 (sqrt 11))) (width 20))) (component Ez) (center -6.5 0) (size 0 1)))) (run-until 200 (at-beginning output-epsilon) (to-appended "ez" (at-every 0.6 output-efield-z))) |
meep deneme.ctl |tee deneme.out
Komutunu konsolda girerek simülasyonu çalıştırabilirsiniz. |tee: ekrana yazdır
h5topng -S3 deneme-eps-000000.00.h5
Komutu ile h5 dosyasındaki verileri 2 boyutlu resme çevirir.
h5ls deneme-ez.h5
deneme-ez.h5 dosyasında 0:332 zaman arasında 16×10 x 16×10 tane xy noktası için Elektrik alanın z bileşenindeki şiddet değerleri vardır.
h5topng -t 0:332 -R -Zc dkbluered -a yarg -A deneme-eps-000000.00.h5 deneme-ez.h5
Bu 333 zaman süresinde Ez şiddet değerlerini yapının üzerinde gösteren fotoğrafları verir.
convert deneme-ez.t*.png deneme.gif
bu png resimlerini birlestirerek gif formatında animasyona dönüştürür.
Teorik Bilgiler:
εr = ε / ε0
εr:Bağıl dielektrik sabiti
ε:Maddenin dielektrik sabiti
ε0:Boş uzayın dielektrik sabiti
3 Boyutlu Resmini Görmek için:
;(define-param sz 5) ;z yönü var xyz yapı için
;(define-param zyapi 5) ;z yönü var xyz yapı için
ctl dosyasında üstteki 2 kodun önündeki noktalı virgülleri silip , bu kodların üzerindeki iki z yönüyle ilgili kodun önüne noktalı virgül koymanız gerekmektedir. Tekrar simülasyonu çalıştırırak aşağıdaki komutları kosola vermelisiniz.
h5tovtk -o epsilon.vtk deneme-eps-000000.00.h5
mayavi2 -d epsilon.vtk -m IsoSurface &> /dev/null &
https://meep.readthedocs.io/en/latest/Scheme_Tutorials/Basics/
Sitesinde daha ayrıntılı ingilizce açıklamalar bulabilirsiniz.