more lib compilation updates

This commit is contained in:
Axel Kohlmeyer
2017-08-08 07:20:33 -04:00
parent 8bba29d91e
commit b3244f9c98
18 changed files with 312 additions and 250 deletions

View File

@ -12,7 +12,7 @@ try:
except: from urllib import urlretrieve as geturl
except:
def geturl(url,fname):
cmd = "curl -o %s %s" % (fname,url)
cmd = 'curl -L -o "%s" %s' % (fname,url)
txt = subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True)
return txt
@ -139,7 +139,7 @@ if buildflag:
if os.path.isdir(kimdir):
print("kim-api is already installed at %s.\nRemoving it for re-install" % kimdir)
cmd = "rm -rf %s" % kimdir
cmd = 'rm -rf "%s"' % kimdir
subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True)
# configure LAMMPS to use kim-api to be installed
@ -160,48 +160,48 @@ if buildflag:
print("Downloading kim-api tarball ...")
geturl(url,"%s/%s.tgz" % (thisdir,version))
print("Unpacking kim-api tarball ...")
cmd = "cd %s; rm -rf %s; tar zxvf %s.tgz" % (thisdir,version,version)
cmd = 'cd "%s"; rm -rf "%s"; tar -xzvf %s.tgz' % (thisdir,version,version)
subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True)
# configure kim-api
print("Configuring kim-api ...")
cmd = "cd %s/%s; ./configure --prefix='%s'" % (thisdir,version,kimdir)
cmd = 'cd "%s/%s"; ./configure --prefix="%s"' % (thisdir,version,kimdir)
subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True)
# build kim-api
print("Configuring example Models")
cmd = "cd %s/%s; make add-examples" % (thisdir,version)
cmd = 'cd "%s/%s"; make add-examples' % (thisdir,version)
txt = subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True)
if verboseflag: print (txt.decode("UTF-8"))
if everythingflag:
print("Configuring all OpenKIM models, this will take a while ...")
cmd = "cd %s/%s; make add-OpenKIM" % (thisdir,version)
cmd = 'cd "%s/%s"; make add-OpenKIM' % (thisdir,version)
txt = subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True)
if verboseflag: print(txt.decode("UTF-8"))
print("Building kim-api ...")
cmd = "cd %s/%s; make" % (thisdir,version)
cmd = 'cd "%s/%s"; make' % (thisdir,version)
txt = subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True)
if verboseflag: print(txt.decode("UTF-8"))
# install kim-api
print("Installing kim-api ...")
cmd = "cd %s/%s; make install" % (thisdir,version)
cmd = 'cd "%s/%s"; make install' % (thisdir,version)
txt = subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True)
if verboseflag: print(txt.decode("UTF-8"))
cmd = "cd %s/%s; make install-set-default-to-v1" %(thisdir,version)
cmd = 'cd "%s/%s"; make install-set-default-to-v1' %(thisdir,version)
txt = subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True)
if verboseflag: print(txt.decode("UTF-8"))
# remove source files
print("Removing kim-api source and build files ...")
cmd = "cd %s; rm -rf %s; rm -rf %s.tgz" % (thisdir,version,version)
cmd = 'cd "%s"; rm -rf %s; rm -rf %s.tgz' % (thisdir,version,version)
subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True)
# add a single model (and possibly its driver) to existing KIM installation
@ -219,11 +219,11 @@ if addflag:
geturl(url,"%s/%s.tgz" % (thisdir,addmodelname))
print("Unpacking item tarball ...")
cmd = "cd %s; tar zxvf %s.tgz" % (thisdir,addmodelname)
cmd = 'cd "%s"; tar -xzvf %s.tgz' % (thisdir,addmodelname)
subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True)
print("Building item ...")
cmd = "cd %s/%s; make; make install" %(thisdir,addmodelname)
cmd = 'cd "%s/%s"; make; make install' %(thisdir,addmodelname)
try:
txt = subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True)
except subprocess.CalledProcessError as e:
@ -231,18 +231,18 @@ if addflag:
# Error: but first, check to see if it needs a driver
firstRunOutput = e.output.decode("UTF-8")
cmd = "cd %s/%s; make kim-item-type" % (thisdir,addmodelname)
cmd = 'cd "%s/%s"; make kim-item-type' % (thisdir,addmodelname)
txt = subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True)
txt = txt.decode("UTF-8")
if txt == "ParameterizedModel":
# Get and install driver
cmd = "cd %s/%s; make model-driver-name" % (thisdir,addmodelname)
cmd = 'cd "%s/%s"; make model-driver-name' % (thisdir,addmodelname)
txt = subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True)
adddrivername = txt.decode("UTF-8").strip()
print("First installing model driver: %s..." % adddrivername)
cmd = "cd %s; python Install.py -n -a %s" % (thisdir,adddrivername)
cmd = 'cd "%s"; python Install.py -n -a %s' % (thisdir,adddrivername)
try:
txt = subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True)
except subprocess.CalledProcessError as e:
@ -254,7 +254,7 @@ if addflag:
# now install the model that needed the driver
print("Now installing model : %s" % addmodelname)
cmd = "cd %s; python Install.py -n -a %s" % (thisdir,addmodelname)
cmd = 'cd "%s"; python Install.py -n -a %s' % (thisdir,addmodelname)
try:
txt = subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True)
except subprocess.CalledProcessError as e:
@ -272,5 +272,5 @@ if addflag:
if verboseflag: print(txt.decode("UTF-8"))
print("Removing kim item source and build files ...")
cmd = "cd %s; rm -rf %s; rm -rf %s.tgz" %(thisdir,addmodelname,addmodelname)
cmd = 'cd "%s"; rm -rf %s; rm -rf %s.tgz' %(thisdir,addmodelname,addmodelname)
subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True)

