Exception: ERROR: Unrecognized fix style 'shake' is part of the RIGID package which is not enabled in this LAM

509 Views Asked by At

I'm trying to run a LAMMPS script in a Colab environment. However, whenever I try to use the fix command with arguments from the RIGID package the console gives me the same error.

I tested different installation and build methods, such as through apt repository and 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

I also tested it by calling an external script using the file() method and writing commands to LAMMPS using the command() method.

The part of my code in the python script that returns an error is::

    !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")

Or the same rows in LAMMPS script called:

    #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()

The output error is:


    ---------------------------------------------------------------------------
    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

Any suggestions what I can do?

1

There are 1 best solutions below

0
Ali Khosravi On BEST ANSWER

You need to enable the RIGID package. For better flexibility on LAMMPS features it is better to build it from source code:

Download the latest stable version, and change the directory into it

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

Inclued all packes you need, obviously you need RIGID to use fix shake

make yes-rigid 

Now you will need to build using MPI and share its library. This may take a while, you can add '-j N' flag to do it in parallel with N cores, I do it with 8

make mpi mode=shlib -j 8      

Finally install Pylammps

make install-python

Now you should be able to use PyLammps through Colab successfully.