compile parallel (using mpich2) lammps with static library on ubuntu

Hello everyone,
I am trying to compile parallel (using mpich2) lammps with static library on ubuntu. but when I followed the procedure in lammps manual. I always got error message (The command ‘make makelib’ seem to work. But after I entered this command

make -f Makefile.lib ubuntu

I got the error message:

make: *** [ubuntu] Error 1

I don’t know how to do. Do I need to modify anything in the Makefile.lib? The content in the Makefile.lib is quite different from other makefiles like Makefile.g++. I just can’t follow the content.

). Could anyone provide a step-by-step procedure to the installation of parallel (using mpich2) lammps with static library on ubuntu? I will appreciate your help so much.
Guangyu Wang

do you get any further information about the error in make?

Hello everyone,
I am trying to compile parallel (using mpich2) lammps with static library
on ubuntu. but when I followed the procedure in lammps manual. I always got
error message (The command 'make makelib' seem to work. But after I entered
this command

make -f Makefile.lib ubuntu

I got the error message:

make: *** [ubuntu] Error 1

​is that the *only* output?

what *version* of LAMMPS is this? the MAKE/Makefile.ubuntu was added only
very recently.

BTW: i think the default MPI library on ubuntu is OpenMPI.

axel.

Dear Mr.Pablo,
I just found a Makefile.ubuntu on the internet which seems to work. However when I tried to use it, another error message emerged (

root@…1531…:~/Lammps/src# make ubuntu
make[1]: Entering directory /home/gw/Lammps/src/Obj_ubuntu' mpic++ -g -O -DLAMMPS_GZIP -DLAMMPS_JPEG -DLAMMPS_PNG -DLAMMPS_FFMPEG -DFFT_FFTW3 -c ../fft3d.cpp In file included from ../fft3d.cpp:25:0: ../fft3d.h:217:19: fatal error: fftw3.h: No such file or directory compilation terminated. make[1]: *** [fft3d.o] Error 1 make[1]: Leaving directory /home/gw/Lammps/src/Obj_ubuntu’
make: *** [ubuntu] Error 2
), still working on that.
The Makefile.ubuntu is like this:

ubuntu = Ubuntu Linux box, g++, openmpi, FFTW3

SHELL = /bin/sh

---------------------------------------------------------------------

compiler/linker settings

specify flags and libraries needed for your compiler

CC = mpic++
CCFLAGS = -g -O # -Wunused
SHFLAGS = -fPIC
DEPFLAGS = -M

LINK = mpic++
LINKFLAGS = -g -O
LIB =
SIZE = size

ARCHIVE = ar
ARFLAGS = -rc
SHLIBFLAGS = -shared

---------------------------------------------------------------------

LAMMPS-specific settings

specify settings for LAMMPS features you will use

if you change any -D setting, do full re-compile after “make clean”

LAMMPS ifdef settings, OPTIONAL

see possible settings in doc/Section_start.html#2_2 (step 4)

LMP_INC = -DLAMMPS_GZIP -DLAMMPS_JPEG -DLAMMPS_PNG -DLAMMPS_FFMPEG

MPI library, REQUIRED

see discussion in doc/Section_start.html#2_2 (step 5)

can point to dummy MPI library in src/STUBS as in Makefile.serial

INC = path for mpi.h, MPI compiler settings

PATH = path for MPI library

LIB = name of MPI library

MPI_INC =
MPI_PATH =
MPI_LIB =

FFT library, OPTIONAL

see discussion in doc/Section_start.html#2_2 (step 6)

can be left blank to use provided KISS FFT library

INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings

PATH = path for FFT library

LIB = name of FFT library

FFT_INC = -DFFT_FFTW3
FFT_PATH =
FFT_LIB = -lfftw3

JPEG and/or PNG library, OPTIONAL

see discussion in doc/Section_start.html#2_2 (step 7)

only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC

INC = path(s) for jpeglib.h and/or png.h

PATH = path(s) for JPEG library and/or PNG library

LIB = name(s) of JPEG library and/or PNG library

JPG_INC =
JPG_PATH =
JPG_LIB = -ljpeg -lpng

---------------------------------------------------------------------

build rules and dependencies

no need to edit this section

include Makefile.package.settings
include Makefile.package

EXTRA_INC = (LMP_INC) (PKG_INC) (MPI_INC) (FFT_INC) (JPG_INC) (PKG_SYSINC)
EXTRA_PATH = (PKG_PATH) (MPI_PATH) (FFT_PATH) (JPG_PATH) (PKG_SYSPATH) EXTRA_LIB = (PKG_LIB) (MPI_LIB) (FFT_LIB) (JPG_LIB) (PKG_SYSLIB)

Path to src files

vpath .cpp .. vpath .h …

Link target

(EXE): (OBJ)
(LINK) (LINKFLAGS) (EXTRA_PATH) (OBJ) (EXTRA_LIB) (LIB) -o (EXE) (SIZE) $(EXE)

Library targets

lib: (OBJ) (ARCHIVE) (ARFLAGS) (EXE) $(OBJ)

shlib: (OBJ) (CC) (CCFLAGS) (SHFLAGS) (SHLIBFLAGS) (EXTRA_PATH) -o (EXE) \ (OBJ) (EXTRA_LIB) (LIB)

Compilation rules

.o:.cpp
(CC) (CCFLAGS) (SHFLAGS) (EXTRA_INC) -c $<

.d:.cpp
(CC) (CCFLAGS) (EXTRA_INC) (DEPFLAGS) < > @

Individual dependencies

DEPENDS = (OBJ:.o=.d) sinclude (DEPENDS).

I am still trying to understand how to use it…
Thanks a lot for your reply.
Guangyu Wang

Dear Mr.Pablo,
I just found a Makefile.ubuntu on the internet which seems to work.
However when I tried to use it, another error message emerged (

[email protected]...:~/Lammps/src# make ubuntu
make[1]: Entering directory `/home/gw/Lammps/src/Obj_ubuntu'
mpic++ -g -O -DLAMMPS_GZIP -DLAMMPS_JPEG -DLAMMPS_PNG -DLAMMPS_FFMPEG
-DFFT_FFTW3 -c ../fft3d.cpp
In file included from ../fft3d.cpp:25:0:
../fft3d.h:217:19: fatal error: fftw3.h: No such file or directory
compilation terminated.
make[1]: *** [fft3d.o] Error 1
make[1]: Leaving directory `/home/gw/Lammps/src/Obj_ubuntu'
make: *** [ubuntu] Error 2
), still working on that.

​please read​ the LAMMPS installation instructions and don't skip ahead. it
is all there. also, since you are compiling, you should use the latest
version of LAMMPS, which *does* contain a proper Makefile.ubuntu with the
additional, important comments in its header:

# ubuntu = Ubuntu Linux box, g++, openmpi, FFTW3

# you have to install the packages g++, mpi-default-bin, mpi-default-dev,
# libfftw3-dev, libjpeg-dev and libpng12-dev to compile LAMMPS with this
# makefile

​axel.​

Mr. Axel,
Thanks a lot for your suggestion. I will try.
Guangyu Wang