OghmaNanoにおける出力プローブ
プローブとは何ですか?
シミュレーション実行中に、特定のメッシュ点における物理量の変化をシミュレーションステップごとに監視したい場合がよくあります。例えば、電圧や時間の関数として、特定のメッシュ点における伝導帯、キャリア密度、または電界の値を追跡したい場合などです。
この目的を達成する方法の一つとして、スナップショットシステムを利用して全てのシミュレーションスナップショットをディスクに保存し、その後外部のMATLABまたはPythonスクリプトを用いて各出力ファイルから必要なデータ点を抽出するという方法が挙げられます。この手法は非常に有効な手段であり、シミュレーションの全状態に完全にアクセスできるという利点があるのです。
しかし、より迅速な方法としては出力プローブを利用することです。
出力プローブは、シミュレーション出力ファイルがディスクに書き込まれる前にこれを捕捉し、データセットから特定の値を抽出した上で、シミュレーションステップの関数として自動的に新たなプロットを生成する。
例えば、シミュレーションによって次のようなファイルが生成されたとします:
Ec.csv
デバイス全体における伝導帯エネルギーの分布情報が記録されたファイルが存在する場合、出力プローブはそのデータセットを取得し、特定のメッシュ点における値を抽出した上で、電圧や時間の関数としてその値がどのように変化するかを示す新たなデータセットを自動的に生成する。
実際には、この機能によりデバイス内部の物理量を継続的に監視でき、大量のシミュレーションスナップショットディレクトリを手動で処理する必要がなくなるのです。
プローブの設定方法
プローブエディタは、??に示すオートメーションリボンから開くことができる。
この例では、プローブが監視しているファイルは以下の通りです:
Ec.csv
これはデバイス内の伝導帯エネルギー分布に相当する。
このプローブは有効化されており、y軸方向上の5番目のメッシュ点からデータを抽出するように設定されている。本例においてデバイスは一次元構造であり、合計10個のメッシュ点が存在するため、プローブはデバイスのほぼ中央部分に位置する値を抽出していることになる。
プローブは単一のメッシュ点の値を抽出するだけに留まらない。必要な解析の種類に応じて、平均値、最小値、最大値、その他の集約量を算出するよう設定することも可能である。
概念的には、プローブはシミュレーション中に書き込まれるファイルを監視し、そこから自動的に物理量を抽出して連続的なプロットを生成する仕組みとなっている。
プローブ出力
シミュレーション実行後、??に示すようにシミュレーション出力ブラウザ内にプローブ用のディレクトリが生成されます。
この例において生成されるファイルは以下の通りです:
Ec_z0_x0_y5.csv
これは、該当メッシュ点で抽出された伝導帯エネルギーに相当します。
z=0, x=0, y=5
このファイルを開くと、OghmaNanoは自動的に監視対象の物理量をシミュレーションステップの関数としてプロットします。その様子は??に示されています。
このようにプローブを利用することで、デバイス内部の特定位置において電位、キャリア密度、再結合率、電界といった物理量を継続的にモニタリングすることが可能となる。
プローブはシミュレーション実行中に自動的にデータセットを処理するため、外部スクリプトを用いて多数のシミュレーションスナップショットを手動で処理する必要がなくなる。
内部処理において、プローブの出力データは他のすべてのシミュレーション出力データと同一のOghmaNano出力フォーマットを使用するため、人間が読み取り可能なCSV形式またはコンパクトなバイナリ形式のいずれにも保存可能である。
💡 ヒント:プローブは、大規模な過渡現象シミュレーションやドリフト拡散シミュレーションにおいて、界面や接触部、あるいは特定領域内の物理量を監視する際に特に有用です。