4
lib/mscg/.gitignore vendored Normal file
View File

@ -0,0 +1,4 @@
# files to ignore
/liblink
/includelink
/MSCG-release-master

View File

@ -3,45 +3,48 @@
# Install.py tool to download, unpack, build, and link to the MS-CG library
# used to automate the steps described in the README file in this dir
import sys,os,re,commands
from __future__ import print_function
import sys,os,re,subprocess
try:
import ssl
try: from urllib.request import urlretrieve as geturl
except: from urllib import urlretrieve as geturl
except:
def geturl(url,fname):
cmd = 'curl -L -o "%s" %s' % (fname,url)
txt = subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True)
return txt
# help message
help = """
Syntax from src dir: make lib-mscg args="-h hpath hdir -g -b [suffix] -l"
Syntax from lib dir: python Install.py -h hpath hdir -g -b [suffix] -l
Syntax from src dir: make lib-mscg args="-p [path] -m [suffix]"
Syntax from lib dir: python Install.py -p [path] -m [suffix]
specify one or more options, order does not matter
-h = set home dir of MS-CG to be hpath/hdir
hpath can be full path, contain '~' or '.' chars
default hpath = . = lib/mscg
default hdir = MSCG-release-master = what GitHub zipfile unpacks to
-g = grab (download) zipfile from MS-CG GitHub website
unpack it to hpath/hdir
hpath must already exist
if hdir already exists, it will be deleted before unpack
-b = build MS-CG library in its src dir
optional suffix specifies which src/Make/Makefile.suffix to use
-b = download and build MS-CG library (default)
-p = specify folder of existing MS-CG installation
-m = machine suffix specifies which src/Make/Makefile.suffix to use
default suffix = g++_simple
-l = create 2 softlinks (includelink,liblink) in lib/mscg to MS-CG src dir
Example:
make lib-mscg args="-g -b -l" # download/build in lib/mscg/MSCG-release-master
make lib-mscg args="-b " # download/build in lib/mscg/MSCG-release-master
"""
# settings
url = "https://github.com/uchicago-voth/MSCG-release/archive/master.zip"
zipfile = "MS-CG-master.zip"
zipdir = "MSCG-release-master"
url = "http://github.com/uchicago-voth/MSCG-release/archive/master.tar.gz"
tarfile = "MS-CG-master.tar.gz"
tardir = "MSCG-release-master"
# print error message or help
def error(str=None):
if not str: print help
else: print "ERROR",str
if not str: print(help)
else: print("ERROR",str)
sys.exit()
# expand to full path name
@ -54,76 +57,79 @@ def fullpath(path):
args = sys.argv[1:]
nargs = len(args)
if nargs == 0: error()
homepath = "."
homedir = zipdir
homedir = tardir
grabflag = 0
buildflag = 0
buildflag = True
pathflag = False
linkflag = True
msuffix = "g++_simple"
linkflag = 0
iarg = 0
while iarg < nargs:
if args[iarg] == "-h":
if iarg+3 > nargs: error()
homepath = args[iarg+1]
homedir = args[iarg+2]
iarg += 3
elif args[iarg] == "-g":
grabflag = 1
iarg += 1
if args[iarg] == "-p":
if iarg+2 > nargs: error()
mscgpath = fullpath(args[iarg+1])
pathflag = True
buildflag = False
iarg += 2
elif args[iarg] == "-m":
if iarg+2 > nargs: error()
msuffix = args[iarg+1]
iarg += 2
elif args[iarg] == "-b":
buildflag = 1
if iarg+1 < nargs and args[iarg+1][0] != '-':
msuffix = args[iarg+1]
iarg += 1
iarg += 1
elif args[iarg] == "-l":
linkflag = 1
buildflag = True
iarg += 1
else: error()
homepath = fullpath(homepath)
if not os.path.isdir(homepath): error("MS-CG path does not exist")
homedir = "%s/%s" % (homepath,homedir)
# download and unpack MS-CG zipfile
if (pathflag):
if not os.path.isdir(mscgpath): error("MS-CG path does not exist")
homedir = mscgpath
if grabflag:
print "Downloading MS-CG ..."
cmd = "curl -L %s > %s/%s" % (url,homepath,zipfile)
print cmd
print commands.getoutput(cmd)
if (buildflag and pathflag):
error("Cannot use -b and -p flag at the same time")
print "Unpacking MS-CG zipfile ..."
if os.path.exists("%s/%s" % (homepath,zipdir)):
commands.getoutput("rm -rf %s/%s" % (homepath,zipdir))
cmd = "cd %s; unzip %s" % (homepath,zipfile)
commands.getoutput(cmd)
if os.path.basename(homedir) != zipdir:
if os.path.exists(homedir): commands.getoutput("rm -rf %s" % homedir)
os.rename("%s/%s" % (homepath,zipdir),homedir)
# download and unpack MS-CG tarfile
if buildflag:
print("Downloading MS-CG ...")
geturl(url,"%s/%s" % (homepath,tarfile))
print("Unpacking MS-CG tarfile ...")
if os.path.exists("%s/%s" % (homepath,tardir)):
cmd = 'rm -rf "%s/%s"' % (homepath,tardir)
subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True)
cmd = 'cd "%s"; tar -xzvf %s' % (homepath,tarfile)
subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True)
os.remove("%s/%s" % (homepath,tarfile))
if os.path.basename(homedir) != tardir:
if os.path.exists(homedir):
cmd = 'rm -rf "%s"' % homedir
subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True)
os.rename("%s/%s" % (homepath,tardir),homedir)
# build MS-CG
if buildflag:
print "Building MS-CG ..."
cmd = "cd %s/src; cp Make/Makefile.%s .; make -f Makefile.%s" % \
print("Building MS-CG ...")
cmd = 'cd "%s/src"; cp Make/Makefile.%s .; make -f Makefile.%s' % \
(homedir,msuffix,msuffix)
txt = commands.getoutput(cmd)
print txt
txt = subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True)
print(txt.decode('UTF-8'))
# create 2 links in lib/mscg to MS-CG src dir
if linkflag:
print "Creating links to MS-CG include and lib files"
print("Creating links to MS-CG include and lib files")
if os.path.isfile("includelink") or os.path.islink("includelink"):
os.remove("includelink")
if os.path.isfile("liblink") or os.path.islink("liblink"):
os.remove("liblink")
cmd = "ln -s %s/src includelink" % homedir
commands.getoutput(cmd)
cmd = "ln -s %s/src liblink" % homedir
commands.getoutput(cmd)
cmd = 'ln -s "%s/src" includelink' % homedir
subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True)
cmd = 'ln -s "%s/src" liblink' % homedir
subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True)

