2019-05-01から1ヶ月間の記事一覧

タイムアウトを設定してJoblibで並列処理を実行

pythonで並列処理をするときにはjoblibが手軽で便利だが、タイムアウト時の処理に自由度がない。 というのも、joblib.Parallelの引数にtimeoutを設定すると、指定した時間を超えたときに例外を投げて計算全体を止めてくれるが、タイムアウトした処理を無視し…

pymatgenでのcifファイルの読み込み

pymatgenでcifファイルを読み込むにはpymatgen.io.cif.CifParserを使うが、たまに失敗することがある。 これはcifに書かれているfractional coordinates の精度が低いと、対称操作を施して同じワイコフ位置にある原子の座標を計算する部分がうまくいかないこ…

pythonのコマンドラインオプション

出力をバッファせずにnohup.outに掃き出す nohup python -u hoge.py & python - Nohup is not writing log to output file - Stack Overflow warningsを無視する python -W ignore hoge.py How to disable python warnings - Stack Overflow assertionをスキ…

pythonで独自クラスにsetを使う

pythonで独自クラスに対してsetを使うには、そのクラスがhashableでなければならない。 hashableであるとは、__hash__()メソッドと__eq__()メソッドを持っていることを指す。 組み込み型 — Python 3.7.3 ドキュメント python - How to implement __eq__ for …

ポリアの数え上げ定理の実装

最近ポリアの数え上げ定理の実装が欲しい場面に遭遇したのでlatexでメモを取りつつちまちま勉強していた。 ↓はその時のメモ(証明は基本的に書いてない)。 ポリアの定理はある対称性のもとに色塗りをする場合の数を与えるものだが、その拡張として 色塗りの固…