nappy から pmd を呼び出してMDを実行する次のコードがある.
nsys = nappy.io.read('pmdini') # 構造ファイルを読み込む
pmd = nappy.pmd.PMD(nsys) # pmdオブジェクト作製
pmd.load_inpmd() # pmd実行の設定ファイルを読み込む
pmd.run(nstp=1000, dt=-5.0, ifdmp=2, iprint=0) # pmd実行
nsys = pmd.get_system() # 結果取得
print(' Potential energy = ',nsys.get_potential_energy()) # 出力
print(' Kinetic energy = ',nsys.get_kinetic_energy())
print(' Stress = ',nsys.get_stress())
これを jupyter notebook 上で実行しようとすると,次のようなエラーが出てkernelが再起動する.
Error
The kernel for /path/to/notebook.ipynb appears to have died. It will restart automatically.
このコードはpython scriptとして実行すると,問題なく実行できるため,jupyter notebookでのみ止まってしまう.
その前のセルなどでいくつかimportしているパッケージを調べてみると,import seaborn
の有無で上記エラーとなるかどうかが変わる.
理由はわからないが,とりあえずseabornをimportしなければ問題なく走るのでよしとする.バージョンを新しくすれば解決するかもしれないが,他のバージョンは調べていない.
- python 3.9.15
- jupyter-lab 4.0.10
- seaborn 0.12.1
追記
import seabornしていなくても似たような現象が発生した(今度はエラーは出ないがプロセスは止まってしまう現象).今度はseabornではなく,import matplotlib を消したら実行できるようになった. これは seaborn とか matplotlib とかではなく,nappyの方が問題な気がしはじめた.