View File

@ -68,7 +68,7 @@ OBJ = $(SRC:.cpp=.o)
# ------ SETTINGS ------
CC = g++
CCFLAGS = -O -g -fPIC -Wall #-Wno-deprecated
CCFLAGS = -O3 -g -fPIC -Wall #-Wno-deprecated
ARCHIVE = ar
ARCHFLAG = -rc
DEPFLAGS = -M

View File

@ -1,110 +0,0 @@
# *
# *_________________________________________________________________________*
# * POEMS: PARALLELIZABLE OPEN SOURCE EFFICIENT MULTIBODY SOFTWARE *
# * DESCRIPTION: SEE READ-ME *
# * FILE NAME: Makefile *
# * AUTHORS: See Author List *
# * GRANTS: See Grants List *
# * COPYRIGHT: (C) 2005 by Authors as listed in Author's List *
# * LICENSE: Please see License Agreement *
# * DOWNLOAD: Free at www.rpi.edu/~anderk5 *
# * ADMINISTRATOR: Prof. Kurt Anderson *
# * Computational Dynamics Lab *
# * Rensselaer Polytechnic Institute *
# * 110 8th St. Troy NY 12180 *
# * CONTACT: anderk5@rpi.edu *
# *_________________________________________________________________________*/
SHELL = /bin/sh
# which file will be copied to Makefile.lammps
EXTRAMAKE = Makefile.lammps.empty
# ------ FILES ------
SRC_MAIN = workspace.cpp system.cpp poemsobject.cpp
INC_MAIN = workspace.h system.h poemsobject.h
SRC_BODY = body.cpp rigidbody.cpp particle.cpp inertialframe.cpp
INC_BODY = bodies.h body.h rigidbody.h particle.h inertialframe.h
SRC_JOINT = joint.cpp revolutejoint.cpp prismaticjoint.cpp sphericaljoint.cpp \
freebodyjoint.cpp body23joint.cpp mixedjoint.cpp
INC_JOINT = joints.h joint.h revolutejoint.h prismaticjoint.h sphericaljoint.h \
freebodyjoint.h body23joint.h mixedjoint.h
SRC_POINT = point.cpp fixedpoint.cpp
INC_POINT = points.h point.h fixedpoint.h
SRC_SOLVE = solver.cpp
INC_SOLVE = solver.h
SRC_ORDERN = onsolver.cpp onfunctions.cpp onbody.cpp
INC_ORDERN = onsolver.h onfunctions.h onbody.h
SRC_MAT = virtualmatrix.cpp matrix.cpp matrixfun.cpp mat3x3.cpp virtualcolmatrix.cpp \
colmatrix.cpp vect3.cpp virtualrowmatrix.cpp rowmatrix.cpp mat6x6.cpp vect6.cpp \
fastmatrixops.cpp colmatmap.cpp eulerparameters.cpp vect4.cpp norm.cpp mat4x4.cpp \
INC_MAT = matrices.h virtualmatrix.h matrix.h matrixfun.h mat3x3.h virtualcolmatrix.h \
colmatrix.h vect3.h virtualrowmatrix.h rowmatrix.h mat6x6.h vect6.h \
fastmatrixops.h colmatmap.h eulerparameters.h vect4.h norm.h mat4x4.h
SRC_MISC = poemstreenode.cpp
INC_MISC = poemslist.h poemstreenode.h poemstree.h poemsnodelib.h SystemProcessor.h defines.h POEMSChain.h
SRC = $(SRC_MAIN) $(SRC_BODY) $(SRC_JOINT) $(SRC_POINT) $(SRC_SOLVE) $(SRC_ORDERN) $(SRC_MAT) $(SRC_MISC)
INC = $(INC_MAIN) $(INC_BODY) $(INC_JOINT) $(INC_POINT) $(INC_SOLVE) $(INC_ORDERN) $(INC_MAT) $(INC_MISC)
FILES = $(SRC) $(INC) Makefile Authors_List.txt Grants_List.txt POEMS_License.txt README Copyright_Notice
# ------ DEFINITIONS ------
DIR = Obj_mingw32/
LIB = $(DIR)libpoems.a
OBJ = $(SRC:%.cpp=$(DIR)%.o)
# ------ SETTINGS ------
CC = i686-w64-mingw32-g++
CCFLAGS = -O2 -march=i686 -mtune=generic -mfpmath=387 -mpc64 \
-ffast-math -funroll-loops -finline-functions -fno-rtti \
-fno-exceptions -fstrict-aliasing \
-Wall -W -Wno-uninitialized
ARCHIVE = i686-w64-mingw32-ar
ARCHFLAG = -rcs
DEPFLAGS = -M
LINK = i686-w64-mingw32-g++
LINKFLAGS = -O
USRLIB =
SYSLIB =
# ------ MAKE PROCEDURE ------
default: $(DIR) $(LIB)
$(DIR):
-mkdir $(DIR)
$(LIB): $(OBJ)
$(ARCHIVE) $(ARFLAGS) $(LIB) $(OBJ)
@cp $(EXTRAMAKE) Makefile.lammps
# ------ COMPILE RULES ------
$(DIR)%.o:%.cpp
$(CC) $(CCFLAGS) -c $< -o $@
# ------ DEPENDENCIES ------
include .depend
# ------ CLEAN ------
clean:
-rm $(DIR)*.o $(DIR)*.d *~ $(LIB)
tar:
-tar -cvf ../POEMS.tar $(FILES)

