FDTDクイックスタート数値スクリプト言語ピックアップ(3)構造(構造)構造


序文

この記事では、オブジェクトのシミュレーションモデル(構造)を構築する方法を紹介します。FDTDソリューションのシミュレーションモデルは、材料と構造の2つのコアパーツで構成されています。通常、吸収パラメータを含む材料の複素屈折率は、材料特性を制御するために使用され、3Dモデルパラメータは、構造特性を制御するために使用されます。ここにいくつかの一般的に使用される構造があります。


1.(直方体)長方形

典型的な長方形の構造は、次のコードで生成できます。

addrect;
set("name","rect");#名称                   
set("material","SiO2 (Glass) - Palik");#材料
set("render type","wireframe");   # 渲染方式:线框,减小显卡压力
set("x",0);#设置x中心点坐标   
set("y",0);#设置y中心点坐标
set("x span",1e-6);#设置x方向宽度
set("y span",1e-6);#设置y方向宽度
set("z max",1e-7);#设置z方向最大值
set("z min",-1e-6);#设置z方向最小值
set("first axis","x");#设置第一转轴
set("rotation 1",45);#设置第一旋转角

効果は次のとおりです。
ここに画像の説明を挿入

コードの各
部分の目的について、以下で詳しく説明します。addrect:特定のサイズと特定の屈折率誘電体材料の長方形モデルをランダムに生成します。
set( "name"、 "rect"):名前。長方形の名前を "rect"に
設定しますset( "material"、 "SiO2(Glass)-Palik"):Material-ここのマテリアルはマテリアルライブラリに存在する必要があり、マテリアルライブラリの元の名前に従って名前を付ける必要があります。長方形のマテリアルをシリカ
セットとして設定します( "rendertype"、 "wireframe"):レンダリング方法-詳細とワイヤーフレームの2つのタイプがあります。システムはデフォルトで詳細に設定されます。必要に応じて、ワイヤーフレームに変更できます。長方形のレンダリングモードをwireframeset
( "x"、 "0"):中心座標(x軸)として設定します。同様に、yとzの中心座標を設定することもできます。長方形の中心座標(x軸)を0に
設定しますset( "x span"、 "1e-6"):x軸方向の幅(または範囲)、同様にy軸とz軸の幅設定することもできます。長方形のx軸幅を1e-6に
設定します。つまり、1ミクロンセット( "z max"、 "1e-7"):z方向の最大値、同様にz min、x max、 x min、y max、Ymin。長方形の最大z方向を1e-7、つまり100ナノメートルに
設定します。set( "first axis"、 "x"):最初の回転軸。長方形の最初の軸をx軸として設定します
set( "rotation 1"、45):最初の回転軸を中心とした回転角。x軸を中心とした長方形の回転角を45°に設定します


2.多角形の円柱(Ploygon)

1.多角形の列

典型的なポリゴン構造は、次のコードで生成できます。

um=1e-6;
nm=1e-9;
vtx=[2,0;1,1;-1,1;
     -2,0;-1,-1;1,-1]*um;  #向量组
addpoly;
set("name","poly");#名称
set("index",1.5);#折射率
set("vertices",vtx);#控制向量组
set("x",0.5*um);#中心坐标
set("y",1*um);
set("z",-0.5*um);
set("z span",0.4*um);#z方向宽度

効果は次のとおりです。
ここに画像の説明を挿入

長方形と同じパーツは紹介しません。ここでは、長方形とは異なるパーツのみを紹介します
。addpoly:ランダムなパラメータを使用してポリゴン構造を追加します。
set( "index"、1.5):屈折率。多角形の材料は、屈折率が1.5
set( "vertices"、vtx):ベクトルグループの誘電体です。ポリゴンのxy平面の2次元形状を設定します。これは、入力ベクトルグループvtxのパラメーターによって制御されます。


vtxのパラメータの説明について:vtxはn * 2行列であり、各行はポリゴン上の頂点の相対座標であり、設定された「x」、「y」、「z」パラメータを相対座標原点として、を押します。マトリックス内のシーケンスは、ポリゴンを形成するために接続されています。

2.三角柱

典型的な三角柱構造は、次のコードで生成できます。

