ホーム スクリーンショット ユーザーマニュアル Blueskyロゴ YouTube
OghmaNano 有機/ペロブスカイト太陽電池、OFET、OLEDをシミュレーション ダウンロード

1.メッシング

1. メッシングとは何か?

メッシングとは、連続した物理領域を、コンピュータで扱える離散点の集合へ分割する過程です。 たとえば、一端にろうそくの炎、もう一端に氷の塊がある金属棒に沿って熱が流れる様子を考えてみてください。 現実には温度は棒に沿って連続的に変化しますが、シミュレーションでは無限個の値を保持することはできません。 代わりに、棒は有限個のサンプル点(メッシュ)で表現され、計算はそれらの位置でのみ実行されます (?? を参照)。 メッシュを用いることで、本来は連続的な問題を、数値手法で解ける離散問題へ変換します。 この原理は、物理学と工学で広く用いられている有限差分法、有限要素法、およびその他の計算手法の基礎となっています。

ろうそくから氷結晶までの熱伝導を示す連続問題の例で、棒に沿った一連の離散点へ分割(メッシュ化)されている。
連続問題を一連の離散点へ分割(または メッシュ化)した例です。 この図では、熱がろうそくから氷へ向かって棒に沿って流れ、温度分布が離散メッシュ点で表現されています。

2. 異なる問題に対する異なるメッシュ

モデルおよび温度設定とともに Thermal mesh ボタンを表示する OghmaNano の Thermal ribbon。 光源およびシミュレーションツールとともに Optical mesh ボタンを表示する OghmaNano の Optical ribbon。 ソルバーおよび界面ツールとともに Electrical mesh ボタンを表示する OghmaNano の Electrical ribbon。
OghmaNano の 3 つのリボン: thermal(上)、optical(中央)、 electrical(下)。各リボンには、その物理モデル用のメッシュを定義するための専用の mesh ボタンがあります。

OghmaNano では、3 つの中核的な物理モデルが解かれます: 光学モデル(光吸収と伝搬)、 熱モデル(熱生成と熱流)、および 電気モデル(電荷輸送と再結合)です。 これらの過程は通常、非常に異なる長さスケールで起こるため、それぞれに専用のメッシュが必要です。たとえば:

実際には、これは異なる物理効果を異なる長さスケールでシミュレーションしなければならないことを意味します。 さらに、デバイス構造には数ナノメートルしかない非常に薄いコンタクト層または界面層が含まれることがあります。 光学的には、そのような層は光の波長よりはるかに小さいため、しばしば無視できますが、 電気的にはデバイスの電流–電圧特性を決定するため極めて重要です。 これらの効果を捉えるには、そのような領域では非常に細かい電気メッシュを使用し、 光学メッシュはより粗いままでそれらをまたぐようにできます。

OghmaNano は、モデルを結合するときに メッシュ間で自動的に補間 します。 たとえば、thermal メッシュ上で熱分布を定義していても、電気ソルバーが局所的な 温度値を必要とする場合、それらは補間によって転送されます。 同様に、キャリア生成率のような光学量も、必要に応じて optical メッシュから electrical メッシュへ補間されます。 ユーザーがこれらの転送を手動で管理する必要はありません。

3. OghmaNano の 3 つのメッシュ

OghmaNano には、解く問題に応じて個別に定義できる 3 つの独立したメッシュ — thermaloptical、 および electrical — があります。 各メッシュには対応するリボンタブからアクセスします。これは図 ?? に示されています。

3.1 Electrical mesh

2D OFET シミュレーションのために X および Y 次元が有効化され、厚さ、メッシュ点数、間隔を定義する表と結果メッシュを可視化するプロットを示す OghmaNano electrical mesh editor。
2D OFET シミュレーションのために X および Y 次元が有効化された electrical mesh editor。 表は厚さ、メッシュ点数、および成長係数を定義し、プロットはメッシュ分布を可視化します。
デバイス境界の内側に半ステップだけオフセットして配置された等間隔グリッド点を示す 1D electrical mesh diagram。
Electrical mesh の 1D 模式図。グリッド点はデバイス境界から半ステップだけオフセットされており、 微分計算の安定性と境界条件の一貫した適用を保証します。

Electrical リボンの Electrical mesh ボタンをクリックすると、mesh editor window が開きます (??)。 このウィンドウの上部には XY、および Z ボタンがあります。 これらは、シミュレーション内でどの空間次元を有効にするかを切り替えます。 たとえば、Y のみを有効にすると 1D シミュレーションになり、XY を同時に有効にすると 2D シミュレーションが設定されます。表示されている例では、XY の両方が有効であるため、 メッシュは 2D OFET シミュレーション用に設定されています。中央の表はスプレッドシートのように機能し、 各有効次元に対するメッシュ構造を定義します。その主な列は次のとおりです:

