mesh の作成 2014/9/25 京大理 髙田淳史
始めの一歩。大きな一歩。 最初の仕事: シミュレーションする構造を考え、作る 有限要素法 (Finite Element Method) で電場計算を行う為に、 作った構造情報から3次元メッシュを作る メッシュをどう作るかが最大の鍵 粗すぎても、細かすぎても、問題。 後の Elmer ・ Garfield++ の計算で、繰返しといった境界条件を付 けられるので、作る構造は最小単位で十分 Gmsh の使用方法は web 上にいくつか情報がある Sample は以下の場所
Sample source sample manual User Guide
Sample source examples/ parallel_plate/ lem/ README avalanche.cc ← Garifield++ の sample gemcell.geo ← GEM の geometry gemcell.sif ← 電場計算用 file gemcell_Wtlel.sif ← 重み付電場計算用 file lem gemcell/ dielectrics.dat ← 比誘電率データ ← GEM を想定した sample ← 平行平板コンデンサの sample
作業の流れ 1. Geometry を考える 2. データの作成 1. 点を 3 次元座標で定義 2. 点と点を結んで線を定義 3. 線を複数選んで閉曲線を定義 4. 閉曲線で囲まれた内部を面として定義 5. 面を複数選んで面ループを定義 6. 面ループで囲まれた領域を立体として定義 7. 電位を与える面、及び境界条件を与える面を定義 8. 誘電率を与える物質を定義 3. 最後に gmsh でメッシュを切る
1. 単位構造を考える … 目的に応じて、それぞれ考える必要がある - GEM の枚数は … ? - ガス領域のサイズは … ? 等々。 ガス領域の定義も忘れずに。 GEM μ-PIC
2-1. 点を定義する Point(label) = { x, y, z, e}; 空間座標を3次元で定義 単位は m, cm, mm, mum default は cm 各点は label によって ID 点回りのメッシュサイズは 4番目のパラメータで決定 ( 小さいほどメッシュも小 ) 点間のメッシュサイズは gmsh が適度に割り振る GEM
2-2. 点と点を線で結ぶ 先に定義した点を結んで線を定義 点の指定は Point の label で行う 各線は label で ID 線には向きがある Circle の描く円弧は 180 度が最大 Overlap は不可 Line(label) = { 始点, 終点 }; Circle(label) = { 始点, 中心点, 終点 }; Line Circle 線上に並んだ 4 つの点で 緑と橙の 2 本を引きたい … × ○ overlap になり error それぞれ定義して後で繋ぐ
2-3. 線を繋いで閉曲線を作る 線を結んで閉曲線を定義 線の指定は Line や Circle の label で行う 「一筆書き」で「閉じる」必要がある 後から作る面も overlap できないので、ここで注意 Line Loop(label) = { line1, -line2, line3, …}; line1 line2 line3 line4 Line Loop (loop1) = {line1, line3, -line2, -line4}; 橙と水色の重なる 2 つの面を作りたい … Line Loop(loop1) = { 2, 3, 4, 5, -6, -7, -8, -1}; Line Loop(loop2) = {3, 9, -7, -10}; × ○ Line Loop(loop1) = { 2, 10, -8, -1}; Line Loop(loop2) = {3, 9, -7, -10}; Line Loop(loop3) = {4, 5, -6, -9};
2-4. 面を定義する 定義した閉曲線 (Line Loop) で面を定義する 平面 : Plane Surface, 曲面 : Ruled Surface 面の overlap はできない Plane Surface(label) = { 外周, 穴 1, 穴 2, …}; Ruled Surface(label) = { 外周, 穴 1, 穴 2, …}; Plane Surface Ruled Surface この境界面 別々の面として定義する loop1 loop2 Plane Surface(face1) = {loop1, loop2};
2-5. 面で囲う 定義した面で閉曲面を作る Surface Loop で囲んだ内側が立体の形に Surface Loop(label) = { 面 1, 面 2, 面 3, …}; 2-6. 立体を定義 Volume(label) = { 外周, 空隙 1, 空隙 2, …}; 閉曲面で立体を定義 sloop1 sloop2 Volume(v1) = {sloop1, sloop2};
2-7. 境界条件を与える面を定義 電場計算の際、境界条件を与える面を定義 電位を定義する電極 繰返し配置を行う面 Elmer では定義した順番に 1, 2, 3, … となる Physical Surface(label) = { 面 1, 面 2, 面 3, …}; GEM μ-PIC
2-8. 物質の立体定義 電場計算の際、比誘電率を与える立体を定義 Elmer では定義した順番に 1, 2, 3, … となる Physical Volume(label) = { 立体 1, 立体 2, …}; GEM μ-PIC
3. メッシュを切る 端末から > gmsh ***.geo -3 –optimize –order 2 ***.msh というメッシュ file が出力される 3 次元 for Elmer