最終更新:2025-09-26
概要
MultiOptPy
のソースコードのリファクタリングをしていたところ、重大な誤りに気が付いた。具体的には、プログラム内で計算に使用するNeural Network Potential(NNP)の指定が意図したとおりになっていなかったことである。
それにより、今までの【計算化学】自作pythonモジュールで遷移状態構造を求めてみる
を見直したところ、使用しているNNPの種類がuma-s-1p1
ではなく、uma-s-1
であることが判明した。
影響のあるMultiOptPy
のバージョンはv1.10
からv1.17.1
までである。
今後の記事の閲覧者に対する備忘録と謝罪としてここに修正点を書き記した。
問題の箇所
ase_calculation_tools.py
class Calculation:
(...snip...)
elif self.software_type == "uma-s-1" or self.software_type == "uma-s-1p1" or self.software_type == "uma-m-1p1": # Neural Network Potential
atom_obj = use_FAIRCHEMNNP(atom_obj, electric_charge_and_multiplicity, self.software_path_dict["uma-s-1"])
(...snip...)
elif software_type == "uma-s-1" or software_type == "uma-s-1p1" or software_type == "uma-m-1p1": # Neural Network Potential
atom_obj = use_FAIRCHEMNNP(atom_obj, electric_charge_and_multiplicity, software_path_dict["uma-s-1"])
(...snip...)
software_path_dict["uma-s-1"]
を
software_path_dict["uma-s-1p1"]
とすれば、正常な処理となる。
これに伴って、uma-s-1p1
を指定していたとしても、uma-s-1
の.pt
ファイルがないと動かないため、該当する記事の内容の指示通りに操作しても、正常に動かない状況となっていることとなる。 もし、正常に動かす場合は、これまでの該当記事で記述した以下の内容を次のように読み替えれば可能である。
(修正前)
1, 以下のサイトにアクセスして、uma-s-1p1.pt
をダウンロードする。(使用許諾が下りていれば可能である。)
https://huggingface.co/facebook/UMA
2, ダウンロード後、MultiOptPy-v1.x
ディレクトリ内に存在するsoftware_path.conf
に対して、uma-s-1p1.pt
の絶対パスを用いて以下を追記する。
uma-s-1p1::(uma-s-1p1.ptの絶対パス)
これで、MultiOptPy-v1.x
がNNPuma-s-1p1
を使用できるようになる。
(修正後)
1, 以下のサイトにアクセスして、uma-s-1.pt
をダウンロードする。(使用許諾が下りていれば可能である。)
https://huggingface.co/facebook/UMA
2, ダウンロード後、MultiOptPy-v1.x
ディレクトリ内に存在するsoftware_path.conf
に対して、uma-s-1.pt
の絶対パスを用いて以下を追記する。
uma-s-1::(uma-s-1.ptの絶対パス)
これで、MultiOptPy-v1.x
がNNPuma-s-1
を使用できるようになる。