View File

@ -1,13 +0,0 @@
# -*- makefile -*- wrapper for non-MPI libraries
SHELL=/bin/sh
all:
$(MAKE) $(MFLAGS) mingw32-cross
-rm -f Obj_mingw32-mpi
ln -s Obj_mingw32 Obj_mingw32-mpi
clean:
$(MAKE) $(MFLAGS) clean-mingw32-cross
-rm -f Obj_mingw32-mpi

View File

@ -1,13 +0,0 @@
# -*- makefile -*- wrapper for non-MPI libraries
SHELL=/bin/sh
all:
$(MAKE) $(MFLAGS) mingw64-cross
-rm -f Obj_mingw64-mpi
ln -s Obj_mingw64 Obj_mingw64-mpi
clean:
$(MAKE) $(MFLAGS) clean-mingw64-cross
-rm -f Obj_mingw64-mpi

View File

@ -62,40 +62,31 @@ FILES = $(SRC) $(INC) Makefile Authors_List.txt Grants_List.txt POEMS_License.tx
# ------ DEFINITIONS ------
DIR = Obj_mingw64/
LIB = $(DIR)libpoems.a
OBJ = $(SRC:%.cpp=$(DIR)%.o)
LIB = libpoems.a
OBJ = $(SRC:.cpp=.o)
# ------ SETTINGS ------
CC = x86_64-w64-mingw32-g++
CCFLAGS = -O2 -march=core2 -mtune=core2 -msse2 -mpc64 \
-ffast-math -funroll-loops -finline-functions -fno-rtti \
-fno-exceptions -fstrict-aliasing \
-Wall -W -Wno-uninitialized
ARCHIVE = x86_64-w64-mingw32-ar
ARCHFLAG = -rcs
CC = mpicxx
CCFLAGS = -O3 -g -fPIC -Wall #-Wno-deprecated
ARCHIVE = ar
ARCHFLAG = -rc
DEPFLAGS = -M
LINK = x86_64-w64-mingw32-g++
LINK = mpicxx
LINKFLAGS = -O
USRLIB =
SYSLIB =
# ------ MAKE PROCEDURE ------
default: $(DIR) $(LIB)
$(DIR):
-mkdir $(DIR)
$(LIB): $(OBJ)
lib: $(OBJ)
$(ARCHIVE) $(ARFLAGS) $(LIB) $(OBJ)
@cp $(EXTRAMAKE) Makefile.lammps
# ------ COMPILE RULES ------
$(DIR)%.o:%.cpp
$(CC) $(CCFLAGS) -c $< -o $@
%.o:%.cpp
$(CC) $(CCFLAGS) -c $<
# ------ DEPENDENCIES ------
@ -104,7 +95,7 @@ include .depend
# ------ CLEAN ------
clean:
-rm $(DIR)*.o $(DIR)*.d *~ $(LIB)
-rm *.o *.d *~ $(LIB)
tar:
-tar -cvf ../POEMS.tar $(FILES)

