外部計算エンジン連携

TCAD・実行ファイル・実験装置を最適化に組み込むための設計指針

1. このページの目的

このページでは、 外部計算エンジンを評価関数として用いる最適化 を安全かつ現実的に実装するための指針をまとめます。

対象は次のようなケースです。

2. 外部エンジン最適化の前提条件

外部エンジンを用いた最適化では、 内部モデルとは全く異なる前提 を受け入れる必要があります。

これらを例外ではなく常態 として扱うことが重要です。

3. 推奨されるファイル分離

外部エンジン連携では、 必ず lib 層を分離 してください。

mf 層に直接ファイル操作や subprocess を書くと、 可読性・保守性が急激に低下します。

4. 外部エンジン実行の基本フロー

optimize_flex では、 外部エンジン実行を次の流れで扱います。

  1. パラメータ → 入力ファイル生成
  2. 外部エンジン実行
  3. ログファイル生成
  4. 結果抽出・補間
  5. 評価値計算

これらはすべて 1 回の評価関数呼び出しの内部 で完結します。

5. 失敗時の扱い

外部エンジンは、次の理由で失敗します。

失敗時に最適化を止めてはいけません。

optimize_flex では、

ことで、探索を継続します。

6. 並列実行と排他制御

外部エンジンは、

ことが多くあります。

そのため、

を必ず検討してください。

7. 評価コストを下げる工夫

外部エンジン最適化では、 評価回数を減らすことが最重要です。

これらを組み合わせることで、 実用的な計算時間に収めることができます。

8. サロゲート最適化の導入タイミング

次の条件に当てはまる場合、 tkmlr の導入を強く推奨します。

サロゲートは、 外部エンジンを置き換えるのではなく補助する 役割で使います。

9. よくある失敗例

これらはすべて、 後から修正が困難 になります。

10. まとめ

外部計算エンジン最適化は、

という性質を持ちます。

optimize_flex は、 それらを前提として受け入れる設計 を採用することで、

最適化基盤を提供します。

次のページでは、 ユーザー視点での 共通実行フロー(plot / sim / fit / scan) を整理します。