誘電体の屈折率を複雑な関数で定義するには

位置依存の屈折率を持つ構造をシミュレーションするためには,Materialタブの"object defined dielectric"を用い,空間座標における関数としての屈折率を定義することができます.

しかしながら,この機能は屈折率の実部のみに対応しているため,ここで定義する関数は実関数でなければならないことに注意が必要です.

例えば,ファイバの屈折率として以下の関数を使うことを考えます.

n(x,y) = 1.5+0.3*sqrt(1-(x^2+y^2))

二乗根の項は半径(r = x^2+y^2)方向の値によって負数になり得ます.従って以下の図に示すように, r>1の場合n(x,y) は複素数になります.

ファイバの例の場合,考慮しなければならないのはn(x,y)の実部であり,それに加えr>1の領域では一定の値つまりn(x,y)=1.5にしたいところです.しかしながら,この関数を用いて出力される屈折率分布は以下のように予想とは異なります.

正しい屈折率分布を得るためには,以下の"step function"を用いて以下のように関数に実数条件を与える必要があります.

n(x,y) = 1.5+0.3sqrt(((1-(x^2+y^2))>=0)(1-(x^2+y^2)))

ここで,(1-(x^2+y^2))>=0は二乗根が負数のときに0を返す関数です.この関数を用いることで以下のような所望の屈折率分布が得られます.

以下のファイルで確認ができます.
graded_example.lms (233 KB)