1
lib/poems/Makefile.serial Symbolic link
View File

@ -0,0 +1 @@
Makefile.g++

66
lib/qmmm/Makefile.mpi Normal file
View File

@ -0,0 +1,66 @@
# -*- Makefile -*- for coupling LAMMPS to PWscf for QM/MM molecular dynamics
# this file will be copied to Makefile.lammps
EXTRAMAKE = Makefile.lammps.empty
# top level directory of Quantum ESPRESSO 5.4.1 or later
QETOPDIR=$(HOME)/compile/espresso
# import compiler settings from Quantum ESPRESSO
sinclude $(QETOPDIR)/make.sys
# FLAGS for c++ OpenMPI 1.8.8 or later when QE was compiled with GNU Fortran 4.x
MPICXX=mpicxx
MPICXXFLAGS= -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX=1 -O2 -g -fPIC\
-I../../src -I$(QETOPDIR)/COUPLE/include
MPILIBS=-fopenmp -lgfortran -ldl -ljpeg -lpng -lz -lmpi_mpifh -lmpi
# location of required libraries
# part 1: hi-level libraries for building pw.x
PWOBJS = \
$(QETOPDIR)/COUPLE/src/libqecouple.a \
$(QETOPDIR)/PW/src/libpw.a \
$(QETOPDIR)/Modules/libqemod.a
# part 2: lo-level libraries for all of Q-E
LIBOBJS = \
$(QETOPDIR)/FFTXlib/libqefft.a \
$(QETOPDIR)/LAXlib/libqela.a \
$(QETOPDIR)/clib/clib.a \
$(QETOPDIR)/iotk/src/libiotk.a
# part 3: add-on libraries and main library for LAMMPS
sinclude ../../src/Makefile.package
LAMMPSCFG = mpi
LAMMPSLIB = ../../src/liblammps_$(LAMMPSCFG).a
# part 4: local QM/MM library and progams
SRC=pwqmmm.c libqmmm.c
OBJ=$(SRC:%.c=%.o)
default: libqmmm.a
all : tldeps libqmmm.a pwqmmm.x
pwqmmm.x : pwqmmm.o $(OBJ) $(PWOBJS) $(LIBOBJS) $(LAMMPSLIB)
$(MPICXX) $(LDFLAGS) -o $@ $^ $(PKG_PATH) $(PKG_LIB) $(MPILIBS) $(LIBS)
libqmmm.a: libqmmm.o
$(AR) $(ARFLAGS) $@ $^
@cp $(EXTRAMAKE) Makefile.lammps
%.o: %.c
$(MPICXX) -c $(LAMMPSFLAGS) $(MPICXXFLAGS) $< -o $@
tldeps:
( cd $(QETOPDIR) ; $(MAKE) $(MFLAGS) couple || exit 1)
$(MAKE) -C ../../src $(MFLAGS) $(LAMMPSCFG)
$(MAKE) -C ../../src $(MFLAGS) mode=lib $(LAMMPSCFG)
clean :
-rm -f *.x *.o *.a *~ *.F90 *.d *.mod *.i *.L
# explicit dependencies
pwqmmm.o: pwqmmm.c libqmmm.h
libqmmm.o: libqmmm.c libqmmm.h

