Skip to content

Commit

Permalink
Merge branch 'develop' into release-2.1
Browse files Browse the repository at this point in the history
  • Loading branch information
yomichi committed Jun 12, 2023
2 parents f23bfe5 + d4ecc9a commit 46c7f0d
Show file tree
Hide file tree
Showing 5 changed files with 149 additions and 87 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ https://www.pasums.issp.u-tokyo.ac.jp/abics

## Author

Shusuke Kasamatsu, Yuichi Motoyama, Kazuyoshi Yoshimi
Shusuke Kasamatsu, Yuichi Motoyama, Tatsumi Aoyama, Kazuyoshi Yoshimi

## Manual

Expand Down
48 changes: 4 additions & 44 deletions docs/sphinx/en/source/how_to_use/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -186,47 +186,7 @@ By using ``abics_sampling``, Monte Carlo sampling can be performed by using the
Running the program will create directories named by the replica numbers under the current directory,
and each replica runs the solver in it.

By using ``aenetPyLammps``, you can perform high-speed sampling using ``aenet`` which is libraryized by using ``lammps``.
To use ``aenetPyLammps``, you need to install ``aenet-lammps`` and ``lammps``. See below for details.

aenetPyLammps
**************

- URL : https://github.com/HidekiMori-CIT/aenet-lammps

- Use `the commit 5d0f4bca <https://github.com/HidekiMori-CIT/aenet-lammps/commit/5d0f4bcacb7cd3ecbcdb0e4fdd9dc3d7bf06af0a>`_ .

- ``git checkout 5d0f4bca``

- Please install ``aenet-lammps``` according to the procedure specified in the above URL. Below are notes on installation.

- ``aenet``

- Make sure to add ``-fPIC`` to ``FCFLAGS`` in ``makefiles/Makefile.*``.

- ``lammps``

- Make sure to add ``LMP_INC = -DLAMMPS_EXCEPTIONS`` in ``src/Makefile``.
- Make sure to add ``mode=shared`` to the make command option as ``make mode=shared mpi`` (when GCC, for example).

- After completing the above installation, run ``make install-python``.

- ``lammps`` python package will be installed to the Python environment which is invoked by ``python`` command.

- Reference file rules

- Place the input file ``in.lammps`` for ``aenet-lammps`` in the ``predict`` directory to evaluate the energy for the input coordinates using the trained potential model.
The format of ``in.lammmps`` is written in the README of ``aenet-lammps`` repository.

- abICS control file

- `In the ``[sampling.solver]`` section, set ``type`` to ``aenetPyLammps`` and ``run_scheme`` to ``function``.

.. code-block:: bash
type = “aenetPyLammps”
run_scheme = ‘function’
.. solver_specific_notes:
abICS can call the ``aenet`` library via the LAMMPS interface (``aenetPyLammps``).
This is faster than calling ``aenet`` directly because it does not need file I/O.
To use ``aenetPyLammps``, you need to install ``aenet-lammps`` and ``lammps``.
For details, please refer to the :ref:`tutorial_aenet_lammps`.
71 changes: 71 additions & 0 deletions docs/sphinx/en/source/tutorial/aenet.rst
Original file line number Diff line number Diff line change
Expand Up @@ -522,3 +522,74 @@ Also, please note that the number of Monte Carlo steps in this example input is
fully converging the degree of inversion. It is recommended to perform a separate
RXMC calculation using the obtained neural network model
with a larger number of sampling steps to calculate thermodynamic averages.


.. _tutorial_aenet_lammps:

Predict energy of annet model via LAMMPS interface
----------------------------------------------------

abICS can call the ``aenet`` library via the LAMMPS interface (``aenetPyLammps``).
This is faster than calling ``aenet`` directly because it does not need file I/O.
The set of input files used in this tutorial can be found in ``examples/active_learning_qe``.

Install aenetPyLammps
~~~~~~~~~~~~~~~~~~~~~~~~

To use ``aenetPyLammps``, you need to install ``aenet-lammps`` and ``lammps``.

- URL : https://github.com/HidekiMori-CIT/aenet-lammps

- Use `the commit 5d0f4bca <https://github.com/HidekiMori-CIT/aenet-lammps/commit/5d0f4bcacb7cd3ecbcdb0e4fdd9dc3d7bf06af0a>`_ .

