diff --git a/lib/kim/Install.py b/lib/kim/Install.py index 315bb4e11c47cd41ec28935255fa9e76c9bedbc2..f7ddcfda967ae0f7ae0b95fd5efd928e8416c8ba 100644 --- a/lib/kim/Install.py +++ b/lib/kim/Install.py @@ -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) diff --git a/lib/mscg/.gitignore b/lib/mscg/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..7d45bcb60a974bad8d29a88e15e04c41de049451 --- /dev/null +++ b/lib/mscg/.gitignore @@ -0,0 +1,4 @@ +# files to ignore +/liblink +/includelink +/MSCG-release-master diff --git a/lib/mscg/Install.py b/lib/mscg/Install.py index 7b10be189fee9b5c60fb84d318dcf388fb510926..db86b0a7a632e782ac4ccdd115196d98665ab166 100644 --- a/lib/mscg/Install.py +++ b/lib/mscg/Install.py @@ -3,127 +3,133 @@ # 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 # process leading '~' or relative path - + def fullpath(path): return os.path.abspath(os.path.expanduser(path)) - + # parse args 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 (buildflag and pathflag): + error("Cannot use -b and -p flag at the same time") -if grabflag: - print "Downloading MS-CG ..." - cmd = "curl -L %s > %s/%s" % (url,homepath,zipfile) - print cmd - print commands.getoutput(cmd) +# download and unpack MS-CG tarfile - 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) +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) diff --git a/lib/poems/Makefile.g++ b/lib/poems/Makefile.g++ index 54c897a22ccf976adcfd24220e6648fe26e86dc0..afcbc4a01df37268840643042ba6cb7921151c40 100644 --- a/lib/poems/Makefile.g++ +++ b/lib/poems/Makefile.g++ @@ -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 diff --git a/lib/poems/Makefile.mingw32-cross b/lib/poems/Makefile.mingw32-cross deleted file mode 100644 index 17e81b51f0f1836c4b4a910fca09a8381b4a459d..0000000000000000000000000000000000000000 --- a/lib/poems/Makefile.mingw32-cross +++ /dev/null @@ -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) diff --git a/lib/poems/Makefile.mingw32-cross-mpi b/lib/poems/Makefile.mingw32-cross-mpi deleted file mode 100644 index 1e35c5b46151a9c380a87c3a501bb6a758d2d4eb..0000000000000000000000000000000000000000 --- a/lib/poems/Makefile.mingw32-cross-mpi +++ /dev/null @@ -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 - diff --git a/lib/poems/Makefile.mingw64-cross-mpi b/lib/poems/Makefile.mingw64-cross-mpi deleted file mode 100644 index ca6f4a6d43226f15bcf0e0a431b20528cfc7ff4b..0000000000000000000000000000000000000000 --- a/lib/poems/Makefile.mingw64-cross-mpi +++ /dev/null @@ -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 - diff --git a/lib/poems/Makefile.mingw64-cross b/lib/poems/Makefile.mpi similarity index 86% rename from lib/poems/Makefile.mingw64-cross rename to lib/poems/Makefile.mpi index 2df43dea947724307d9bac6652c81f2c7823ffba..0f0546419c7215f1c0f060874945317e266d0561 100644 --- a/lib/poems/Makefile.mingw64-cross +++ b/lib/poems/Makefile.mpi @@ -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) diff --git a/lib/poems/Makefile.serial b/lib/poems/Makefile.serial new file mode 120000 index 0000000000000000000000000000000000000000..9d7bb000f9d5074bfe1234ef4c2ade3eea216c31 --- /dev/null +++ b/lib/poems/Makefile.serial @@ -0,0 +1 @@ +Makefile.g++ \ No newline at end of file diff --git a/lib/qmmm/Makefile.mpi b/lib/qmmm/Makefile.mpi new file mode 100644 index 0000000000000000000000000000000000000000..590b1047f89ac96515061651d1796d372daa7644 --- /dev/null +++ b/lib/qmmm/Makefile.mpi @@ -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 diff --git a/lib/qmmm/Makefile.serial b/lib/qmmm/Makefile.serial new file mode 100644 index 0000000000000000000000000000000000000000..f09148279263fc5907be3a55e9df9fae8078c569 --- /dev/null +++ b/lib/qmmm/Makefile.serial @@ -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 diff --git a/lib/reax/Makefile.gfortran b/lib/reax/Makefile.gfortran index b2b16fcc57cf5faacc2ca5058dfff014ac91dd76..ab423016887a444548529d84c6a32d03fdb5c880 100644 --- a/lib/reax/Makefile.gfortran +++ b/lib/reax/Makefile.gfortran @@ -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 = diff --git a/lib/reax/Makefile.lammps.empty b/lib/reax/Makefile.lammps.empty new file mode 100644 index 0000000000000000000000000000000000000000..758755f3c8064d8b40d3d1af1310bd093a366004 --- /dev/null +++ b/lib/reax/Makefile.lammps.empty @@ -0,0 +1,5 @@ +# Settings that the LAMMPS build will import when this package library is used + +reax_SYSINC = +reax_SYSLIB = +reax_SYSPATH = diff --git a/lib/reax/Makefile.mpi b/lib/reax/Makefile.mpi new file mode 100644 index 0000000000000000000000000000000000000000..142f7e9bc6ffc01a1e18fe12548af8e1b4638564 --- /dev/null +++ b/lib/reax/Makefile.mpi @@ -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) diff --git a/lib/reax/Makefile.serial b/lib/reax/Makefile.serial new file mode 120000 index 0000000000000000000000000000000000000000..c52fbcb986822e3dfdc79a978a876fb39a762f71 --- /dev/null +++ b/lib/reax/Makefile.serial @@ -0,0 +1 @@ +Makefile.gfortran \ No newline at end of file diff --git a/lib/smd/Install.py b/lib/smd/Install.py index 337f993be5d192623996aa2f1cf361f0ff54eba2..fe0283563969b928b308974bf09cd766732206fe 100644 --- a/lib/smd/Install.py +++ b/lib/smd/Install.py @@ -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) diff --git a/lib/smd/Makefile.lammps b/lib/smd/Makefile.lammps index 7bbf3924ef933076644c6c30c65871fcf2875cb0..6951a1394cfe928a4aa0fc6ac96281fd6d20d3db 100644 --- a/lib/smd/Makefile.lammps +++ b/lib/smd/Makefile.lammps @@ -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 = diff --git a/lib/voronoi/Install.py b/lib/voronoi/Install.py index 17bba5e8eb5cdfe0e0cd013c74433c894c4f4038..6db0495a37f048ab94dff1d04d5eb2551bb46912 100644 --- a/lib/voronoi/Install.py +++ b/lib/voronoi/Install.py @@ -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)