得られたメッシュはウィンドウ下部のグラフにプロットされ、 点間隔と分布に関する即時のフィードバックが得られます。Import from layer editor ボタンは、複雑なデバイスのためのショートカットです。 これは Y-mesh をクリアし、Layer Editor からすべての層を自動的にインポートして、各層に 4 つのメッシュ点を割り当てます。 これは、レーザーダイオードのように多層構造を持つ場合に特に便利です。

Electrical mesh の詳細: ?? は、electrical mesh がどのように構築されるかを示しています。メッシュは デバイス境界そのものから始まるのではなく、代わりにデバイス内部へ半メッシュ間隔だけ入った位置から始まります。 これにより、最初の計算ノードがアクティブなシミュレーション領域の内側に配置され、 境界条件(たとえば電気コンタクト)をメッシュのすぐ外側の 明確に定義された位置に適用できるようになります。同じ慣例が デバイスの反対側にも適用されるため、メッシュは最後の物理点を 半ステップだけ越えて広がります。

Automatic meshing: 層厚は layer editor で定義されます。物理デバイス構造を 定義した後、メッシュ形状がデバイスの物理寸法に一致するように ユーザーは electrical mesh を更新する必要があります。 実際には、新しいユーザーは electrical mesh も他の CAD 表現と同様に、物理オブジェクトサイズと一致していなければならないことに 気づかないことがよくあります。

設定ミスを減らすために、OghmaNano は実行時に自動メッシングの仮定を適用します。 シミュレーションは、layer editor で指定された層幅および高さが正しいと仮定し、これらの寸法を electrical mesh へ 自動的にマッピングしようとします。たとえば、デバイスが単一層で構成されており、 対応するメッシュ高さが不正な場合、シミュレーションはメッシュ構築時に 内部的に layer editor からの層厚を使用します。

デバイス層数が垂直メッシュ層数と一致する場合、各 メッシュ層は対応するデバイス層厚へ自動的に関連付けられます。 これらの調整はシミュレーション中に内部的に適用され、 エディタ内の表示メッシュパラメータ自体は変更されません。メッシュ 層数がアクティブなデバイス層数と一致しない場合、またはマッピングが あいまいな場合、自動メッシングは適用されず、シミュレーションは メッシュ定義がデバイス構造と整合していないことを示すエラーで終了します。

3.2 Optical mesh

X、Y、Z 次元トグルと波長パネルを持つ OghmaNano optical mesh editor。左パネルは空間メッシュの厚さ、点数、成長係数を定義し、右パネルは開始・終了波長、ステップ倍率、点数を定義する。下の色付きプロットはメッシュ間隔とスペクトルサンプリングを示す。
Optical mesh editor。左パネルはデバイス厚さ方向の空間メッシュ点を定義し、 右パネルは波長範囲と分解能を設定することでスペクトルメッシュを構成します。 下のプロットは、空間メッシュ分布と波長サンプリングの両方を可視化します。

Optical mesh editor(??)は、 レイアウトの点では electrical mesh editor と似ていますが、 wavelength mesh を定義するための追加パネルが含まれています。ウィンドウ上部では、XY、および Z ボタンがどの空間次元を有効にするかを切り替え、λ (Wavelength) ボタンがスペクトルグリッドを有効にします。

左側パネルはナノメートル単位の空間離散化を指定し、electrical mesh と同じ列 (ThicknessMesh pointsStep multiply、および Left/Right)を使用します。右側パネルは Start および Stop 波長、points 数、および ステップ倍率を設定することでスペクトル範囲を定義します。これらの波長点は、 ray tracingFDTD、および transfer matrix シミュレーションを含む すべての光学ソルバーで一貫して使用されます。

Automatic meshing: 光学シミュレーションでは、ソフトウェアは optical mesh の寸法が光学問題と整合するように自動的に調整しようとします。 より複雑な二次元または三次元シミュレーションでは、optical と electrical mesh が一致しない場合、ソルバーはそれらを 自動的に更新しようとします。これが不可能である場合、または意図された メッシュ構成を一意に決定できない場合、シミュレーションは メッシュ定義が不整合であることを示す明確なエラーで終了します。

3.3 Thermal mesh

左に空間メッシュ設定、右に温度メッシュ設定を示す OghmaNano thermal mesh editor。右の表は開始温度、終了温度、点数、およびステップ倍率を定義し、下のプロットはその分布を可視化する。
Thermal mesh editor。左パネルは空間離散化を定義し、右パネルは 開始値、終了値、分解能、およびステップ成長を設定することで温度メッシュを構成します。 プロットは位置空間および温度空間の両方におけるメッシュ分布を可視化します。