- ``git checkout 5d0f4bca``

- Please install ``aenet-lammps``` according to the procedure specified in the above URL. Below are notes on installation.

- ``aenet``

- Make sure to add ``-fPIC`` to ``FCFLAGS`` in ``makefiles/Makefile.*``.

- ``lammps``

- Make sure to add ``LMP_INC = -DLAMMPS_EXCEPTIONS`` in ``src/Makefile``.
- Make sure to add ``mode=shared`` to the make command option as ``make mode=shared mpi`` (when GCC, for example).

- After completing the above installation, run ``make install-python``.

- ``lammps`` python package will be installed to the Python environment which is invoked by ``python`` command.


Training
~~~~~~~~~~~~

The training procedure is the same as the previous section.

Sampling
~~~~~~~~~~~

Input file for prediction
****************************

Instead of the input file ``predict.in`` for ``predict.x``,
place the input file ``in.lammps`` under the ``predict``::

pair_style aenet
pair_coeff * * v00 Al Mg 15t-15t.nn Al Mg
neighbor 0.1 bin


The detailed format of ``in.lammmps`` is written in the README of ``aenet-lammps`` repository.

Input for Sampling
********************

Change the ``type`` and ``run_scheme`` in the ``[sampling.solver]`` section of the input file to ``'aenetPyLammps'`` and ``'function'``, respectively.

.. code-block:: toml
[sampling.solver]
type = 'aenetPyLammps'
base_input_dir = ['./baseinput']
perturb = 0.0
run_scheme = 'function'
47 changes: 5 additions & 42 deletions docs/sphinx/ja/source/how_to_use/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ OpenMX
機械学習モデル訓練および評価用参照ファイルの準備
---------------------------------------------------

使用する機械学習モデルソルバー(現在はaenet, aenetPyLammpsのみに対応)の入力形式に従った入力ファイルを用意します。
使用する機械学習モデルソルバー(現在はaenetのみに対応)の入力形式に従った入力ファイルを用意します。
参照ファイルのパスはabICSの入力ファイルにある ``[solver]`` セクションの ``base_input_dir`` で指定します。
座標情報については、abICSの入力ファイルを参照するため、記載する必要はありません。

Expand Down Expand Up @@ -166,7 +166,6 @@ aenet
run_scheme = ‘subprocess’
学習データの作成
-------------------

Expand All @@ -187,44 +186,8 @@ aenet

``abics_sampling`` を用いてモンテカルロサンプリングを行います(MPI 実行時に指定するプロセス数はレプリカ数以上である必要があります)。
実行すると、カレントディレクトリ以下にレプリカ番号を名前にもつディレクトリが作られ、各レプリカはその中でソルバーを実行します。
なお、``aenetPyLammps`` を利用すると、 ``lammps`` を利用することでライブラリ化された ``aenet`` を用いた高速サンプリングが可能です。
``aenetPyLammps`` の利用には、 ``aenet-lammps`` および ``lammps`` のインストールが必要です。詳細は以下をご覧ください。


aenetPyLammps
**************

- URL : https://github.com/HidekiMori-CIT/aenet-lammps

- `コミット 5d0f4bc <https://github.com/HidekiMori-CIT/aenet-lammps/commit/5d0f4bcacb7cd3ecbcdb0e4fdd9dc3d7bf06af0a>`_ で動作確認済。

- ``git checkout 5d0f4bc``

- 上記URLで指定された手順に従ってインストールしてください。以下、インストール時の注意事項です。

- ``aenet``

- ``makefiles/Makefile.*`` 中の ``FCFLAGS`` オプションに ``-fPIC`` を追加してください。
- ``lammps``

- ``src/Makefile`` 中に ``LMP_INC = -DLAMMPS_EXCEPTIONS`` を追加してください。
- make 時にオプションで ``mode=shared`` をつけるようにしてください。

- 上記のインストール終了後、 ``make install-python`` を実行してください。

- ``python`` コマンドで起動するPython 環境に ``lammps`` パッケージがインストールされます。

- 参照ファイル(参照ファイルの具体例についてはチュートリアル参照)

- ``aenet-lammps`` 用の入力ファイル ``in.lammps`` を ``[train]`` セクションの ``base_input_dir`` で設定したディレクトリ内の ``predict`` ディレクトリに設置してください。
``in.lammmps`` のフォーマットは、 ``aenet-lammps`` のGitHubリポジトリにあるREADMEを参照してください。

