【要約】ngspice の壁、sudo 無しで越えた — PySpice で本物の Bode 線図が出るまで [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
開発者は、権限のない環境でPySpiceによる回路シミュレーションを試みた。しかし、計算エンジンであるngspiceの導入が困難な問題に直面した。
- ・PySpiceは計算にlibngspice.soを必要とする。
- ・OSのパッケージマネージャはroot権限を要求する。
- ・ソースビルドにはbison等のツールが必要で、それらも導入できない。
// Approach
開発者は、root権限を必要としない配布物の利用を選択した。conda-forgeのパッケージをuserspaceに展開する手法である。
- ・micromambaで単体バイナリをローカルに取得する。
- ・conda-forgeからngspiceを専用ディレクトリに導入する。
- ・LD_LIBRARY_PATHで共有ライブラリのパスを通す。
// Result
開発者は、権限のない環境でRCローパスフィルタのAC解析に成功した。理論値と実測値が極めて近い結果を得ている。
- ・理論カットオフ 159.15 Hz に対し、実測は 158.49 Hz(誤差0.4%)。
- ・DCゲイン 0.00 dB、1 MHz ゲイン -76 dB を確認。
- ・位相特性も理論値とほぼ一致した。
Senior Engineer Insight
> 権限制限のあるCI/CDや共有計算機環境において、この手法は極めて実用的だ。ビルド済みの配布物を利用し、ビルドツールの欠如という二次的な壁を回避している。ただし、PySpiceとngspiceのバージョン互換性には注意が必要だ。「動く」ことと「保証されている」ことは別物である。本番環境への適用時は、必ずバージョンを固定し、再現性を担保すべきである。