Thermal mesh editor(??)は、 electrical および optical mesh editor と同じように動作し、XY、および Z ボタンで空間次元を有効にします。さらに、専用の T (Temperature) mesh も含まれています。

Temperature mesh は、自己発熱を有効にする場合や、 温度範囲にわたって電気特性を評価する場合など、シミュレーションで温度依存性を考慮する必要があるときに使用されます。シミュレーション実行前に、 OghmaNano は、フェルミ準位と温度に対するキャリア密度、 あるいは Fermi–Dirac 積分のような量を事前計算して表にまとめます。これらのテーブルにより、ソルバーは実行中に 値を素早く参照でき、毎回繰り返し計算する必要がなくなります。

ほとんどの場合 thermal mesh は自動的に処理されますが、高度なユーザーは、 温度依存性が強い問題に対して十分な精度を確保するために範囲と分解能を調整できます。

4. OghmaNano でいつメッシングを気にする必要がありますか?

Electrical mesh: Layer Editor はデバイスを異なる材料の層へ分割します (セクション 3.1.3 を参照)。 active とマークされた層は、電気モデルが適用される層です。 これらの層には有限差分メッシュを定義しなければなりません。 メッシュ長は active 層長と正確に一致しなければならず、そうでないとエラーが発生します。 OghmaNano は通常、適切なメッシュを自動生成するため、単純なデバイスのほとんどでは 手動介入は不要です。しかし、複数の active 層が存在する場合や、 シミュレーションを高速化するためにメッシュ点数を減らす必要がある場合(または より高い精度のために増やす場合)には、electrical mesh を手動で設定する必要があることがあります。

Optical mesh: Optical mesh は、空間サンプリングと波長サンプリングの両方を制御します。 シミュレートする波長範囲を変更したり、光がデバイスの異なる層とどのように相互作用するかを より細かく表現したりするために、調整が必要になることがあります。メッシュ点数を増やすと 光学精度は向上しますが、シミュレーション時間も増加します。

Thermal mesh: Thermal mesh は、自己発熱が有効な場合にのみ関係します。 この場合、デバイス全体の温度変動と、 熱効果のトラップおよび再結合過程への結合をモデル化するために必要な分解能を提供します。 それ以外の場合は、OghmaNano によって自動的に処理されます。

5. メッシングのヒント

1D、2D、3D のどれでシミュレーションすべきですか?

正しい次元数を選ぶことは、シミュレーション設定において最も重要な判断のひとつです。 常に、関心のある物理を捉えるのに必要な最小の次元数を使ってください。これにより時間と計算資源を節約できます。

速度と精度

メッシュ点を増やせば常に精度が向上すると考えたくなるものです。実際には、点数を増やすことはある程度までは有効ですが、 シミュレーションを より不正確 に、あるいはより不安定にすることもあります。制限要因はしばしば単純な計算能力ではなく、 数値条件性です。多くのデバイスシミュレーションには、 非常に小さな密度や再結合率と、非常に大きな電場、電流、ドーピングといった、 桁が大きく異なる量が共存しています。 コンピュータは有限精度演算を使用するため、極端に大きな数と極端に小さな数が関わる演算では 有効桁が失われることがあります。この精度損失が誤差予算を支配し、見かけの振動、ノイズの多い電流、 あるいは収束不良を引き起こすことがあります。

メッシュ密度を増やすと、この問題は改善するどころか悪化することがあります。細かいメッシュはしばしばより急峻な局所勾配、 より大きな微分項、そして隣接ノード間のより強い結合を導入し、 解かなければならない線形系の中で最小値と最大値の広がりを大きくすることがあります。その結果、より悪条件化された問題となり、 ソルバーが実際の物理と数値ノイズを区別しにくくなります。そのような場合には、やや粗いメッシュの方が より滑らかな場、より良い条件性をもたらし、したがって 点数が少なくても より信頼できる 結果を与えることがあります。

良いワークフローは、まず粗いメッシュから始めて設定を検証し、定性的な挙動が正しいことを確認し、 その後に必要な分だけ細かくすることです。メッシュ細分化は証拠に基づいて行うべきです。重要な出力(たとえば JV 曲線、キャリア分布、 光生成)が点数を増やしても意味のある変化を示さなくなったなら、それ以上細かくしても精度が向上する可能性は低いです。

OghmaNano でデバイスを設定する際には、次の指針を念頭に置いてください: