FDTD法におけるフォトニック結晶光波回路の解析について
- FDTD法におけるフォトニック結晶光波回路の解析について
- FDTD法での入射に関する疑問や問題点について解説しました
- 入射初期の波頭の減衰やガウス波の孤立パルスの振幅保持に関する疑問を持ち、アドバイスを求めています
- ベストアンサー
FDTD法における入射について
現在FDTD法によるフォトニック結晶光波回路の解析を行っているのですが、入射が思うようにいきません。 僕が行っている解析はEz、Hx、Hy成分で構成されるTM波で、入射のさせかたは、解析領域におけるx=0の位置でEz成分のみについて、 Ez(x,y) = sin((y-y0)π/W) * sin(2πft) y0:波の中心 W :波の幅 f :入射波の周波数 として、時間的にも位置的にも正弦波の連続波として入射させています。Hx,Hyについてはなにも行っていません。 この入射の計算は、FDTDの電磁界を計算する前に入れており、入射の計算を行ったあとに電界と磁界をそれぞれ計算するようにしています。 しかしこのままでは発散していまってので、FDTDの電界の計算は入射位置を除いた(入射位置がEz(1,j)とするとEz(2,j)から)位置から行っています。 一応このやり方で導波路に波は伝搬するのですが、入射初期の波頭は減衰してなくなってしまいます。しかも遠くに伝搬するにしたがって波はどんどん減衰していき、定常応答を得るまでにかなりの時間を要します。波の振る舞いについてはこれで正しいのでしょうか? あと、時間と位置的にガウス波の孤立パルスも入射させてみたのですが、すぐに減衰して広がってしまって最初の振幅を保ったまま伝搬しません。なにかおかしい所があるのでしょうか?それともこれで正しいのでしょうか?FDTDに関する論文や本などには、入射についてあまり詳しく書いてないので確かめようがありません。どなたかアドバイスしてくれれば幸いです。 質問にまとまりがなく、わかりにくくて申し訳ありませんが、なにかちょっとしたことでもかまいませんので、ご回答をよろしくお願いします。
- asamaken
- お礼率55% (52/94)
- 物理学
- 回答数2
- ありがとう数3
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
いくつか気になるところがありますので、以下に挙げてみます。よろしければ参考になさってください。 1.励振方法に問題あり これは、今回の不具合には関係ないかもしれませんが、励振方法に問題があります。 Ez(x,y) = sin((y-y0)π/W) * sin(2πft) とのことですが、これでは励振面の電界に他の部分から伝播してきた電磁界の影響を盛り込むことができません。ちなみに、このような励振をhard sourceといいますが、やはり、 Ez(x,y)=Ez(x,y)+A*sin(ωt)-A*sin(ω(t-Δt)) とすべきだと思います。また、私の場合、電磁界の更新アルゴリズムは以下のようにしています。 電界の更新 電界の励振 PMLによる電界の更新 磁界の更新 PMLによる磁界の更新 なお、上式で-A*sin(ω(t-Δt))とした意味については、よーく考えてみてください。磁界の励振も行うとこの項は必要なくなるんですけどね。 2.励振面の位置がx=0である x=0の位置はPML吸収境界面になっていると思いますが、私の場合は吸収境界面と励振面を数セル離しています。まあ、問題ないような気もしますが。 3.光導波路には遮断周波数のようなものがある? 光導波路のことはよくは知らないのですが、導波管の遮断周波数fcのように、それ以下の周波数の電磁波を伝播させないというような特性はないのでしょうか? この部分、自信なしです。 参考文献:Allen Taflove,"COMPUTATIONAL ELECTRODYNAMICS The Finite-Difference Time-Domain Method",ARTECH HOUSE,1995.
その他の回答 (1)
- rei00
- ベストアンサー率50% (1133/2260)
素人がこんな事を言って申し訳ありませんが,どの様な状況での解析でしょうか。 御質問文から受ける印象では,大学か企業での研究の一環のように思えるのですが。そうだとすると,ここで御質問されるよりは,周りに居るであろう先輩なり指導者なりに相談されるのが先だと思います。
補足
ご回答ありがとうございます。 僕は大学生で、FDTDによる解析は卒業研究のテーマにしています。 rei00さんのおっしゃる通り、先生などに相談すべきなのですが、FDTDのことを知っていても使ったことがなく、詳しいところまで説明できる先生がいません。 そこで神にもすがる思いで質問した次第です。
関連するQ&A
- FDTD法でのソフトソース入射
以前ここで、FDTD法における入射について質問(No.67248)したのですが、そのときソフトソースの励振方法として、電界の入射を Ez(x,y)=Ez(x,y)+A*sin(ωt)-A*sin(ω(t-Δt)) と行えばよいというご指摘をTCMさんから得ました。 しかし、実際に上式のような入射方法をとったところ、電界の振幅が非常に小さく、伝播する振幅がAになりません。 また、電磁界の更新アルゴリズムも 電界の更新 電界の励振 PMLによる電界の更新 磁界の更新 PMLによる磁界の更新 のようにTCMさんと同じようにとったのですが、うまくいきません。 なにか解決方法があればご教授願います。お願いします。
- 締切済み
- 物理学
- FDTDの数値計算について
光波の伝搬の計算としてFDTD法を用いる事を考え、Scilabを用いた1次元のFDTD法をまず行うことを考えています。想定する状況は左端に光源があり、空気(屈折率1)を伝搬するという単純なものです。 そこでプログラムを以下のようにしました。 各パラメータは波長ramuda=500*10^-9,dz=ramuda/20,dt=dz/c,透磁率と誘電率mu=ep=1としています。 Hy(1:M)=0; Ex(1:M+1)=0; For n=1:N, Ex(1)=sin(n*dt*c/ramuda); Hy=Hy-dt./mu.*diff(Ex)/dz; Ex(2:M)=Ex(2:M)-dt./ep.*diff(Hy)/dz; end 宇野先生や橋本先生、小舘先生などの本を読む限り条件等はこれでよいはずなのですが、全く伝搬するような計算ができませんでした。数値計算自体慣れていないため、足りない部分があるかと思いますが全く見当がつきませんでした。どうか何が足りていない、何が間違っているなどありましたらご指摘いただきけないでしょうか。
- 締切済み
- 物理学
- FDTD法を用いた電磁界解析にOpenMPを導入
FDTD法を用いた電磁界解析にOpenMPを導入するにはどうしたらよいのでしょうか? ちなみに3次元のプログラムを作成しており、電磁界解析のエンジン部分は下記の様になっています。 for( kt=0; kt<=it ; kt++) { /* ※※※forの括弧開始※※※ */ /*********** 1ステップ前の電磁界[jt-1]の値の定式 ***********/ for( jx=0; jx<=ix; jx++ ) for( jy=0; jy<=iy; jy++ ) for( jz=0; jz<=iz; jz++ ) { exg[jx][jy][jz] = ex[jx][jy][jz]; eyg[jx][jy][jz] = ey[jx][jy][jz]; ezg[jx][jy][jz] = ez[jx][jy][jz]; } /*********** 磁界(hx)の計算 ***********/ for( jx=0; jx<=ix; jx++ ) for( jy=0; jy<=iy-1; jy++ ) for( jz=0; jz<=iz-1; jz++ ) { double dey = (ey[jx][jy][jz+1]-ey[jx][jy][jz])/dz; double dez = (ez[jx][jy+1][jz]-ez[jx][jy][jz])/dy; hx[jx][jy][jz] = hx[jx][jy][jz]+dt/amuy[jx][jy][jz]*(dey-dez); } /*********** 磁界(hy)の計算 ***********/ for( jx=0; jx<=ix-1; jx++ ) for( jy=0; jy<=iy; jy++ ) for( jz=0; jz<=iz-1; jz++ ) { double dez = (ez[jx+1][jy][jz]-ez[jx][jy][jz])/dx; double dex = (ex[jx][jy][jz+1]-ex[jx][jy][jz])/dz; hy[jx][jy][jz] = hy[jx][jy][jz]+dt/amuz[jx][jy][jz]*(dez-dex); } /*********** 磁界(hz)の計算 ***********/ for( jx=0; jx<=ix-1; jx++ ) for( jy=0; jy<=iy-1; jy++ ) for( jz=0; jz<=iz; jz++ ) { double dex = (ex[jx][jy+1][jz]-ex[jx][jy][jz])/dy; double dey = (ey[jx+1][jy][jz]-ey[jx][jy][jz])/dx; hz[jx][jy][jz] = hz[jx][jy][jz]+dt/amuz[jx][jy][jz]*(dex-dey); } /*********** 励振 ***********/ for( jx=1; jx<=ix-1; jx++ ) for( jz=1; jz<=iz-2; jz++ ) { ez[jx][80][jz] = sin( 2.0*pi*(kt%100)/100 )*sin(pi*float(jx)/float(ix)); } /*********** 電界(Ez)の計算 ***********/ for( jx=1; jx<=ix-1; jx++ ) for( jy=1; jy<=iy-1; jy++ ) for( jz=0; jz<=iz-1; jz++ ) { double term1 = (1.0-sigmax[jx][jy][jz]*dt/(2.0*epsirx[jx][jy][jz])) /(1.0+sigmax[jx][jy][jz]*dt/(2.0*epsirx[jx][jy][jz])); double term2 = 1.0/(1.0+sigmax[jx][jy][jz]*dt/(2.0*epsirx[jx][jy][jz])); double dhy = (hy[jx][jy][jz]-hy[jx-1][jy][jz])/dx; double dhx = (hx[jx][jy][jz]-hx[jx][jy-1][jz])/dy; ez[jx][jy][jz] = term1*ez[jx][jy][jz]+dt/epsirx[jx][jy][jz]*term2*(dhy-dhx); } ・ ・ ・ この後電界の計算が同様に続きます。 どなたかこのプログラムにOpenMPを導入するにはどうすればよいか教えていただきたいです。
- 締切済み
- 物理学
- FDTDによるマイクロストリップ共振器の解析
FDTDでマイクロストリップライン共振器の解析をおこないたいのですが、うまくいきません。 モデリングで、X,Y,Z方向の媒質IDを指定し、完全導体の場合、電界は0、誘電体の場合はその誘電体の誘電率で計算をおこなっています。 励振にはガウシャンパルスを使っています。 空気と完全導体や、誘電体と完全導体の境界等で何か処理が必要なんですか?
- 締切済み
- 物理学
- TE波について
電磁波について質問です。 x,y,zの3次元空間において、z方向を伝搬方向とすると、伝搬方向に電界成分と磁界成分がないのがTEM波、伝搬方向に磁界成分があるのがTE波と説明がありました。 つまり TEM波:Ez = 0, Hz = 0 TE波:Ez = 0, Hz ≠ 0 です。 TEM波は平面波を想像すれば良いと思いますが、TE波の伝搬方向に磁界成分を持つ絵がイメージできません。 そもそも電磁波の進む方向がE×H (E,Hはベクトル)の方向だとするとz方向に磁界成分がある場合z方向には伝搬しないような気がするのですが。 何か大きな勘違いをしているのでしょうか。 よろしくお願いします。
- ベストアンサー
- 物理学
- 波動方程式の導き方
電磁気学に関する質問です。次のように、z方向に伝搬定数βで進行し、角周波数ωで進行する波について E=E0(x,y)exp(jωt-βt)・・・(1) H=H0(x,y)exp(jωt-βt)・・・(2) 直交座標系(x,y,z)における波動方程式と円筒座標系(r,φ,z)における波動方程式を求めたいです。 (1),(2)式をマクスウェルの法則に代入して、x,y,z成分に関する式を求めて、式変形によりEx,Ey,Hx,HyをそれぞれEz,Hzを用いて導く事はできました。その後、どのような計算方法で波動方程式を求めればいいのかわかりません。できるだけ計算過程を詳しく教えていただけないでしょうか?よろしくお願いします。
- ベストアンサー
- 物理学
- 電磁界理論の数値解析について
僕は今FDTD法を使って微小開口を持つ金属平板に連続平面波を入射して開口付近の電磁界解析を行っているのですが現在その解析で「実数」を用いて行っています.連続波を用いているので当然ある一定の振舞いになった時,入射電界の1周期で平均をとる(実効値を求める)必要があります. そこで「複素数」を用いればそのようなことをしなくてもいいそうなのですがそれはどうしてなのかわかりません. 複素数を用いる利点については電気回路のところで回路方程式において微分がjwの掛け算となり積分がjwの割り算になり単なる代数方程式になり計算が容易となることぐらいしかわかりません.どなたか是非何卒回答の方お願い致します!
- ベストアンサー
- 物理学
- VBで円を書いたとき、同じにならないのですが。どうしてでしょう?
VBで、円を描いたとき Circle (CX, CY), 450 で、描いた円と Pi = 3.14159265 For i = 1 To 120 dd = i * 3 x = Cos((90 - dd) * Pi / 180) y = -Sin((90 - dd) * Pi / 180) HX = CX + x * 450 HY = CY + y * 450 PSet (HX, HY) Next i で、描いた円が、重ならないのですが、何故でしょうか? Circle で、描いた円の方が縦が、少し短いような感じになります。
- 締切済み
- Visual Basic
お礼
TCMさん、貴重なご助言ありがとうございます。 さっそくTCMさんのご回答をもとに、プログラムを見直してみます。 TCMさんには何度もお世話になっていますね。本当にありがとうございます。 自分でもいろいろ文献を調べて勉強しているつもりなのですが、まだまだのようです。もっと勉強します! どうもありがとうございました。