- ベストアンサー
FDTD法におけるフォトニック結晶光波回路の解析について
rei00の回答
- rei00
- ベストアンサー率50% (1133/2260)
素人がこんな事を言って申し訳ありませんが,どの様な状況での解析でしょうか。 御質問文から受ける印象では,大学か企業での研究の一環のように思えるのですが。そうだとすると,ここで御質問されるよりは,周りに居るであろう先輩なり指導者なりに相談されるのが先だと思います。
関連する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
補足
ご回答ありがとうございます。 僕は大学生で、FDTDによる解析は卒業研究のテーマにしています。 rei00さんのおっしゃる通り、先生などに相談すべきなのですが、FDTDのことを知っていても使ったことがなく、詳しいところまで説明できる先生がいません。 そこで神にもすがる思いで質問した次第です。