CHGNet汎用力場を使うための設定

Pythonの設定

LAMMPSからCHGNet汎用力場Simple DFT-D3による補正を使うために必要な設定手順を説明します。

実際に計算を行うマシン(計算サーバーにジョブ投入する場合には、その計算サーバー上)でインストールを行ってください。

  1. conda環境の用意

    Python環境としてcondaを使用します。現在condaをお使いでない場合は、必要最小限の構成であるMinicondaを推奨します。

    MinicondaのページからPython 3.9のインストーラーをダウンロードし、インストールしてください。

    Windowsで環境変数 PATH を変更しない設定でインストールした場合、以降の作業はスタートメニューからAnaconda Promptを起動して行ってください。

    インターネット接続にプロキシが必要な場合は、環境変数の設定等を適宜行ってください。

    Windows・認証なしの例
    set HTTP_PROXY=http://host:port
    set HTTPS_PROXY=http://host:port
    
    Linux・認証ありの例
    export HTTP_PROXY=http://user:pass@host:port
    export HTTPS_PROXY=http://user:pass@host:port
    
  2. (任意)GPUを使う場合

    NVIDIAドライバがインストールされていない場合は、あらかじめインストールしてください。

    PyTorchのGPU版をインストールします。CUDAバージョンが最新の場合は Get Started 、そうでない場合は Previous Versions を参照し、CUDAバージョンに合わせたpipのインストールコマンドを実行してください。

    インストール後、GPUが利用可能になっているかどうかPythonの対話環境で確認できます。

    python
    
    >>> import torch
    >>> print(torch.cuda.is_available())   #GPU使用可否
    True
    >>> exit()                             #Python環境終了
    
  3. インストール

    chgnetと、DFT-D3補正に必要なパッケージをインストールします。

    pip install chgnet
    conda install simple-dftd3 dftd3-python -c conda-forge
    

NanoLaboへの設定

  • ローカル(NanoLaboを使っているマシン)で実行する場合

    画面左上のアイコン mainmenuicon から Properties ‣ Python (またはForce Field設定画面の gearicon ボタン)でpython実行ファイルのパスを設定します。

    Windowsでは condaのインストール先\python.exe 、Linux・macOSでは condaのインストール先/bin/python にあります。

  • リモート(計算サーバー等)で実行する場合

    condaのインストール先が ~/anaconda3 または ~/miniconda3 の場合は、デフォルトで追加される LD_LIBRARY_PATH で動作しますので、設定は必要ありません。

    他の場所にインストールした場合は、画面左上のアイコン mainmenuicon から Network ‣ SSH server を開き、ジョブスクリプトに LD_LIBRARY_PATH を追加してください。

    export LD_LIBRARY_PATH=(condaのインストール先)/lib:$LD_LIBRARY_PATH
    

ヒント

WindowsでGPUを使った場合、次のようなエラーで実行できない場合があります。

FileNotFoundError: Could not find module 'C:\Program Files\NVIDIA Corporation\NVSMI\nvml.dll' (or one of its dependencies). Try using the full path with constructor syntax.
pynvml.NVMLError_LibraryNotFound: NVML Shared Library Not Found

この場合、 C:\Windows\System32\nvml.dllC:\Program Files\NVIDIA Corporation\NVSMI\nvml.dll にコピー(フォルダがない場合は作成)してから実行してみてください。

ヒント

PyTorch1.13.1以前で次のようなエラーが出ることを確認しています。

IndexError: tensors used as indices must be long, byte or bool tensors

この場合、PyTorchのバージョンを確認し、PyTorch2以降をインストールしてください。

# インストールされているバージョンを確認
pip list
# PyTorchをアンインストール
pip uninstall torch torchvision torchaudio
# インストール可能なPyTorchのバージョンを表示
pip install torch==
# PyTorch2以降を指定してインストール
pip install 'torch>=2' torchvision torchaudio

LAMMPSを直接実行する場合

NanoLaboを使わず、LAMMPS単体で実行する場合の説明です。

NanoLabo Tool同梱の実行ファイル lammps_chgnet を使用します。MPI並列計算には非対応です。

Linux・macOSでは、実行時にPythonの動的ライブラリを使用しますので、環境変数 LD_LIBRARY_PATH を設定してください。

$ export LD_LIBRARY_PATH=(condaのインストール先)/lib:$LD_LIBRARY_PATH

また、Linuxでは環境変数 OPAL_PREFIX を設定してください。

デフォルトの場所にインストールした場合の例
$ export OPAL_PREFIX=/opt/AdvanceSoft/NanoLabo/exec.LINUX/mpi

LAMMPSから chgnet_driver.py を呼び出すことで動作しますので、NanoLabo Toolインストール先の chgnet フォルダをPythonのモジュール検索パスに追加してください。例えば、環境変数 PYTHONPATH に追加します。

Linuxの例
$ export PYTHONPATH=(NanoLabo Toolのインストール先)/chgnet:$PYTHONPATH

LAMMPSの入力ファイル中で、以下のようにpair_styleを設定します。

CHGNet
pair_style chgnet
pair_coeff * * <modelname> <元素名1 元素名2 ...>        # モデル名を指定する例
CHGNet + DFT-D3による補正
pair_style chgnet/d3
pair_coeff * * path <modelfile> <元素名1 元素名2 ...>   # モデルファイルを指定する例
CHGNet、GPU使用
pair_style chgnet/gpu
pair_coeff * * <modelname> <元素名1 元素名2 ...>
CHGNet + DFT-D3による補正、GPU使用
pair_style chgnet/d3/gpu
pair_coeff * * <modelname> <元素名1 元素名2 ...>

パラメーター


modelname
modelfile
使用するグラフニューラルネットワークのモデル
MPtrj-efsmを指定すると、同梱の学習済みモデルを使用
pathに続けてファイルパスを指定すると、ファイルに保存されたモデルを使用

元素名

LAMMPSのatom type毎に、対応する元素名を列挙