66
lib/qmmm/Makefile.serial Normal file
View File

@ -0,0 +1,66 @@
# -*- Makefile -*- for coupling LAMMPS to PWscf for QM/MM molecular dynamics
# this file will be copied to Makefile.lammps
EXTRAMAKE = Makefile.lammps.empty
# top level directory of Quantum ESPRESSO 5.4.1 or later
QETOPDIR=$(HOME)/compile/espresso
# import compiler settings from Quantum ESPRESSO
sinclude $(QETOPDIR)/make.sys
# FLAGS for GNU c++ with STUBS. non-functional for real coupling
MPICXX=g++
MPICXXFLAGS= -I../../src/STUBS -O2 -g -fPIC\
-I../../src -I$(QETOPDIR)/COUPLE/include
MPILIBS=-fopenmp -lgfortran -ldl -ljpeg -lpng -lz -lmpi_mpifh -lmpi
# location of required libraries
# part 1: hi-level libraries for building pw.x
PWOBJS = \
$(QETOPDIR)/COUPLE/src/libqecouple.a \
$(QETOPDIR)/PW/src/libpw.a \
$(QETOPDIR)/Modules/libqemod.a
# part 2: lo-level libraries for all of Q-E
LIBOBJS = \
$(QETOPDIR)/FFTXlib/libqefft.a \
$(QETOPDIR)/LAXlib/libqela.a \
$(QETOPDIR)/clib/clib.a \
$(QETOPDIR)/iotk/src/libiotk.a
# part 3: add-on libraries and main library for LAMMPS
sinclude ../../src/Makefile.package
LAMMPSCFG = mpi
LAMMPSLIB = ../../src/liblammps_$(LAMMPSCFG).a
# part 4: local QM/MM library and progams
SRC=pwqmmm.c libqmmm.c
OBJ=$(SRC:%.c=%.o)
default: libqmmm.a
all : tldeps libqmmm.a pwqmmm.x
pwqmmm.x : pwqmmm.o $(OBJ) $(PWOBJS) $(LIBOBJS) $(LAMMPSLIB)
$(MPICXX) $(LDFLAGS) -o $@ $^ $(PKG_PATH) $(PKG_LIB) $(MPILIBS) $(LIBS)
libqmmm.a: libqmmm.o
$(AR) $(ARFLAGS) $@ $^
@cp $(EXTRAMAKE) Makefile.lammps
%.o: %.c
$(MPICXX) -c $(LAMMPSFLAGS) $(MPICXXFLAGS) $< -o $@
tldeps:
( cd $(QETOPDIR) ; $(MAKE) $(MFLAGS) couple || exit 1)
$(MAKE) -C ../../src $(MFLAGS) $(LAMMPSCFG)
$(MAKE) -C ../../src $(MFLAGS) mode=lib $(LAMMPSCFG)
clean :
-rm -f *.x *.o *.a *~ *.F90 *.d *.mod *.i *.L
# explicit dependencies
pwqmmm.o: pwqmmm.c libqmmm.h
libqmmm.o: libqmmm.c libqmmm.h