um=1e-6;
nm=1e-9;
vtx=[3,0;0,4;-2,0]*um;  #向量组
addtriangle;
set("name","triangle");#名称
set("index",1.5);#折射率
set("vertices",vtx);#控制向量组
set("x",0.5*um);#中心坐标
set("y",1*um);
set("z",-0.5*um);
set("z span",0.4*um);#z方向宽度

効果は次のとおりです。
ここに画像の説明を挿入
ポリゴン生成コードは基本的に三角形生成コードと同じなので、ここではあまり紹介しません。


3.(楕円)円柱(円)

典型的な(楕円)円筒構造は、次のコードで生成できます。

um=1e-6;
nm=1e-9;

addcircle;
set("name","circle");
set("material","Au (Gold) - Palik");
set("x",0);
set("y",0);
set("z",0);
set("z span",400*nm);
set("radius",600*nm);#半径/x轴半径
set("make ellipsoid",1);#生成椭圆
set("radius 2",800*nm);#y轴半径

効果は次のとおりです。
ここに画像の説明を挿入
同様に、ここでは、長方形構造の生成コードとは異なる部分についてのみ説明します。set
( "radius"、600 * nm):radius / x-axisradius。円柱の場合、半径は円の半径です。楕円円柱の場合、半径はx軸方向の楕円の半軸の長さです(半長軸または半長軸の場合があります)。半径と半径の相対的なサイズに応じて、半短軸)。ここでは、楕円の短半径が600nm
set( "make ellipsoid"、1)であることを意味します。楕円を生成します。「楕円体を作成」は、0と1の2つの値を取ることができます。このうち、0は生成された円柱が円柱であることを示し、1は生成された楕円円柱が生成されたことを示します(1は有効楕円パラメータ半径2であり、0の場合は半径2は無効であると見なすこともできます。 、および半径の半径を持つ円柱のみが生成されます)。ここで、パラメータは1で、楕円形の円柱を生成することを意味します。
set( "radius 2"、800 * nm):y軸の半径、楕円の2番目の半軸の長さ。2番目の半軸の長さが800 * nmの楕円形の円柱を生成します。

4.(楕円)球

典型的な(楕円体)球は、次のコードで生成できます。

um=1e-6;
nm=1e-9;

addsphere;
set("name","sphere");
set("index",1.5);
set("x",0);
set("y",0);
set("z",0);
set("radius",200*nm);#半径/x轴半径
set("make ellipsoid",1);#生成椭球
set("radius 2",400*nm);#y轴半径
set("radius 3",2*um);#z轴半径

効果は次のとおりです。
ここに画像の説明を挿入
球のコードは楕円形の円柱のコードと非常に似ていますが、違いは3番目の半径(半径3)が余分にあることだけです(実際、z軸のサイズを制御します)。方向)なので、ここではあまり説明しません。

5.リング(本体)(リング)

典型的なトーラスシリンダーは、次のコードで生成できます。

um=1e-6;
nm=1e-9;

addring;
set("name","ring");
set("index",1.5);
set("x",0);
set("y",0);
set("z",0);
set("z span",600*nm);
set("outer radius",400*nm);#外圆半径
set("inner radius",200*nm);#内圆半径
set("theta start",0);#起始角
set("theta stop",135);#终止角

効果は次のとおりです。
ここに画像の説明を挿入
円柱のデフォルトは、底面がxy平面で、高さがz軸方向の幅です。リングシリンダのパラメータ制御の詳細については、コメントセクションを参照してください。

6.ピラミッド

典型的なピラミッドは、次のコードで生成できます。

um=1e-6;
nm=1e-9;

addpyramid;
set("name","pyramid");
set("index",1.5);
set("x",0);
set("x span bottom",600*nm);#梯形下底长(x轴向)
set("x span top",100*nm);#梯形上底长(x轴向)
set("y",0);
set("y span bottom",400*nm);#梯形下底长(y轴向)
set("y span top",200*nm);#梯形上底长(y轴向)
set("z",0);
set("z span",600*nm);

効果は次のとおりです
ここに画像の説明を挿入
。パラメータ「xspanbottom」、「y span bottom」、「x span top」、および「y span top」は、ピラミッドの下部と上部にある長方形のサイズをそれぞれ制御します。

おすすめ

転載: blog.csdn.net/weixin_44224652/article/details/112712634