0

我正在尝试LAMMPS在环境中运行脚本Colab。但是,每当我尝试将fix命令与RIGID包中的参数一起使用时,控制台都会给我同样的错误。

我测试了不同的安装和构建方法,例如通过apt存储库和CMAKE

Method 1

    !add-apt-repository -y ppa:gladky-anton/lammps
    !add-apt-repository -y ppa:openkim/latest
    !apt update
    !apt install -y lammps-stable

Method 2

    !apt install -y cmake build-essential git ccache
    !rm -rf lammps
    !git clone -b release https://github.com/lammps/lammps.git mylammps

    !rm -rf build
    !mkdir build
    !apt install -y fftw3
    !cd build; cmake ../mylammps/cmake/presets/most.cmake -D CMAKE_INSTALL_PREFIX=/usr \
    -D CMAKE_CXX_COMPILER_LAUNCHER=ccache -D BUILD_SHARED_LIBS=on\
    -D PKG_GPU=on -D GPU_API=cuda -D LAMMPS_EXCEPTIONS=on -D PKG_BODY=on\
    -D PKG_KSPACE=on -D PKG_MOLECULE=on -D PKG_MANYBODY=on -D PKG_ASPHERE=on\
    -D PKG_EXTRA-MOLECULE=on -D PKG_KSPACE=on -D PKG_CG-DNA=on -D PKG_ATC=on\
    -D PKG_ EXTRA-FIX=on -D PKG_FIX=on\
    -D PKG_RIGID=on -D PKG_POEMS=on -D PKG_MACHDYN=on -D PKG_DPD-SMOOTH=on\
    -D PKG_PYTHON=on ../mylammps/cmake
    !cd build; make -j 2
    !cd build; make install; make install-python

我还通过调用external scriptusing 该file()方法并编写命令来LAMMPS使用该command()方法对其进行了测试。

codepython脚本中返回错误的部分是::

    !pip install --user mpi4py
    #!pip install lammps-cython
    from mpi4py import MPI
    from lammps import lammps
    #from lammps import PyLammps
    #from lammps import Lammps
    import glob
    from google.colab import files
    from google.colab import drive
    L = lammps()

...

    L.command("fix            freeze teflon setforce 0.0 0.0 0.0")
    L.command("fix            fSHAKE water shake 0.0001 10 0 b 1 a 1")
    L.command("fix            fRIGID RIG rigid molecule")

或者 LAMMPS 脚本中的相同行称为:

    #Using an external script
    !pip install --user mpi4py
    #!pip install lammps-cython
    from mpi4py import MPI
    from lammps import lammps
    #from lammps import PyLammps
    #from lammps import Lammps
    import glob
    from google.colab import files
    from google.colab import drive
    L = lammps()

...

    L.file(input[0])
    me = MPI.COMM_WORLD.Get_rank()
    nprocs = MPI.COMM_WORLD.Get_size()
    print("Proc %d out of %d procs has" % (me,nprocs),L)
    MPI.Finalize()

输出错误是:


    ---------------------------------------------------------------------------
    Exception                                 Traceback (most recent call last)
    <ipython-input-60-a968719e9bc6> in <module>()
          1 L = lammps()
    ----> 2 L.file(input[0])
          3 me = MPI.COMM_WORLD.Get_rank()
          4 nprocs = MPI.COMM_WORLD.Get_size()
          5 print("Proc %d out of %d procs has" % (me,nprocs),L)
    
    1 frames
    /usr/local/lib/python3.7/site-packages/lammps/core.py in file(self, path)
        559 
        560     with ExceptionCheck(self):
    --> 561       self.lib.lammps_file(self.lmp, path)
        562 
        563   # -------------------------------------------------------------------------
    
    /usr/local/lib/python3.7/site-packages/lammps/core.py in __exit__(self, exc_type, exc_value, traceback)
         47   def __exit__(self, exc_type, exc_value, traceback):
         48     if self.lmp.has_exceptions and self.lmp.lib.lammps_has_error(self.lmp.lmp):
    ---> 49       raise self.lmp._lammps_exception
         50 
         51 # -------------------------------------------------------------------------
    
    Exception: ERROR: Unrecognized fix style 'shake' is part of the RIGID package which is not enabled in this LAM

有什么建议我能做什么?

4

1 回答 1

0

您需要启用 RIGID 包。为了更好地使用 LAMMPS 功能,最好从源代码构建它:

下载最新的稳定版本,并将目录更改为

git clone -b stable https://github.com/lammps/lammps.git mylammps
cd mylammps/src

包括您需要的所有包装,显然您需要 RIGID 才能使用修复震动

make yes-rigid 

现在您需要使用 MPI 构建并共享它的库。这可能需要一段时间,您可以添加“-j N”标志以与 N 个内核并行执行,我使用 8 个执行

make mpi mode=shlib -j 8      

最后安装 Pylammps

make install-python

现在您应该可以通过 Colab 成功使用 PyLammps。

于 2022-02-19T16:19:59.843 回答