View File

@ -28,7 +28,7 @@ OBJ = $(SRC:.F=.o)
# ------ SETTINGS ------
F90 = gfortran
F90FLAGS = -O -fPIC -fno-second-underscore
F90FLAGS = -O3 -fPIC -fno-second-underscore
ARCHIVE = ar
ARCHFLAG = -rc
USRLIB =

View File

@ -0,0 +1,5 @@
# Settings that the LAMMPS build will import when this package library is used
reax_SYSINC =
reax_SYSLIB =
reax_SYSPATH =

51
lib/reax/Makefile.mpi Normal file
View File

@ -0,0 +1,51 @@
# *
# *_________________________________________________________________________*
# * Fortran Library for Reactive Force Field *
# * DESCRIPTION: SEE READ-ME *
# * FILE NAME: Makefile *
# * CONTRIBUTING AUTHORS: Hansohl Cho(MIT), Aidan Thompson(SNL) *
# * and Greg Wagner(SNL) *
# * CONTACT: hansohl@mit.edu, athompson@sandia.gov, gjwagne@sandia.gov *
# *_________________________________________________________________________*/
SHELL = /bin/sh
# which file will be copied to Makefile.lammps
EXTRAMAKE = Makefile.lammps.empty
# ------ FILES ------
SRC = reax_connect.F reax_inout.F reax_lammps.F reax_poten.F reax_reac.F reax_charges.F
HEADERFILES = reax_defs.h *.blk
# ------ DEFINITIONS ------
LIB = libreax.a
OBJ = $(SRC:.F=.o)
# ------ SETTINGS ------
F90 = mpifort
F90FLAGS = -O3 -fPIC
ARCHIVE = ar
ARCHFLAG = -rc
USRLIB =
SYSLIB =
# ------ MAKE PROCEDURE ------
lib: $(OBJ)
$(ARCHIVE) $(ARFLAGS) $(LIB) $(OBJ)
@cp $(EXTRAMAKE) Makefile.lammps
# ------ COMPILE RULES ------
%.o:%.F $(HEADERFILES)
$(F90) $(F90FLAGS) -c $<
# ------ CLEAN ------
clean:
-rm *.o $(LIB)