- abICS 入力ファイル

- ``[sampling.solver]`` セクションで ``type`` に ``aenetPyLammps`` 、 ``run_scheme`` に ``function`` を設定してください。

.. code-block:: bash
type = “aenetPyLammps”
run_scheme = ‘function’
なお、 LAMMPSインターフェースをもちいた ``aenet`` ライブラリ呼び込みにも対応しています(``aenetPyLammps``)。
ファイル入出力やプロセスフォークなどを行わないため、 ``aenet`` を直接呼び出すよりも高速に動作します。
``aenetPyLammps`` の利用には、 `aenet-lammps <https://github.com/HidekiMori-CIT/>`_ および `LAMMPS <https://www.lammps.org/>`_ のインストールが必要です。
インストールや使い方の詳細は :ref:`tutorial_aenet_lammps` を参照してください。

68 changes: 68 additions & 0 deletions docs/sphinx/ja/source/tutorial/aenet.rst
Original file line number Diff line number Diff line change
Expand Up @@ -538,3 +538,71 @@ VASPのPOSCARファイル形式で記載された各ステップごとの原子
また、反転度の計算を完全に収束させるためには、例題のモンテカルロステップ数では不十分であることにご注意ください。
能動学習のサイクルとは別にモンテカルロステップ数を増やした計算を行って、熱力学平均を計算することをおすすめ
します。


.. _tutorial_aenet_lammps:

LAMMPS インターフェースを利用したサンプリング
----------------------------------------------

モンテカルロサンプリングにおいては、 LAMMPSインターフェースをもちいた ``aenet`` ライブラリ呼び出しにも対応しています(``aenetPyLammps`` ソルバー)。
ファイル入出力などを行わないため、 ``aenet`` をプロセスとして呼び出すよりも高速に動作します。
入力ファイル例としては ``examples/active_learning_qe_lammps`` を参考にしてください。

aenet-lammps のインストール
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

``aenetPyLammps`` の利用には、 ``aenet-lammps`` を組み込んだ LAMMPS のインストールが必要です。

- URL : https://github.com/HidekiMori-CIT/aenet-lammps

- `コミット 5d0f4bc <https://github.com/HidekiMori-CIT/aenet-lammps/commit/5d0f4bcacb7cd3ecbcdb0e4fdd9dc3d7bf06af0a>`_ で動作確認済。

- ``git checkout 5d0f4bc``

- 上記URLで指定された手順に従ってインストールしてください。以下、インストール時の注意事項です。

- ``aenet``

- ``makefiles/Makefile.*`` 中の ``FCFLAGS`` オプションに ``-fPIC`` を追加してください。
- ``lammps``

- ``src/Makefile`` 中に ``LMP_INC = -DLAMMPS_EXCEPTIONS`` を追加してください。
- make 時にオプションで ``mode=shared`` をつけるようにしてください。

- 上記のインストール終了後、 ``make install-python`` を実行してください。

- ``python`` コマンドで起動するPython 環境に ``lammps`` パッケージがインストールされます。


モデル学習
~~~~~~~~~~~

モデル学習のやりかたは前述の ``aenet`` によるものと同様です。

サンプリング
~~~~~~~~~~~~~

predict 用入力ファイル
**************************

``predict.x`` でつかわれていた入力ファイル ``predict.in`` のかわりに、以下のような入力ファイル ``in.lammps`` を ``predict`` ディレクトリに設置してください::

pair_style aenet
pair_coeff * * v00 Al Mg 15t-15t.nn Al Mg
neighbor 0.1 bin

入力ファイルフォーマットの詳細は ``aenet-lammps`` リポジトリの README を参照してください。

サンプリング
******************

``[sanmping.solver]`` セクションの ``type`` を ``'aenetPyLammps'`` に、 ``run_scheme`` を ``'function'`` に設定すると、 LAMMPS インターフェースを利用したサンプリングを実行できます。

.. code-block:: toml
[sampling.solver]
type = 'aenetPyLammps'
base_input_dir = ['./baseinput']
perturb = 0.0
run_scheme = 'function'

0 comments on commit 46c7f0d

Please sign in to comment.