1
lib/reax/Makefile.serial Symbolic link
View File

@ -0,0 +1 @@
Makefile.gfortran

View File

@ -98,7 +98,7 @@ if buildflag:
edir = glob.glob("%s/eigen-eigen-*" % homepath)
for one in edir:
if os.path.isdir(one):
subprocess.check_output("rm -rf %s" % one,stderr=subprocess.STDOUT,shell=True)
subprocess.check_output('rm -rf "%s"' % one,stderr=subprocess.STDOUT,shell=True)
cmd = 'cd "%s"; tar -xzvf %s' % (homepath,tarball)
subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True)
edir = glob.glob("%s/eigen-eigen-*" % homepath)
@ -113,5 +113,5 @@ if linkflag:
os.remove("includelink")
if pathflag: linkdir = eigenpath
else: linkdir = "%s/%s" % (homepath,homedir)
cmd = "ln -s %s includelink" % linkdir
cmd = 'ln -s "%s" includelink' % linkdir
subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True)

View File

@ -1,5 +1,5 @@
# Settings that the LAMMPS build will import when this package library is used
user-smd_SYSINC =
user-smd_SYSINC = -I../../lib/includelink/eigen3
user-smd_SYSLIB =
user-smd_SYSPATH =

View File

@ -5,8 +5,16 @@
from __future__ import print_function
import sys,os,re,subprocess
try: from urllib.request import urlretrieve as geturl
except: from urllib import urlretrieve as geturl
try:
import ssl
try: from urllib.request import urlretrieve as geturl
except: from urllib import urlretrieve as geturl
except:
def geturl(url,fname):
cmd = 'curl -L -o "%s" %s' % (fname,url)
txt = subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True)
return txt
# help message
@ -55,7 +63,6 @@ nargs = len(args)
homepath = "."
homedir = version
grabflag = True
buildflag = True
pathflag = False
linkflag = True
@ -89,7 +96,7 @@ if (buildflag and pathflag):
# download and unpack Voro++ tarball
if grabflag:
if buildflag:
print("Downloading Voro++ ...")
geturl(url,"%s/%s.tar.gz" % (homepath,version))
@ -122,7 +129,7 @@ if linkflag:
os.remove("includelink")
if os.path.isfile("liblink") or os.path.islink("liblink"):
os.remove("liblink")
cmd = ['ln -s "%s/src" includelink' % homedir, 'includelink']
cmd = 'ln -s "%s/src" includelink' % homedir
subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True)
cmd = ['ln -s "%s/src" liblink' % homedir]
cmd = 'ln -s "%s/src" liblink' % homedir
subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True)