diff --git a/src/MAKE/Makefile.altix b/src/MAKE/Makefile.altix index 6f5a4f7416..233a58d729 100644 --- a/src/MAKE/Makefile.altix +++ b/src/MAKE/Makefile.altix @@ -5,8 +5,9 @@ SHELL = /bin/sh # System-specific settings -# LINKFORT & FORTLIB settings can be blank if not using LAMMPS Fortran libs -# LINKGPU & GPULIB settings can be blank if not using LAMMPS gpu lib +# LINKFORT/FORTLIB settings can be removed if not using meam or reax packages +# LINKBLAS/BLASLIB settings can be removed if not using user-atc package +# LINKGPU/GPULIB settings can be removed if not using gpu package include Makefile.package @@ -16,12 +17,14 @@ DEPFLAGS = -M # one user needed icpc to link LINK = icc LINKFORT = +LINKBLAS = LINKGPU = -LINKFLAGS = $(PKGPATH) $(LINKFORT) -O2 $(LINKGPU) +LINKFLAGS = $(PKGPATH) $(LINKFORT) $(LINKBLAS) $(LINKGPU) USRLIB = $(PKGLIB) FORTLIB = +BLASLIB = GPULIB = -SYSLIB = $(FORTLIB) -lmpi -lscs_mp $(GPULIB) +SYSLIB = $(FORTLIB) $(BLASLIB) $(GPULIB) SIZE = size # Link rule diff --git a/src/MAKE/Makefile.bgl b/src/MAKE/Makefile.bgl index 5c0caba84a..2b20dc64ef 100644 --- a/src/MAKE/Makefile.bgl +++ b/src/MAKE/Makefile.bgl @@ -6,8 +6,9 @@ SHELL = /bin/sh # System-specific settings -# LINKFORT & FORTLIB settings can be blank if not using LAMMPS Fortran libs -# LINKGPU & GPULIB settings can be blank if not using LAMMPS gpu lib +# LINKFORT/FORTLIB settings can be removed if not using meam or reax packages +# LINKBLAS/BLASLIB settings can be removed if not using user-atc package +# LINKGPU/GPULIB settings can be removed if not using gpu package include Makefile.package @@ -18,17 +19,19 @@ CCFLAGS = $(PKGINC) -O3 -DFFT_FFTW -DMPICH_IGNORE_CXX_SEEK DEPFLAGS = -M LINK = /opt/ibmcmp/vacpp/7.0/bin/blrts_xlC LINKFORT = +LINKBLAS = LINKGPU = -LINKFLAGS = $(PKGPATH) $(LINKFORT) -O3 -L/bgl/BlueLight/ppcfloor/bglsys/lib \ $(LINKGPU) +LINKFLAGS = $(PKGPATH) $(LINKFORT) $(LINKBLAS) $(LINKGPU) -L/opt/ibmcmp/xlf/9.1/blrts_lib \ -L/opt/ibmcmp/vacpp/7.0/blrts_lib \ -L/bgl/local/lib \ -L/bgl/local/bglfftwgel-2.1.5.pre5/lib USRLIB = $(PKGLIB) -lxlopt -lxlomp_ser -lxl -lxlfmath -lm -lfftw \ FORTLIB = +BLASLIB = GPULIB = -lmpich.rts -lmsglayer.rts -lrts.rts -ldevices.rts -lmassv -SYSLIB =$(FORTLIB) $(GPULIB) +SYSLIB =$(FORTLIB) $(BLASLIB) $(GPULIB) SIZE = size # Link rule diff --git a/src/MAKE/Makefile.cheetah b/src/MAKE/Makefile.cheetah index 8fdae96b4b..619476fdf0 100755 --- a/src/MAKE/Makefile.cheetah +++ b/src/MAKE/Makefile.cheetah @@ -6,8 +6,9 @@ SHELL = /bin/sh # System-specific settings -# LINKFORT & FORTLIB settings can be blank if not using LAMMPS Fortran libs -# LINKGPU & GPULIB settings can be blank if not using LAMMPS gpu lib +# LINKFORT/FORTLIB settings can be removed if not using meam or reax packages +# LINKBLAS/BLASLIB settings can be removed if not using user-atc package +# LINKGPU/GPULIB settings can be removed if not using gpu package include Makefile.package @@ -16,12 +17,14 @@ CCFLAGS = $(PKGINC) -O4 -qnoipa -I/usr/apps/include -DFFT_FFTW DEPFLAGS = -M LINK = mpCC_r LINKFORT = +LINKBLAS = LINKGPU = -LINKFLAGS = $(PKGPATH) $(LINKFORT) -O -L/usr/apps/lib $(LINKGPU) +LINKFLAGS = $(PKGPATH) $(LINKFORT) $(LINKBLAS) $(LINKGPU) USRLIB = $(PKGLIB) -lfftw FORTLIB = +BLASLIB = GPULIB = -SYSLIB = $(FORTLIB) -lm $(GPULIB) +SYSLIB = $(FORTLIB) $(BLASLIB) $(GPULIB) SIZE = size # Link rule diff --git a/src/MAKE/Makefile.crockett b/src/MAKE/Makefile.crockett index c44ae6e34c..fa530ef91d 100755 --- a/src/MAKE/Makefile.crockett +++ b/src/MAKE/Makefile.crockett @@ -5,8 +5,9 @@ SHELL = /bin/sh # System-specific settings -# LINKFORT & FORTLIB settings can be blank if not using LAMMPS Fortran libs -# LINKGPU & GPULIB settings can be blank if not using LAMMPS gpu lib +# LINKFORT/FORTLIB settings can be removed if not using meam or reax packages +# LINKBLAS/BLASLIB settings can be removed if not using user-atc package +# LINKGPU/GPULIB settings can be removed if not using gpu package include Makefile.package @@ -15,12 +16,14 @@ CCFLAGS = $(PKGINC) -g -O -DFFT_NONE -DLAMMPS_GZIP DEPFLAGS = -M LINK = mpiCC LINKFORT = +LINKBLAS = LINKGPU = -LINKFLAGS = $(PKGPATH) $(LINKFORT) -g -O $(LINKGPU) +LINKFLAGS = $(PKGPATH) $(LINKFORT) $(LINKBLAS) $(LINKGPU) USRLIB =$(PKGLIB) FORTLIB = +BLASLIB = GPULIB = -SYSLIB = $(FORTLIB) $(GPULIB) +SYSLIB = $(FORTLIB) $(BLASLIB) $(GPULIB) SIZE = size # Link rule diff --git a/src/MAKE/Makefile.cygwin b/src/MAKE/Makefile.cygwin index aa4d9ed5db..634cf2e383 100644 --- a/src/MAKE/Makefile.cygwin +++ b/src/MAKE/Makefile.cygwin @@ -5,8 +5,9 @@ SHELL = /bin/sh # System-specific settings -# LINKFORT & FORTLIB settings can be blank if not using LAMMPS Fortran libs -# LINKGPU & GPULIB settings can be blank if not using LAMMPS gpu lib +# LINKFORT/FORTLIB settings can be removed if not using meam or reax packages +# LINKBLAS/BLASLIB settings can be removed if not using user-atc package +# LINKGPU/GPULIB settings can be removed if not using gpu package include Makefile.package @@ -15,12 +16,14 @@ CCFLAGS = $(PKGINC) -O -g -I/cygdrive/c/cygwin/fftw/include -DFFT_FFTW -DMPICH_I DEPFLAGS = -M LINK = mpicxx LINKFORT = +LINKBLAS = LINKGPU = -LINKFLAGS = $(PKGPATH) $(LINKFORT) -O -g -L/cygdrive/c/cygwin/fftw/lib -L/cygdrive/c/cygwin/mpich2-1.0.4p1/lib $(LINKGPU) +LINKFLAGS = $(PKGPATH) $(LINKFORT) $(LINKBLAS) $(LINKGPU) USRLIB = $(PKGLIB) -lfftw -lmpich FORTLIB = +BLASLIB = GPULIB = -SYSLIB = $(FORTLIB) -lm $(GPULIB) +SYSLIB = $(FORTLIB) $(BLASLIB) $(GPULIB) SIZE = size # Link rule diff --git a/src/MAKE/Makefile.debian b/src/MAKE/Makefile.debian index e3f42479cf..99af2c025c 100644 --- a/src/MAKE/Makefile.debian +++ b/src/MAKE/Makefile.debian @@ -5,8 +5,9 @@ SHELL = /bin/sh # System-specific settings -# LINKFORT & FORTLIB settings can be blank if not using LAMMPS Fortran libs -# LINKGPU & GPULIB settings can be blank if not using LAMMPS gpu lib +# LINKFORT/FORTLIB settings can be removed if not using meam or reax packages +# LINKBLAS/BLASLIB settings can be removed if not using user-atc package +# LINKGPU/GPULIB settings can be removed if not using gpu package include Makefile.package @@ -15,12 +16,14 @@ CCFLAGS = $(PKGINC) -g -O -I/usr/lib/mpich/include/ -DFFT_FFTW -DLAMMPS_GZIP DEPFLAGS = -M LINK = g++ LINKFORT = +LINKBLAS = LINKGPU = -LINKFLAGS = $(PKGPATH) $(LINKFORT) -g -O -L/usr/lib/mpich/lib $(LINKGPU) +LINKFLAGS = $(PKGPATH) $(LINKFORT) $(LINKBLAS) $(LINKGPU) USRLIB = $(PKGLIB) -lfftw -lmpich FORTLIB = +BLASLIB = GPULIB = -SYSLIB =$(FORTLIB) $(GPULIB) +SYSLIB =$(FORTLIB) $(BLASLIB) $(GPULIB) ARCHIVE = ar ARFLAGS = -rc SIZE = size diff --git a/src/MAKE/Makefile.diesel b/src/MAKE/Makefile.diesel index 048737f016..a603ec6ce4 100644 --- a/src/MAKE/Makefile.diesel +++ b/src/MAKE/Makefile.diesel @@ -5,8 +5,9 @@ SHELL = /bin/sh # System-specific settings -# LINKFORT & FORTLIB settings can be blank if not using LAMMPS Fortran libs -# LINKGPU & GPULIB settings can be blank if not using LAMMPS gpu lib +# LINKFORT/FORTLIB settings can be removed if not using meam or reax packages +# LINKBLAS/BLASLIB settings can be removed if not using user-atc package +# LINKGPU/GPULIB settings can be removed if not using gpu package include Makefile.package @@ -15,12 +16,14 @@ CCFLAGS = $(PKGINC) -64 -O -mp -DFFT_SCSL DEPFLAGS = -M LINK = CC LINKFORT = +LINKBLAS = LINKGPU = -LINKFLAGS = $(PKGPATH) $(LINKFORT) -64 $(LINKGPU) +LINKFLAGS = $(PKGPATH) $(LINKFORT) $(LINKBLAS) $(LINKGPU) USRLIB = $(PKGLIB) FORTLIB = +BLASLIB = GPULIB = -SYSLIB = $(FORTLIB) -lm -lscs_mp -lmpi -lmpi++ $(GPULIB) +SYSLIB = $(FORTLIB) $(BLASLIB) $(GPULIB) SIZE = size # Link rule diff --git a/src/MAKE/Makefile.encanto b/src/MAKE/Makefile.encanto index 35620efe8a..12c757f34b 100644 --- a/src/MAKE/Makefile.encanto +++ b/src/MAKE/Makefile.encanto @@ -5,8 +5,9 @@ SHELL = /bin/sh # System-specific settings -# LINKFORT & FORTLIB settings can be blank if not using LAMMPS Fortran libs -# LINKGPU & GPULIB settings can be blank if not using LAMMPS gpu lib +# LINKFORT/FORTLIB settings can be removed if not using meam or reax packages +# LINKBLAS/BLASLIB settings can be removed if not using user-atc package +# LINKGPU/GPULIB settings can be removed if not using gpu package include Makefile.package @@ -15,12 +16,14 @@ CCFLAGS = $(PKGINC) -O -DFFT_FFTW -I/home/jlane/fftw-2.1.5/fftw DEPFLAGS = -M LINK = mpicxx LINKFORT = +LINKBLAS = LINKGPU = -LINKFLAGS = $(PKGPATH) $(LINKFORT) -O -L/home/jlane/fftw-2.1.5/fftw/.libs $(LINKGPU) +LINKFLAGS = $(PKGPATH) $(LINKFORT) $(LINKBLAS) $(LINKGPU) USRLIB = $(PKGLIB) -lstdc++ -lfftw FORTLIB = +BLASLIB = GPULIB = -SYSLIB = $(FORTLIB) -lm $(GPULIB) +SYSLIB = $(FORTLIB) $(BLASLIB) $(GPULIB) SIZE = size ARCHIVE = ar diff --git a/src/MAKE/Makefile.fink b/src/MAKE/Makefile.fink index 865a711a2d..de07623f2a 100644 --- a/src/MAKE/Makefile.fink +++ b/src/MAKE/Makefile.fink @@ -4,8 +4,9 @@ SHELL = /bin/sh # System-specific settings -# LINKFORT & FORTLIB settings can be blank if not using LAMMPS Fortran libs -# LINKGPU & GPULIB settings can be blank if not using LAMMPS gpu lib +# LINKFORT/FORTLIB settings can be removed if not using meam or reax packages +# LINKBLAS/BLASLIB settings can be removed if not using user-atc package +# LINKGPU/GPULIB settings can be removed if not using gpu package include Makefile.package @@ -14,12 +15,14 @@ CCFLAGS = $(PKGINC) -O -I../STUBS -I/sw/include -DFFT_FFTW DEPFLAGS = -M LINK = c++ LINKFORT = +LINKBLAS = LINKGPU = -LINKFLAGS = $(PKGPATH) $(LINKFORT) -O -L../STUBS -L/sw/lib $(LINKGPU) +LINKFLAGS = $(PKGPATH) $(LINKFORT) $(LINKBLAS) $(LINKGPU) USRLIB = $(PKGLIB) -lfftw -lmpi FORTLIB = +BLASLIB = GPULIB = -SYSLIB = $(FORTLIB) $(GPULIB) +SYSLIB = $(FORTLIB) $(BLASLIB) $(GPULIB) SIZE = size # Link rule diff --git a/src/MAKE/Makefile.freebsd b/src/MAKE/Makefile.freebsd index 6cd39b61c2..a8dc4b85d4 100644 --- a/src/MAKE/Makefile.freebsd +++ b/src/MAKE/Makefile.freebsd @@ -4,8 +4,9 @@ SHELL = /bin/sh # System-specific settings -# LINKFORT & FORTLIB settings can be blank if not using LAMMPS Fortran libs -# LINKGPU & GPULIB settings can be blank if not using LAMMPS gpu lib +# LINKFORT/FORTLIB settings can be removed if not using meam or reax packages +# LINKBLAS/BLASLIB settings can be removed if not using user-atc package +# LINKGPU/GPULIB settings can be removed if not using gpu package include Makefile.package @@ -14,12 +15,14 @@ CCFLAGS = $(PKGINC) -O3 -DFFT_FFTW DEPFLAGS = -M LINK = mpic++ LINKFORT = +LINKBLAS = LINKGPU = -LINKFLAGS = $(PKGPATH) $(LINKFORT) -O3 $(LINKGPU) +LINKFLAGS = $(PKGPATH) $(LINKFORT) $(LINKBLAS) $(LINKGPU) USRLIB = $(PKGLIB) -lfftw -lmpi FORTLIB = +BLASLIB = GPULIB = -SYSLIB = $(FORTLIB) $(GPULIB) +SYSLIB = $(FORTLIB) $(BLASLIB) $(GPULIB) SIZE = size # Link rule diff --git a/src/MAKE/Makefile.g++ b/src/MAKE/Makefile.g++ index 744498bab0..bf86ec2d0d 100755 --- a/src/MAKE/Makefile.g++ +++ b/src/MAKE/Makefile.g++ @@ -4,8 +4,9 @@ SHELL = /bin/sh # System-specific settings -# LINKFORT & FORTLIB settings can be blank if not using LAMMPS Fortran libs -# LINKGPU & GPULIB settings can be blank if not using LAMMPS gpu lib +# LINKFORT/FORTLIB settings can be removed if not using meam or reax packages +# LINKBLAS/BLASLIB settings can be removed if not using user-atc package +# LINKGPU/GPULIB settings can be removed if not using gpu package include Makefile.package @@ -14,12 +15,14 @@ CCFLAGS = -g -O -DFFT_FFTW -DLAMMPS_GZIP -DMPICH_IGNORE_CXX_SEEK $(PKGINC) DEPFLAGS = -M LINK = g++ LINKFORT = -L/opt/intel/fce/10.0.023/lib +LINKBLAS = #LINKGPU = -L/usr/local/cuda/lib64 -LINKFLAGS = -g -O $(PKGPATH) $(LINKFORT) $(LINKGPU) +LINKFLAGS = -g -O $(PKGPATH) $(LINKFORT) $(LINKBLAS) $(LINKGPU) USRLIB = -lfftw -lmpich $(PKGLIB) FORTLIB = -lifcore -lsvml -lompstub -limf +BLASLIB = -lblas -llapack #GPULIB = -lcudart -SYSLIB = -lpthread $(FORTLIB) $(GPULIB) +SYSLIB = -lpthread $(FORTLIB) $(BLASLIB) $(GPULIB) ARCHIVE = ar ARFLAGS = -rc SIZE = size @@ -43,7 +46,7 @@ lib: $(OBJ) %.d:%.cpp $(CC) $(CCFLAGS) $(DEPFLAGS) $< > $@ -# Individual dependencies +# Individual dependencie DEPENDS = $(OBJ:.o=.d) include $(DEPENDS) diff --git a/src/MAKE/Makefile.glory b/src/MAKE/Makefile.glory index 04fe580da2..712eaeda3b 100644 --- a/src/MAKE/Makefile.glory +++ b/src/MAKE/Makefile.glory @@ -21,8 +21,9 @@ SHELL = /bin/sh # System-specific settings -# LINKFORT & FORTLIB settings can be blank if not using LAMMPS Fortran libs -# LINKGPU & GPULIB settings can be blank if not using LAMMPS gpu lib +# LINKFORT/FORTLIB settings can be removed if not using meam or reax packages +# LINKBLAS/BLASLIB settings can be removed if not using user-atc package +# LINKGPU/GPULIB settings can be removed if not using gpu package include Makefile.package @@ -31,12 +32,14 @@ CCFLAGS = $(PKGINC) -O -DFFT_FFTW -I${FFTW_INCLUDE} DEPFLAGS = -M LINK = mpicxx LINKFORT = +LINKBLAS = LINKGPU = -LINKFLAGS = $(PKGPATH) $(LINKFORT) -O -L${FFTW_LIB} $(LINKGPU) +LINKFLAGS = $(PKGPATH) $(LINKFORT) $(LINKBLAS) $(LINKGPU) USRLIB = $(PKGLIB) -lfftw -lstdc++ FORTLIB = +BLASLIB = GPULIB = -SYSLIB = $(FORTLIB) -lm $(GPULIB) +SYSLIB = $(FORTLIB) $(BLASLIB) $(GPULIB) SIZE = size ARCHIVE = ar ARFLAGS = -rc diff --git a/src/MAKE/Makefile.intel b/src/MAKE/Makefile.intel index 4d41282117..503de896d9 100644 --- a/src/MAKE/Makefile.intel +++ b/src/MAKE/Makefile.intel @@ -5,8 +5,9 @@ SHELL = /bin/sh # System-specific settings -# LINKFORT & FORTLIB settings can be blank if not using LAMMPS Fortran libs -# LINKGPU & GPULIB settings can be blank if not using LAMMPS gpu lib +# LINKFORT/FORTLIB settings can be removed if not using meam or reax packages +# LINKBLAS/BLASLIB settings can be removed if not using user-atc package +# LINKGPU/GPULIB settings can be removed if not using gpu package include Makefile.package @@ -17,12 +18,14 @@ NOALIAS = -fno-strict-aliasing DEPFLAGS = -M LINK = icpc LINKFORT = +LINKBLAS = LINKGPU = -LINKFLAGS = $(PKGPATH) $(LINKFORT) -i-static $(LINKGPU) +LINKFLAGS = $(PKGPATH) $(LINKFORT) $(LINKBLAS) $(LINKGPU) USRLIB = $(PKGLIB) -L../STUBS -lmpi -lfftw FORTLIB = +BLASLIB = GPULIB = -SYSLIB = $(FORTLIB) $(GPULIB) +SYSLIB = $(FORTLIB) $(BLASLIB) $(GPULIB) ARCHIVE = ar ARFLAGS = -rcsv SIZE = size diff --git a/src/MAKE/Makefile.intel_mkl b/src/MAKE/Makefile.intel_mkl index 9b7c51a5ba..af6227b0b6 100644 --- a/src/MAKE/Makefile.intel_mkl +++ b/src/MAKE/Makefile.intel_mkl @@ -11,8 +11,9 @@ SHELL = /bin/sh # System-specific settings -# LINKFORT & FORTLIB settings can be blank if not using LAMMPS Fortran libs -# LINKGPU & GPULIB settings can be blank if not using LAMMPS gpu lib +# LINKFORT/FORTLIB settings can be removed if not using meam or reax packages +# LINKBLAS/BLASLIB settings can be removed if not using user-atc package +# LINKGPU/GPULIB settings can be removed if not using gpu package include Makefile.package @@ -21,12 +22,14 @@ CCFLAGS = $(PKGINC) -O3 -fno-alias -ip -unroll0 -g -DMPICH_IGNORE_CXX_SEEK -DLAM DEPFLAGS = -M LINK = mpiicc LINKFORT = +LINKBLAS = LINKGPU = -LINKFLAGS = $(PKGPATH) $(LINKFORT) -mt_mpi -L/opt/intel/mkl/10.0.011/lib/em64t $(LINKGPU) +LINKFLAGS = $(PKGPATH) $(LINKFORT) $(LINKBLAS) $(LINKGPU) USRLIB = $(PKGLIB) /opt/intel/mkl/10.0.011/lib/em64t/libfftw2xc_intel.a FORTLIB = +BLASLIB = GPULIB = -SYSLIB = $(FORTLIB) -lstdc++ -lpthread -lmkl_em64t -lguide $(GPULIB) +SYSLIB = $(FORTLIB) $(BLASLIB) $(GPULIB) ARCHIVE = ar ARFLAGS = -rc SIZE = size diff --git a/src/MAKE/Makefile.liberty b/src/MAKE/Makefile.liberty index be59a585e0..c322bb13eb 100755 --- a/src/MAKE/Makefile.liberty +++ b/src/MAKE/Makefile.liberty @@ -5,8 +5,9 @@ SHELL = /bin/sh # System-specific settings -# LINKFORT & FORTLIB settings can be blank if not using LAMMPS Fortran libs -# LINKGPU & GPULIB settings can be blank if not using LAMMPS gpu lib +# LINKFORT/FORTLIB settings can be removed if not using meam or reax packages +# LINKBLAS/BLASLIB settings can be removed if not using user-atc package +# LINKGPU/GPULIB settings can be removed if not using gpu package include Makefile.package @@ -29,13 +30,15 @@ CCFLAGS = $(PKGINC) -O -DFFT_FFTW -I${FFTW_INCLUDE} DEPFLAGS = -M LINK = mpiCC LINKFORT = +LINKBLAS = LINKGPU = -#LINKFLAGS = $(PKGPATH) $(LINKFORT) -O -L${FFTW}/fftw/.libs $(LINKGPU) -LINKFLAGS = $(PKGPATH) $(LINKFORT) -O -L${FFTW_LIB} $(LINKGPU) +#LINKFLAGS = $(PKGPATH) $(LINKFORT) $(LINKBLAS) $(LINKGPU) +LINKFLAGS = $(PKGPATH) $(LINKFORT) $(LINKBLAS) $(LINKGPU) USRLIB = $(PKGLIB) -lfftw FORTLIB = +BLASLIB = GPULIB = -SYSLIB = $(FORTLIB) -lstdc++ -lm $(GPULIB) +SYSLIB = $(FORTLIB) $(BLASLIB) $(GPULIB) SIZE = size # Link rule diff --git a/src/MAKE/Makefile.linux b/src/MAKE/Makefile.linux index f4eb4af595..8227808116 100755 --- a/src/MAKE/Makefile.linux +++ b/src/MAKE/Makefile.linux @@ -4,8 +4,9 @@ SHELL = /bin/sh # System-specific settings -# LINKFORT & FORTLIB settings can be blank if not using LAMMPS Fortran libs -# LINKGPU & GPULIB settings can be blank if not using LAMMPS gpu lib +# LINKFORT/FORTLIB settings can be removed if not using meam or reax packages +# LINKBLAS/BLASLIB settings can be removed if not using user-atc package +# LINKGPU/GPULIB settings can be removed if not using gpu package include Makefile.package @@ -14,12 +15,14 @@ CCFLAGS = -O -DFFT_FFTW -DLAMMPS_GZIP -DMPICH_IGNORE_CXX_SEEK $(PKGINC) DEPFLAGS = -M LINK = icc LINKFORT = -L/opt/intel/fce/10.0.023/lib +LINKBLAS = #LINKGPU = -L/usr/local/cuda/lib64// -LINKFLAGS = -O $(PKGPATH) $(LINKFORT) $(LINKGPU) +LINKFLAGS = -O $(PKGPATH) $(LINKFORT) $(LINKBLAS) $(LINKGPU) USRLIB = -lfftw -lmpich $(PKGLIB) FORTLIB = -lifcore -lsvml -lompstub -limf +BLASLIB = #GPULIB = -lcudart -SYSLIB = -lpthread -lstdc++ $(FORTLIB) $(GPULIB) +SYSLIB = -lpthread -lstdc++ $(FORTLIB) $(BLASLIB) $(GPULIB) ARCHIVE = ar ARFLAGS = -rc SIZE = size diff --git a/src/MAKE/Makefile.mac b/src/MAKE/Makefile.mac index d4ab5775cb..1c5a8100bb 100755 --- a/src/MAKE/Makefile.mac +++ b/src/MAKE/Makefile.mac @@ -4,8 +4,9 @@ SHELL = /bin/sh # System-specific settings -# LINKFORT & FORTLIB settings can be blank if not using LAMMPS Fortran libs -# LINKGPU & GPULIB settings can be blank if not using LAMMPS gpu lib +# LINKFORT/FORTLIB settings can be removed if not using meam or reax packages +# LINKBLAS/BLASLIB settings can be removed if not using user-atc package +# LINKGPU/GPULIB settings can be removed if not using gpu package include Makefile.package @@ -14,12 +15,14 @@ CCFLAGS = -O -DFFT_FFTW -I../STUBS $(PKGINC) DEPFLAGS = -M LINK = c++ LINKFORT = +LINKBLAS = LINKGPU = -LINKFLAGS = -O $(PKGPATH) $(LINKFORT) $(LINKGPU) +LINKFLAGS = -O $(PKGPATH) $(LINKFORT) $(LINKBLAS) $(LINKGPU) USRLIB = -lfftw ../STUBS/mpi.o $(PKGLIB) FORTLIB = +BLASLIB = GPULIB = -SYSLIB = $(FORTLIB) $(GPULIB) +SYSLIB = $(FORTLIB) $(BLASLIB) $(GPULIB) SIZE = size # Link rule diff --git a/src/MAKE/Makefile.mac_mpi b/src/MAKE/Makefile.mac_mpi index f3cae32fac..4b913ad736 100755 --- a/src/MAKE/Makefile.mac_mpi +++ b/src/MAKE/Makefile.mac_mpi @@ -4,8 +4,9 @@ SHELL = /bin/sh # System-specific settings -# LINKFORT & FORTLIB settings can be blank if not using LAMMPS Fortran libs -# LINKGPU & GPULIB settings can be blank if not using LAMMPS gpu lib +# LINKFORT/FORTLIB settings can be removed if not using meam or reax packages +# LINKBLAS/BLASLIB settings can be removed if not using user-atc package +# LINKGPU/GPULIB settings can be removed if not using gpu package include Makefile.package @@ -16,12 +17,14 @@ CCFLAGS = -O -MMD -MG -DFFT_FFTW \ -I${FFTW}/include -DOMPI_SKIP_MPICXX $(PKGINC) LINK = mpic++ LINKFORT = +LINKBLAS = LINKGPU = -LINKFLAGS = -O -L${FFTW}/lib $(PKGPATH) $(LINKFORT) $(LINKGPU) +LINKFLAGS = -O -L${FFTW}/lib $(PKGPATH) $(LINKFORT) $(LINKBLAS) $(LINKGPU) USRLIB = -lfftw $(PKGLIB) FORTLIB = +BLASLIB = GPULIB = -SYSLIB = $(FORTLIB) $(GPULIB) +SYSLIB = $(FORTLIB) $(BLASLIB) $(GPULIB) SIZE = size # Link rule diff --git a/src/MAKE/Makefile.odin b/src/MAKE/Makefile.odin index ef7c353e53..4394401c0c 100755 --- a/src/MAKE/Makefile.odin +++ b/src/MAKE/Makefile.odin @@ -5,8 +5,9 @@ SHELL = /bin/sh # System-specific settings -# LINKFORT & FORTLIB settings can be blank if not using LAMMPS Fortran libs -# LINKGPU & GPULIB settings can be blank if not using LAMMPS gpu lib +# LINKFORT/FORTLIB settings can be removed if not using meam or reax packages +# LINKBLAS/BLASLIB settings can be removed if not using user-atc package +# LINKGPU/GPULIB settings can be removed if not using gpu package include Makefile.package @@ -15,12 +16,14 @@ CCFLAGS = $(PKGINC) -O -I/opt/mpich-mx/include -DFFT_NONE -DLAMMPS_GZIP DEPFLAGS = -M LINK = g++ LINKFORT = +LINKBLAS = LINKGPU = -LINKFLAGS = $(PKGPATH) $(LINKFORT) -O -L/opt/mpich-mx/lib -L/opt/mx/lib $(LINKGPU) +LINKFLAGS = $(PKGPATH) $(LINKFORT) $(LINKBLAS) $(LINKGPU) USRLIB = $(PKGLIB) -lmpich -lmyriexpress FORTLIB = +BLASLIB = GPULIB = -SYSLIB =$(FORTLIB) $(GPULIB) +SYSLIB =$(FORTLIB) $(BLASLIB) $(GPULIB) ARCHIVE = ar ARFLAGS = -rc SIZE = size diff --git a/src/MAKE/Makefile.openmpi b/src/MAKE/Makefile.openmpi index d1e51704df..97963b56f1 100644 --- a/src/MAKE/Makefile.openmpi +++ b/src/MAKE/Makefile.openmpi @@ -5,8 +5,9 @@ SHELL = /bin/sh # System-specific settings -# LINKFORT & FORTLIB settings can be blank if not using LAMMPS Fortran libs -# LINKGPU & GPULIB settings can be blank if not using LAMMPS gpu lib +# LINKFORT/FORTLIB settings can be removed if not using meam or reax packages +# LINKBLAS/BLASLIB settings can be removed if not using user-atc package +# LINKGPU/GPULIB settings can be removed if not using gpu package include Makefile.package @@ -17,12 +18,14 @@ NOALIAS = -fno-strict-aliasing DEPFLAGS = -M LINK = mpic++ LINKFORT = +LINKBLAS = LINKGPU = -LINKFLAGS = $(PKGPATH) $(LINKFORT) $(LINKGPU) +LINKFLAGS = $(PKGPATH) $(LINKFORT) $(LINKBLAS) $(LINKGPU) USRLIB = $(PKGLIB) -lfftw FORTLIB = +BLASLIB = GPULIB = -SYSLIB = $(FORTLIB) $(GPULIB) +SYSLIB = $(FORTLIB) $(BLASLIB) $(GPULIB) ARCHIVE = ar ARFLAGS = -rcsv SIZE = size diff --git a/src/MAKE/Makefile.opensuse b/src/MAKE/Makefile.opensuse index a9beeea73a..623a6b5632 100644 --- a/src/MAKE/Makefile.opensuse +++ b/src/MAKE/Makefile.opensuse @@ -4,8 +4,9 @@ SHELL = /bin/sh # System-specific settings -# LINKFORT & FORTLIB settings can be blank if not using LAMMPS Fortran libs -# LINKGPU & GPULIB settings can be blank if not using LAMMPS gpu lib +# LINKFORT/FORTLIB settings can be removed if not using meam or reax packages +# LINKBLAS/BLASLIB settings can be removed if not using user-atc package +# LINKGPU/GPULIB settings can be removed if not using gpu package include Makefile.package @@ -14,12 +15,14 @@ CCFLAGS = $(PKGINC) -O3 -I /opt/mpich/include/ -DFFT_FFTW -DLAMMPS_GZIP DEPFLAGS = -M LINK = g++ LINKFORT = +LINKBLAS = LINKGPU = -LINKFLAGS = $(PKGPATH) $(LINKFORT) -O3 -L /opt/mpich/ch-p4/lib64 $(LINKGPU) +LINKFLAGS = $(PKGPATH) $(LINKFORT) $(LINKBLAS) $(LINKGPU) USRLIB = $(PKGLIB) -ldfftw -lmpich FORTLIB = +BLASLIB = GPULIB = -SYSLIB =$(FORTLIB) $(GPULIB) +SYSLIB =$(FORTLIB) $(BLASLIB) $(GPULIB) ARCHIVE = ar ARFLAGS = -rc SIZE = size diff --git a/src/MAKE/Makefile.pg b/src/MAKE/Makefile.pg index ad5e6f0da5..17a2df37f0 100644 --- a/src/MAKE/Makefile.pg +++ b/src/MAKE/Makefile.pg @@ -5,8 +5,9 @@ SHELL = /bin/sh # System-specific settings -# LINKFORT & FORTLIB settings can be blank if not using LAMMPS Fortran libs -# LINKGPU & GPULIB settings can be blank if not using LAMMPS gpu lib +# LINKFORT/FORTLIB settings can be removed if not using meam or reax packages +# LINKBLAS/BLASLIB settings can be removed if not using user-atc package +# LINKGPU/GPULIB settings can be removed if not using gpu package include Makefile.package @@ -17,13 +18,15 @@ CCFLAGS = $(PKGINC) -I/usr/local/mpich-1.2.6/pg/include \ DEPFLAGS = -M LINK = pgCC LINKFORT = +LINKBLAS = LINKGPU = -LINKFLAGS = $(PKGPATH) $(LINKFORT) -L/usr/local/mpich-1.2.6/pg/lib \ $(LINKGPU) +LINKFLAGS = $(PKGPATH) $(LINKFORT) $(LINKBLAS) $(LINKGPU) -L/usr/local/lib USRLIB = $(PKGLIB) -lfftw -lmpich FORTLIB = +BLASLIB = GPULIB = -SYSLIB = $(FORTLIB) $(GPULIB) +SYSLIB = $(FORTLIB) $(BLASLIB) $(GPULIB) ARCHIVE = ar ARFLAGS = -rc SIZE = size diff --git a/src/MAKE/Makefile.power5 b/src/MAKE/Makefile.power5 index c987fcb8c4..33570fa656 100644 --- a/src/MAKE/Makefile.power5 +++ b/src/MAKE/Makefile.power5 @@ -6,8 +6,9 @@ SHELL = /bin/sh # System-specific settings -# LINKFORT & FORTLIB settings can be blank if not using LAMMPS Fortran libs -# LINKGPU & GPULIB settings can be blank if not using LAMMPS gpu lib +# LINKFORT/FORTLIB settings can be removed if not using meam or reax packages +# LINKBLAS/BLASLIB settings can be removed if not using user-atc package +# LINKGPU/GPULIB settings can be removed if not using gpu package include Makefile.package @@ -17,12 +18,14 @@ CCFLAGS = $(PKGINC) -O3 -qnoipa -qlanglvl=oldmath \ DEPFLAGS = -M LINK = mpCC_r LINKFORT = +LINKBLAS = LINKGPU = -LINKFLAGS = $(PKGPATH) $(LINKFORT) -O -qnoipa -qlanglvl=oldmath -bmaxdata:0x70000000 $(LINKGPU) +LINKFLAGS = $(PKGPATH) $(LINKFORT) $(LINKBLAS) $(LINKGPU) USRLIB = $(PKGLIB) -L/scr/oppe/LAMMPS/fftw-2.1.5/lib -lfftw FORTLIB = +BLASLIB = GPULIB = -SYSLIB = $(FORTLIB) -lm $(GPULIB) +SYSLIB = $(FORTLIB) $(BLASLIB) $(GPULIB) SIZE = size # Link target diff --git a/src/MAKE/Makefile.qed b/src/MAKE/Makefile.qed index 0441348acb..cb36a510ea 100644 --- a/src/MAKE/Makefile.qed +++ b/src/MAKE/Makefile.qed @@ -4,8 +4,9 @@ SHELL = /bin/sh # System-specific settings -# LINKFORT & FORTLIB settings can be blank if not using LAMMPS Fortran libs -# LINKGPU & GPULIB settings can be blank if not using LAMMPS gpu lib +# LINKFORT/FORTLIB settings can be removed if not using meam or reax packages +# LINKBLAS/BLASLIB settings can be removed if not using user-atc package +# LINKGPU/GPULIB settings can be removed if not using gpu package include Makefile.package @@ -14,12 +15,14 @@ CCFLAGS = $(PKGINC) -O -I/usr/local/mpich-1.2.6-eth/include -DFFT_NONE DEPFLAGS = -M LINK = mpiCC LINKFORT = +LINKBLAS = LINKGPU = -LINKFLAGS = $(PKGPATH) $(LINKFORT) -O -L/usr/local/mpich-1.2.6-eth/lib $(LINKGPU) +LINKFLAGS = $(PKGPATH) $(LINKFORT) $(LINKBLAS) $(LINKGPU) USRLIB = $(PKGLIB) -lmpich FORTLIB = +BLASLIB = GPULIB = -SYSLIB = $(FORTLIB) $(GPULIB) +SYSLIB = $(FORTLIB) $(BLASLIB) $(GPULIB) ARCHIVE = ar ARFLAGS = -rc SIZE = size diff --git a/src/MAKE/Makefile.ross b/src/MAKE/Makefile.ross index 66c4a6a230..25b1fae551 100755 --- a/src/MAKE/Makefile.ross +++ b/src/MAKE/Makefile.ross @@ -5,8 +5,9 @@ SHELL = /bin/sh # System-specific settings -# LINKFORT & FORTLIB settings can be blank if not using LAMMPS Fortran libs -# LINKGPU & GPULIB settings can be blank if not using LAMMPS gpu lib +# LINKFORT/FORTLIB settings can be removed if not using meam or reax packages +# LINKBLAS/BLASLIB settings can be removed if not using user-atc package +# LINKGPU/GPULIB settings can be removed if not using gpu package include Makefile.package @@ -15,12 +16,14 @@ CCFLAGS = $(PKGINC) -O -DFFT_DEC DEPFLAGS = -M LINK = /usr/local/cplant/ross/current/bin/c++ LINKFORT = +LINKBLAS = LINKGPU = -LINKFLAGS = $(PKGPATH) $(LINKFORT) -O $(LINKGPU) +LINKFLAGS = $(PKGPATH) $(LINKFORT) $(LINKBLAS) $(LINKGPU) USRLIB = $(PKGLIB) -lmpi -lcxml FORTLIB = +BLASLIB = GPULIB = -SYSLIB = $(FORTLIB) -lm $(GPULIB) +SYSLIB = $(FORTLIB) $(BLASLIB) $(GPULIB) SIZE = size # Link rule diff --git a/src/MAKE/Makefile.sdsc b/src/MAKE/Makefile.sdsc index d9b9f1df84..8c16b10e5a 100644 --- a/src/MAKE/Makefile.sdsc +++ b/src/MAKE/Makefile.sdsc @@ -6,8 +6,9 @@ SHELL = /bin/sh # System-specific settings -# LINKFORT & FORTLIB settings can be blank if not using LAMMPS Fortran libs -# LINKGPU & GPULIB settings can be blank if not using LAMMPS gpu lib +# LINKFORT/FORTLIB settings can be removed if not using meam or reax packages +# LINKBLAS/BLASLIB settings can be removed if not using user-atc package +# LINKGPU/GPULIB settings can be removed if not using gpu package include Makefile.package @@ -20,15 +21,17 @@ NOALIAS = -qalias=noansi DEPFLAGS = -M -qmakedep=gcc LINK = blrts_xlC LINKFORT = +LINKBLAS = LINKGPU = -LINKFLAGS = $(PKGPATH) $(LINKFORT) -O2 -L/bgl/BlueLight/ppcfloor/bglsys/lib \ $(LINKGPU) +LINKFLAGS = $(PKGPATH) $(LINKFORT) $(LINKBLAS) $(LINKGPU) -L/opt/ibmcmp/xlf/bg/10.1/blrts_lib \ -L/opt/ibmcmp/vacpp/bg/8.0/blrts_lib \ -L/usr/local/apps/V1R3/fftw-2.1.5d/lib USRLIB = $(PKGLIB) -lfftw -lmpich.rts -lmsglayer.rts -lrts.rts -ldevices.rts -lm FORTLIB = +BLASLIB = GPULIB = -SYSLIB = $(FORTLIB) $(GPULIB) +SYSLIB = $(FORTLIB) $(BLASLIB) $(GPULIB) SIZE = size # Link rule diff --git a/src/MAKE/Makefile.seaborg b/src/MAKE/Makefile.seaborg index f2f18ea1d0..b19b8b203e 100644 --- a/src/MAKE/Makefile.seaborg +++ b/src/MAKE/Makefile.seaborg @@ -6,8 +6,9 @@ SHELL = /bin/sh # System-specific settings -# LINKFORT & FORTLIB settings can be blank if not using LAMMPS Fortran libs -# LINKGPU & GPULIB settings can be blank if not using LAMMPS gpu lib +# LINKFORT/FORTLIB settings can be removed if not using meam or reax packages +# LINKBLAS/BLASLIB settings can be removed if not using user-atc package +# LINKGPU/GPULIB settings can be removed if not using gpu package include Makefile.package @@ -16,12 +17,14 @@ CCFLAGS = $(PKGINC) -O2 -qnoipa -I/usr/common/usg/fftw/2.1.5/include -DFFT_FFTW DEPFLAGS = -M LINK = mpCC_r LINKFORT = +LINKBLAS = LINKGPU = -LINKFLAGS = $(PKGPATH) $(LINKFORT) -O -L/usr/lib -L/usr/common/usg/fftw/2.1.5/lib $(LINKGPU) +LINKFLAGS = $(PKGPATH) $(LINKFORT) $(LINKBLAS) $(LINKGPU) USRLIB = $(PKGLIB) -lfftw -lfftw_mpi FORTLIB = +BLASLIB = GPULIB = -SYSLIB = $(FORTLIB) -lm $(GPULIB) +SYSLIB = $(FORTLIB) $(BLASLIB) $(GPULIB) SIZE = size # Link rule diff --git a/src/MAKE/Makefile.serial b/src/MAKE/Makefile.serial index 0a9990ca82..9b11629410 100755 --- a/src/MAKE/Makefile.serial +++ b/src/MAKE/Makefile.serial @@ -4,8 +4,9 @@ SHELL = /bin/sh # System-specific settings -# LINKFORT & FORTLIB settings can be blank if not using LAMMPS Fortran libs -# LINKGPU & GPULIB settings can be blank if not using LAMMPS gpu lib +# LINKFORT/FORTLIB settings can be removed if not using meam or reax packages +# LINKBLAS/BLASLIB settings can be removed if not using user-atc package +# LINKGPU/GPULIB settings can be removed if not using gpu package include Makefile.package @@ -14,12 +15,14 @@ CCFLAGS = -O -DFFT_NONE -I../STUBS $(PKGINC) DEPFLAGS = -M LINK = g++ LINKFORT = -L/opt/intel/fce/10.0.023/lib +LINKBLAS = LINKGPU = -LINKFLAGS = -O -L../STUBS $(PKGPATH) $(LINKFORT) $(LINKGPU) +LINKFLAGS = -O -L../STUBS $(PKGPATH) $(LINKFORT) $(LINKBLAS) $(LINKGPU) USRLIB = -lmpi $(PKGLIB) FORTLIB = -lifcore -lsvml -lompstub -limf +BLASLIB = GPULIB = -SYSLIB = $(FORTLIB) $(GPULIB) +SYSLIB = $(FORTLIB) $(BLASLIB) $(GPULIB) ARCHIVE = ar ARFLAGS = -rc SIZE = size diff --git a/src/MAKE/Makefile.serial_debug b/src/MAKE/Makefile.serial_debug index 487dd77b5f..259780c526 100644 --- a/src/MAKE/Makefile.serial_debug +++ b/src/MAKE/Makefile.serial_debug @@ -5,8 +5,9 @@ SHELL = /bin/sh # System-specific settings -# LINKFORT & FORTLIB settings can be blank if not using LAMMPS Fortran libs -# LINKGPU & GPULIB settings can be blank if not using LAMMPS gpu lib +# LINKFORT/FORTLIB settings can be removed if not using meam or reax packages +# LINKBLAS/BLASLIB settings can be removed if not using user-atc package +# LINKGPU/GPULIB settings can be removed if not using gpu package include Makefile.package @@ -17,12 +18,14 @@ NOALIAS = -fno-strict-aliasing DEPFLAGS = -M LINK = g++ LINKFORT = +LINKBLAS = LINKGPU = -LINKFLAGS = $(PKGPATH) $(LINKFORT) $(LINKGPU) +LINKFLAGS = $(PKGPATH) $(LINKFORT) $(LINKBLAS) $(LINKGPU) USRLIB = $(PKGLIB) -L../STUBS -lmpi -lfftw FORTLIB = +BLASLIB = GPULIB = -SYSLIB = $(FORTLIB) $(GPULIB) +SYSLIB = $(FORTLIB) $(BLASLIB) $(GPULIB) ARCHIVE = ar ARFLAGS = -rcsv SIZE = size diff --git a/src/MAKE/Makefile.serial_icc b/src/MAKE/Makefile.serial_icc index 1f8cc8a2dc..7126fdf181 100644 --- a/src/MAKE/Makefile.serial_icc +++ b/src/MAKE/Makefile.serial_icc @@ -4,8 +4,9 @@ SHELL = /bin/sh # System-specific settings -# LINKFORT & FORTLIB settings can be blank if not using LAMMPS Fortran libs -# LINKGPU & GPULIB settings can be blank if not using LAMMPS gpu lib +# LINKFORT/FORTLIB settings can be removed if not using meam or reax packages +# LINKBLAS/BLASLIB settings can be removed if not using user-atc package +# LINKGPU/GPULIB settings can be removed if not using gpu package include Makefile.package @@ -14,12 +15,14 @@ CCFLAGS = $(PKGINC) -O -I../STUBS -DFFT_NONE DEPFLAGS = -M LINK = icc LINKFORT = +LINKBLAS = LINKGPU = -LINKFLAGS = $(PKGPATH) $(LINKFORT) -O -L../STUBS $(LINKGPU) +LINKFLAGS = $(PKGPATH) $(LINKFORT) $(LINKBLAS) $(LINKGPU) USRLIB = $(PKGLIB) -lmpi FORTLIB = +BLASLIB = GPULIB = -SYSLIB = $(FORTLIB) -lstdc++ $(GPULIB) +SYSLIB = $(FORTLIB) $(BLASLIB) $(GPULIB) ARCHIVE = ar ARFLAGS = -rc SIZE = size diff --git a/src/MAKE/Makefile.solaris b/src/MAKE/Makefile.solaris index 5e25623c2a..a77d15833b 100644 --- a/src/MAKE/Makefile.solaris +++ b/src/MAKE/Makefile.solaris @@ -4,8 +4,9 @@ SHELL = /bin/sh # System-specific settings -# LINKFORT & FORTLIB settings can be blank if not using LAMMPS Fortran libs -# LINKGPU & GPULIB settings can be blank if not using LAMMPS gpu lib +# LINKFORT/FORTLIB settings can be removed if not using meam or reax packages +# LINKBLAS/BLASLIB settings can be removed if not using user-atc package +# LINKGPU/GPULIB settings can be removed if not using gpu package include Makefile.package @@ -14,12 +15,14 @@ CCFLAGS = $(PKGINC) -O -I../STUBS -DFFT_NONE DEPFLAGS = -M LINK = c++ LINKFORT = +LINKBLAS = LINKGPU = -LINKFLAGS = $(PKGPATH) $(LINKFORT) -O -L../STUBS $(LINKGPU) +LINKFLAGS = $(PKGPATH) $(LINKFORT) $(LINKBLAS) $(LINKGPU) USRLIB = $(PKGLIB) -lmpi FORTLIB = +BLASLIB = GPULIB = -SYSLIB =$(FORTLIB) $(GPULIB) +SYSLIB =$(FORTLIB) $(BLASLIB) $(GPULIB) ARCHIVE = ar ARFLAGS = -rc SIZE = size diff --git a/src/MAKE/Makefile.spirit b/src/MAKE/Makefile.spirit index 725fe4a99c..e42b3ecf14 100644 --- a/src/MAKE/Makefile.spirit +++ b/src/MAKE/Makefile.spirit @@ -11,8 +11,9 @@ SHELL = /bin/sh # System-specific settings -# LINKFORT & FORTLIB settings can be blank if not using LAMMPS Fortran libs -# LINKGPU & GPULIB settings can be blank if not using LAMMPS gpu lib +# LINKFORT/FORTLIB settings can be removed if not using meam or reax packages +# LINKBLAS/BLASLIB settings can be removed if not using user-atc package +# LINKGPU/GPULIB settings can be removed if not using gpu package include Makefile.package @@ -24,12 +25,14 @@ CCFLAGS = $(PKGINC) $(OPTIMIZE) -DFFT_FFTW -I$(FFTW)/include DEPFLAGS = -M LINK = mpicxx LINKFORT = +LINKBLAS = LINKGPU = -LINKFLAGS = $(PKGPATH) $(LINKFORT) $(OPTIMIZE) -L$(FFTW)/lib $(LINKGPU) +LINKFLAGS = $(PKGPATH) $(LINKFORT) $(LINKBLAS) $(LINKGPU) USRLIB = $(PKGLIB) -lfftw -lstdc++ FORTLIB = +BLASLIB = GPULIB = -SYSLIB = $(FORTLIB) -lm $(GPULIB) +SYSLIB = $(FORTLIB) $(BLASLIB) $(GPULIB) SIZE = size # Link rule diff --git a/src/MAKE/Makefile.squall b/src/MAKE/Makefile.squall index 454b1bf9b9..b815926deb 100755 --- a/src/MAKE/Makefile.squall +++ b/src/MAKE/Makefile.squall @@ -12,8 +12,9 @@ SHELL = /bin/sh # System-specific settings -# LINKFORT & FORTLIB settings can be blank if not using LAMMPS Fortran libs -# LINKGPU & GPULIB settings can be blank if not using LAMMPS gpu lib +# LINKFORT/FORTLIB settings can be removed if not using meam or reax packages +# LINKBLAS/BLASLIB settings can be removed if not using user-atc package +# LINKGPU/GPULIB settings can be removed if not using gpu package include Makefile.package @@ -22,12 +23,14 @@ CCFLAGS = $(PKGINC) -DFFT_FFTW -I/home/athomps/tools/fftw-2.1.5/fftw DEPFLAGS = -O2 -M LINK = mpiCC LINKFORT = +LINKBLAS = LINKGPU = -LINKFLAGS = $(PKGPATH) $(LINKFORT) -O2 -L/home/athomps/tools/fftw-2.1.5/fftw/.libs $(LINKGPU) +LINKFLAGS = $(PKGPATH) $(LINKFORT) $(LINKBLAS) $(LINKGPU) USRLIB = $(PKGLIB) -lfftw -lmpi FORTLIB = +BLASLIB = GPULIB = -SYSLIB = $(FORTLIB) $(GPULIB) +SYSLIB = $(FORTLIB) $(BLASLIB) $(GPULIB) SIZE = size # Link rule diff --git a/src/MAKE/Makefile.storm b/src/MAKE/Makefile.storm index e6250979ca..1bd8ee4e0f 100644 --- a/src/MAKE/Makefile.storm +++ b/src/MAKE/Makefile.storm @@ -6,8 +6,9 @@ SHELL = /bin/sh # System-specific settings -# LINKFORT & FORTLIB settings can be blank if not using LAMMPS Fortran libs -# LINKGPU & GPULIB settings can be blank if not using LAMMPS gpu lib +# LINKFORT/FORTLIB settings can be removed if not using meam or reax packages +# LINKBLAS/BLASLIB settings can be removed if not using user-atc package +# LINKGPU/GPULIB settings can be removed if not using gpu package include Makefile.package @@ -17,12 +18,14 @@ CCFLAGS = $(PKGINC) -fastsse -DFFT_FFTW -DMPICH_IGNORE_CXX_SEEK \ DEPFLAGS = -M LINK = CC LINKFORT = +LINKBLAS = LINKGPU = -LINKFLAGS = $(PKGPATH) $(LINKFORT) -O -L/projects/fftw/fftw-2.1.5/lib $(LINKGPU) +LINKFLAGS = $(PKGPATH) $(LINKFORT) $(LINKBLAS) $(LINKGPU) USRLIB = $(PKGLIB) -lfftw FORTLIB = +BLASLIB = GPULIB = -SYSLIB =$(FORTLIB) $(GPULIB) +SYSLIB =$(FORTLIB) $(BLASLIB) $(GPULIB) SIZE = size # Link rule diff --git a/src/MAKE/Makefile.tacc b/src/MAKE/Makefile.tacc index 9498a8de5d..2f78511eae 100644 --- a/src/MAKE/Makefile.tacc +++ b/src/MAKE/Makefile.tacc @@ -4,8 +4,9 @@ SHELL = /bin/sh # System-specific settings -# LINKFORT & FORTLIB settings can be blank if not using LAMMPS Fortran libs -# LINKGPU & GPULIB settings can be blank if not using LAMMPS gpu lib +# LINKFORT/FORTLIB settings can be removed if not using meam or reax packages +# LINKBLAS/BLASLIB settings can be removed if not using user-atc package +# LINKGPU/GPULIB settings can be removed if not using gpu package include Makefile.package @@ -17,12 +18,14 @@ CCFLAGS = -O -DFFT_FFTW -I${FFTW_INC} $(PKGINC) DEPFLAGS = -M LINK = mpiCC LINKFORT = -L/opt/apps/intel/10.1/fc/lib +LINKBLAS = LINKGPU = -LINKFLAGS = -O -L${FFTW_LIB} $(PKGPATH) $(LINKFORT) $(LINKGPU) +LINKFLAGS = -O -L${FFTW_LIB} $(PKGPATH) $(LINKFORT) $(LINKBLAS) $(LINKGPU) USRLIB = ${FFTW_LIB}/libfftw.a $(PKGLIB) FORTLIB = -lifcore +BLASLIB = GPULIB = -SYSLIB = $(FORTLIB) $(GPULIB) +SYSLIB = $(FORTLIB) $(BLASLIB) $(GPULIB) ARFLAGS = -rc SIZE = size diff --git a/src/MAKE/Makefile.tbird b/src/MAKE/Makefile.tbird index e93950720d..b8fc2354c1 100644 --- a/src/MAKE/Makefile.tbird +++ b/src/MAKE/Makefile.tbird @@ -24,8 +24,9 @@ SHELL = /bin/sh # System-specific settings -# LINKFORT & FORTLIB settings can be blank if not using LAMMPS Fortran libs -# LINKGPU & GPULIB settings can be blank if not using LAMMPS gpu lib +# LINKFORT/FORTLIB settings can be removed if not using meam or reax packages +# LINKBLAS/BLASLIB settings can be removed if not using user-atc package +# LINKGPU/GPULIB settings can be removed if not using gpu package include Makefile.package @@ -34,12 +35,14 @@ CCFLAGS = -O -DFFT_FFTW -I$(FFTW_INCLUDE) $(PKGINC) DEPFLAGS = -M LINK = mpicxx LINKFORT = +LINKBLAS = LINKGPU = -LINKFLAGS = -O $(PKGPATH) $(LINKFORT) $(LINKGPU) +LINKFLAGS = -O $(PKGPATH) $(LINKFORT) $(LINKBLAS) $(LINKGPU) USRLIB = $(BLASLIB) $(FFTW_LINK_LINE) -lstdc++ $(PKGLIB) FORTLIB = +BLASLIB = GPULIB = -SYSLIB = -lm $(FORTLIB) $(GPULIB) +SYSLIB = -lm $(FORTLIB) $(BLASLIB) $(GPULIB) SIZE = size ARCHIVE = ar ARFLAGS = -rc diff --git a/src/MAKE/Makefile.tesla b/src/MAKE/Makefile.tesla index d52d4adac2..6ca98133f1 100755 --- a/src/MAKE/Makefile.tesla +++ b/src/MAKE/Makefile.tesla @@ -5,8 +5,9 @@ SHELL = /bin/sh # System-specific settings -# LINKFORT & FORTLIB settings can be blank if not using LAMMPS Fortran libs -# LINKGPU & GPULIB settings can be blank if not using LAMMPS gpu lib +# LINKFORT/FORTLIB settings can be removed if not using meam or reax packages +# LINKBLAS/BLASLIB settings can be removed if not using user-atc package +# LINKGPU/GPULIB settings can be removed if not using gpu package include Makefile.package @@ -15,12 +16,14 @@ CCFLAGS = $(PKGINC) -O -I../STUBS -DFFT_SGI DEPFLAGS = -M LINK = g++ LINKFORT = +LINKBLAS = LINKGPU = -LINKFLAGS = $(PKGPATH) $(LINKFORT) -O -L../STUBS $(LINKGPU) +LINKFLAGS = $(PKGPATH) $(LINKFORT) $(LINKBLAS) $(LINKGPU) USRLIB = $(PKGLIB) -lmpi FORTLIB = +BLASLIB = GPULIB = -SYSLIB = $(FORTLIB) -lm -lcomplib.sgimath $(GPULIB) +SYSLIB = $(FORTLIB) $(BLASLIB) $(GPULIB) SIZE = size # Link rule diff --git a/src/MAKE/Makefile.tflop b/src/MAKE/Makefile.tflop index 8e1365d20e..12904c7e2f 100755 --- a/src/MAKE/Makefile.tflop +++ b/src/MAKE/Makefile.tflop @@ -6,8 +6,9 @@ SHELL = /bin/sh # System-specific settings -# LINKFORT & FORTLIB settings can be blank if not using LAMMPS Fortran libs -# LINKGPU & GPULIB settings can be blank if not using LAMMPS gpu lib +# LINKFORT/FORTLIB settings can be removed if not using meam or reax packages +# LINKBLAS/BLASLIB settings can be removed if not using user-atc package +# LINKGPU/GPULIB settings can be removed if not using gpu package include Makefile.package @@ -16,12 +17,14 @@ CCFLAGS = $(PKGINC) -O4 -Knoieee -DFFT_INTEL DEPFLAGS = -M LINK = ciCC LINKFORT = +LINKBLAS = LINKGPU = -LINKFLAGS = $(PKGPATH) $(LINKFORT) -Knoieee $(LINKGPU) +LINKFLAGS = $(PKGPATH) $(LINKFORT) $(LINKBLAS) $(LINKGPU) USRLIB = $(PKGLIB) -lmpi -lkmath FORTLIB = +BLASLIB = GPULIB = -SYSLIB =$(FORTLIB) $(GPULIB) +SYSLIB =$(FORTLIB) $(BLASLIB) $(GPULIB) SIZE = xsize # Link rule diff --git a/src/MAKE/Makefile.valor b/src/MAKE/Makefile.valor index c0c63d03e4..47c8c49949 100644 --- a/src/MAKE/Makefile.valor +++ b/src/MAKE/Makefile.valor @@ -5,8 +5,9 @@ SHELL = /bin/sh # System-specific settings -# LINKFORT & FORTLIB settings can be blank if not using LAMMPS Fortran libs -# LINKGPU & GPULIB settings can be blank if not using LAMMPS gpu lib +# LINKFORT/FORTLIB settings can be removed if not using meam or reax packages +# LINKBLAS/BLASLIB settings can be removed if not using user-atc package +# LINKGPU/GPULIB settings can be removed if not using gpu package include Makefile.package @@ -17,12 +18,14 @@ CCFLAGS = $(PKGINC) -O -DFFT_FFTW -I${FFTW}/include DEPFLAGS = -M LINK = mpiCC LINKFORT = +LINKBLAS = LINKGPU = -LINKFLAGS = $(PKGPATH) $(LINKFORT) -O -L${FFTW}/lib $(LINKGPU) +LINKFLAGS = $(PKGPATH) $(LINKFORT) $(LINKBLAS) $(LINKGPU) USRLIB = $(PKGLIB) -lfftw -lstdc++ FORTLIB = +BLASLIB = GPULIB = -SYSLIB = $(FORTLIB) -lm $(GPULIB) +SYSLIB = $(FORTLIB) $(BLASLIB) $(GPULIB) SIZE = size # Link rule diff --git a/src/MAKE/Makefile.xt3 b/src/MAKE/Makefile.xt3 index 9365463440..38f14636b4 100644 --- a/src/MAKE/Makefile.xt3 +++ b/src/MAKE/Makefile.xt3 @@ -5,8 +5,9 @@ SHELL = /bin/sh # System-specific settings -# LINKFORT & FORTLIB settings can be blank if not using LAMMPS Fortran libs -# LINKGPU & GPULIB settings can be blank if not using LAMMPS gpu lib +# LINKFORT/FORTLIB settings can be removed if not using meam or reax packages +# LINKBLAS/BLASLIB settings can be removed if not using user-atc package +# LINKGPU/GPULIB settings can be removed if not using gpu package include Makefile.package @@ -18,12 +19,14 @@ NOALIAS = -fno-strict-aliasing DEPFLAGS = -M LINK = CC --target=catamount LINKFORT = +LINKBLAS = LINKGPU = -LINKFLAGS = $(PKGPATH) $(LINKFORT) -O -L$(FFTW_LIB) $(LINKGPU) +LINKFLAGS = $(PKGPATH) $(LINKFORT) $(LINKBLAS) $(LINKGPU) USRLIB = $(PKGLIB) -ldfftw -lgmalloc FORTLIB = +BLASLIB = GPULIB = -SYSLIB =$(FORTLIB) $(GPULIB) +SYSLIB =$(FORTLIB) $(BLASLIB) $(GPULIB) SIZE = size # Link target diff --git a/src/MAKE/Makefile.ydl b/src/MAKE/Makefile.ydl index c51c08b68b..ef79e4dca9 100644 --- a/src/MAKE/Makefile.ydl +++ b/src/MAKE/Makefile.ydl @@ -5,8 +5,9 @@ SHELL = /bin/sh # System-specific settings -# LINKFORT & FORTLIB settings can be blank if not using LAMMPS Fortran libs -# LINKGPU & GPULIB settings can be blank if not using LAMMPS gpu lib +# LINKFORT/FORTLIB settings can be removed if not using meam or reax packages +# LINKBLAS/BLASLIB settings can be removed if not using user-atc package +# LINKGPU/GPULIB settings can be removed if not using gpu package include Makefile.package @@ -17,13 +18,15 @@ CCFLAGS = $(PKGINC) -g -O -I/opt/mpich/include \ DEPFLAGS = -M LINK = xlc -q64 LINKFORT = +LINKBLAS = LINKGPU = -LINKFLAGS = $(PKGPATH) $(LINKFORT) -g -O -L/opt/mpich/lib64 \ $(LINKGPU) +LINKFLAGS = $(PKGPATH) $(LINKFORT) $(LINKBLAS) $(LINKGPU) -L/usr/local/lib -lstdc++ -lc USRLIB = $(PKGLIB) -lfftw -lmpich FORTLIB = +BLASLIB = GPULIB = -SYSLIB =$(FORTLIB) $(GPULIB) +SYSLIB =$(FORTLIB) $(BLASLIB) $(GPULIB) SIZE = size # Link rule diff --git a/src/Makefile b/src/Makefile index 55f00f28db..35c6a4efff 100755 --- a/src/Makefile +++ b/src/Makefile @@ -16,7 +16,7 @@ OBJ = $(SRC:.cpp=.o) PACKAGE = asphere class2 colloid dipole dpd gpu granular \ kspace manybody meam molecule opt peri poems reax xtc -PACKUSER = user-ackland user-cg-cmm user-ewaldn user-smd +PACKUSER = user-ackland user-atc user-cg-cmm user-ewaldn user-smd PACKALL = $(PACKAGE) $(PACKUSER) diff --git a/src/REAX/Install.csh b/src/REAX/Install.csh index df3eb4d0a3..b8f6ca8366 100644 --- a/src/REAX/Install.csh +++ b/src/REAX/Install.csh @@ -11,7 +11,6 @@ if ($1 == 1) then cp style_reax.h .. cp pair_reax.cpp .. - cp pair_reax.h .. cp pair_reax_fortran.h .. @@ -26,7 +25,6 @@ else if ($1 == 0) then touch ../style_reax.h rm ../pair_reax.cpp - rm ../pair_reax.h rm ../pair_reax_fortran.h diff --git a/src/STUBS/mpi.h b/src/STUBS/mpi.h index 244d368159..46e48140aa 100644 --- a/src/STUBS/mpi.h +++ b/src/STUBS/mpi.h @@ -30,6 +30,7 @@ #define MPI_MIN 3 #define MPI_MAXLOC 4 #define MPI_MINLOC 5 +#define MPI_LOR 6 #define MPI_ANY_SOURCE -1 diff --git a/src/USER-ATC/Install.csh b/src/USER-ATC/Install.csh new file mode 100755 index 0000000000..7e4f57ba28 --- /dev/null +++ b/src/USER-ATC/Install.csh @@ -0,0 +1,27 @@ +# Install/unInstall package classes in LAMMPS +# edit Makefile.package to include/exclude ATC library + +if ($1 == 1) then + + sed -i -e 's/[^ \t]*atc //' ../Makefile.package + sed -i -e 's|^PKGINC =[ \t]*|&-I../../lib/atc |' ../Makefile.package + sed -i -e 's|^PKGPATH =[ \t]*|&-L../../lib/atc |' ../Makefile.package + sed -i -e 's|^PKGLIB =[ \t]*|&-latc |' ../Makefile.package + + cp style_user_atc.h .. + + cp fix_atc.h .. + cp fix_atc.cpp .. + +else if ($1 == 0) then + + sed -i -e 's/[^ \t]*atc //' ../Makefile.package + + rm ../style_user_atc.h + touch ../style_user_atc.h + + rm ../fix_atc.h + rm ../fix_atc.cpp + +endif + diff --git a/src/USER-ATC/fix_atc.cpp b/src/USER-ATC/fix_atc.cpp new file mode 100644 index 0000000000..b3539e71da --- /dev/null +++ b/src/USER-ATC/fix_atc.cpp @@ -0,0 +1,543 @@ +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + www.cs.sandia.gov/~sjplimp/lammps.html + Steve Plimpton, sjplimp@sandia.gov, Sandia National Laboratories + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +/* ---------------------------------------------------------------------- + Contributing authors: Reese Jones, Jon Zimmerman, Jeremy Templeton (SNL) +------------------------------------------------------------------------- */ + +#include "stdio.h" +#include "string.h" +#include "fix_atc.h" +#include "ATC_TransferHardy.h" +#include "ATC_TransferThermal.h" +#include "ExtrinsicModel.h" +#include "LammpsInterface.h" +#include "fix_nve.h" +#include "atom.h" +#include "force.h" +#include "update.h" +#include "respa.h" +#include "neighbor.h" +#include "neigh_request.h" +#include "pointers.h" +#include "comm.h" +#include "error.h" + +using namespace LAMMPS_NS; + +// main page of doxygen documentation +/*! \mainpage AtC : Atom-to-Continuum methods + fix commands: + - \ref man_fix_atc (links to all related commands) +*/ + +/* ------------------------------------------------------------------------- */ + +FixATC::FixATC(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg) +{ + // ID GROUP atc PHYSICSTYPE [PARAMETERFILE] + // can have either 4 or 5 args, only arg[3] and arg[4] are used by this class + if (narg > 5 || narg < 4) lmp->error->all("Illegal fix atc command"); + + // Set LAMMPS pointer on LammpsInterface + ATC::LammpsInterface::instance()->set_lammps(lmp); + + /*! \page man_fix_atc fix atc command + \section syntax + fix AtC transfer + - type\n + = thermal : thermal coupling with fields: temperature \n + = two_temperature : electron-phonon coupling with field: temperature and electron_temperature \n + = hardy : Hardy on-the-fly post-processing (see "related" section for possible fields) \n + - parameter_file = name of the file with material parameters. \n + note: hardy does not require a parameter file + \section examples + fix_modify AtC transfer thermal Ar_thermal.dat \n + fix_modify AtC transfer hardy + \section description + This fix is the beginning to creating a coupled FE/MD simulation and/or + an on-the-fly estimation of continuum fields. The coupled versions of this + fix do Verlet integration and the Hardy/post-processing does not. + After instantiating this fix, several other fix_modify commands will be + needed to set up the problem, e.g. define the finite element mesh and + prescribe initial and boundary conditions. + + The following coupling example is typical, but non-exhaustive:\n + + + # ... commands to create and initialize the MD system \n + + # initial fix to designate coupling type and group to apply it to \n + # tag group physics material_file \n + fix AtC internal atc thermal Ar_thermal.mat\n \n + # create a uniform 12 x 2 x 2 mesh that covers region contain the group \n + # nx ny nz region periodicity \n + fix_modify AtC fem create mesh 12 2 2 mdRegion f p p\n \n + # specify the control method for the type of coupling \n + # physics control_type \n + fix_modify AtC transfer thermal control flux \n \n + # specify the initial values for the empirical field "temperature" \n + # field node_group value \n + fix_modify AtC transfer initial temperature all 30.\n \n + # create an output stream for nodal fields \n + # filename output_frequency \n + fix_modify AtC transfer output atc_fe_output 100\n \n + + run 1000 \n + + + likewise for this post-processing example: \n + + + # ... commands to create and initialize the MD system \n + + # initial fix to designate post-processing and the group to apply it to \n + # no material file is allowed nor required \n + fix AtC internal atc hardy \n \n + # create a uniform 1 x 1 x 1 mesh that covers region contain the group \n + # with periodicity this effectively creats a system average \n + fix_modify AtC fem create mesh 1 1 1 box p p p \n\n + # change from default lagrangian map to eulerian \n + # refreshed every 100 steps \n + fix_modify AtC atom_element_map eulerian 100 \n \n + # start with no field defined \n + fix_modify AtC transfer fields none \n \n + # add mass density, potential energy density, stress and temperature \n + fix_modify AtC transfer fields add density energy stress temperature \n\n + # create an output stream for nodal fields \n + # filename output_frequency \n + fix_modify AtC transfer output nvtFE 100 text \n + + run 1000 \n + + + Note coupling and post-processing can be combined in the same simulations + using separate fixes. + \n + For detailed exposition of the theory and algorithms please see:\n + - Wagner, GJ; Jones, RE; Templeton, JA; Parks, MA. An + atomistic-to-continuum coupling method for heat transfer in solids. + Special Issue of Computer Methods and Applied Mechanics (2008) 197:3351. + - Zimmerman, JA; Webb, EB; Hoyt, JJ;. Jones, RE; Klein, PA; Bammann, DJ, + Calculation of stress in atomistic simulation + Special Issue of Modelling and Simulation in Materials Science and + Engineering (2004), 12:S319 + + Please refer to the standard + finite element (FE) texts, e.g. T.J.R Hughes The finite element + method , Dover 2003, for the basics of FE simulation. + + \section restrictions + Thermal and two_temperature (coupling) types use a Verlet time-integration + algorithm. + The hardy type does not contain its own time-integrator and must be used + with a separate fix that does contain one, e.g. nve, nvt, etc. + + Currently, + - the coupling is restricted to thermal physics + - the FE computations are done in serial on each processor. + + \section related + fix_modify commands for setup: \n + - \ref man_fem_mesh + - \ref man_mesh_nodeset + - \ref man_mesh_faceset + - \ref man_mesh_elemset + - \ref man_transfer_internal + - \ref man_transfer_boundary + - \ref man_internal_quadrature + - \ref man_time_integration + - \ref man_electron_integration + + fix_modify commands for boundary and initial conditions:\n + - \ref man_initial + - \ref man_fix_nodes + - \ref man_unfix_nodes + - \ref man_fix_flux + - \ref man_unfix_flux + - \ref man_source + - \ref man_remove_source + + fix_modify commands for control and filtering: \n + - \ref man_thermal_control + - \ref man_time_filter + - \ref man_filter_scale + - \ref man_equilibrium_start + - \ref man_extrinsic_exchange + + fix_modify commands for output: \n + - \ref man_transfer_output + - \ref man_transfer_atomic_output + - \ref man_mesh_output + - \ref man_write_restart + - \ref man_read_restart + + fix_modify commands for post-processing: \n + - \ref man_hardy_fields + - \ref man_hardy_gradients + - \ref man_hardy_rates + - \ref man_hardy_computes + - \ref man_hardy_set + - \ref man_hardy_on_the_fly + - \ref man_boundary_integral + - \ref man_contour_integral + + miscellaneous fix_modify commands: \n + - \ref man_atom_element_map + - \ref man_neighbor_reset_frequency + + Note: a set of example input files with the attendant material files are + included with this package + \section default + none + */ + + // Construct new ATC_Transfer object + // note use "unfix" to destroy + + int me = ATC::LammpsInterface::instance()->comm_rank(); + + string groupName(arg[1]); + + // Postprocessing + try { + if (strcmp(arg[3],"hardy")==0) + { + if (narg < 5) { + if (me==0) printf("Constructing ATC transfer (hardy)\n"); + atcTransfer_ = new ATC::ATC_TransferHardy(groupName); + } + else { + if (me==0) printf("Constructing ATC transfer (hardy) with parameter file %s\n",arg[4]); + std::string matParamFile = arg[4]; + atcTransfer_ = new ATC::ATC_TransferHardy(groupName,matParamFile); + } + } + // PhysicsTypes + else if (strcmp(arg[3],"thermal")==0) + { + std::string matParamFile = arg[4]; + if (me==0) printf("Constructing ATC transfer (thermal) with parameter file %s\n",arg[4]); + atcTransfer_ = new ATC::ATC_TransferThermal(groupName,matParamFile); + lmp->atom->add_callback(0); // NOTE what is this? + } + else if (strcmp(arg[3],"two_temperature")==0) + { + std::string matParamFile = arg[4]; + if (me==0) printf("Constructing ATC transfer (two_temperature) with parameter file %s\n",arg[4]); + atcTransfer_ = new ATC::ATC_TransferThermal(groupName,matParamFile, + ATC::TWO_TEMPERATURE); + } + else + { + lmp->error->all("Unknown physics type in ATC"); + } + } + catch (ATC::ATC_Error& atcError) { + cout << "ATC ERROR: " << atcError.get_error_description() << " processor: " << atcError.get_id() << endl; + throw; + } + + lmp->atom->add_callback(0); + + // Tell LAMMPS we want to write_restart to be called (writes fix state) + //restart_global = 1; + restart_global = 0; // NOTE : turning off ATC restart + // Tell LAMMPS we want to pack_restart to be called (writes per-atom data) + //restart_peratom = 1; + + // Set output computation data based on transfer info + scalar_flag = atcTransfer_->scalar_flag(); + vector_flag = atcTransfer_->vector_flag(); + size_vector = atcTransfer_->size_vector(); + scalar_vector_freq = atcTransfer_->scalar_vector_freq(); + extscalar = atcTransfer_->extscalar(); + extvector = atcTransfer_->extvector(); + extlist = atcTransfer_->extlist(); + + // set comm size needed by this fix + comm_forward = 3; + +} + +/*----------------------------------------------------------------------- */ +FixATC::~FixATC() +{ + if (lmp->atom) lmp->atom->delete_callback(id,0); + if (atcTransfer_) delete atcTransfer_; +} + +/* ---------------------------------------------------------------------- */ + +int FixATC::setmask() +{ + int mask = 0; + mask |= INITIAL_INTEGRATE; + mask |= FINAL_INTEGRATE; + mask |= PRE_EXCHANGE; + mask |= MIN_PRE_EXCHANGE; + return mask; +} + +/* ---------------------------------------------------------------------- */ + +int FixATC::modify_param(int narg, char** arg) +{ + bool match; + + // pass on to transfer layer + try { + match = atcTransfer_->modify(narg,arg); + } + catch (ATC::ATC_Error& atcError) { + cout << "ATC ERROR: " << atcError.get_error_description() << " processor: " << atcError.get_id() << endl; + throw; + } + + if (!match) return 0; + return narg; +} + +/* ---------------------------------------------------------------------- + create initial list of neighbor partners via call to neighbor->build() + must be done in setup (not init) since fix init comes before neigh init + ------------------------------------------------------------------------- */ + +void FixATC::init() +{ + // Guarantee construction of full neighborlist + int irequest = neighbor->request((void *) this); + neighbor->requests[irequest]->pair = 0; + neighbor->requests[irequest]->fix = 1; + neighbor->requests[irequest]->half = 0; + neighbor->requests[irequest]->full = 1; +} + +void FixATC::setup(int vflag) +{ + try { + atcTransfer_->initialize(); + } + catch (ATC::ATC_Error& atcError) { + cout << "ATC ERROR: " << atcError.get_error_description() << " processor: " << atcError.get_id() << endl; + throw; + } + groupbit = atcTransfer_->get_groupbit(); +} + +/* ---------------------------------------------------------------------- + pass throughs to atc functions to handle swapping atom data on + when they move processors + ------------------------------------------------------------------------- */ +void FixATC::pre_exchange() +{ + atcTransfer_->pre_exchange(); +} +void FixATC::min_pre_exchange() +{ + atcTransfer_->pre_exchange(); +} + +double FixATC::memory_usage() +{ + double bytes = (double) atcTransfer_->memory_usage() * sizeof(double); + return bytes; +} + +void FixATC::grow_arrays(int nmax) +{ + atcTransfer_->grow_arrays(nmax); +} + +void FixATC::copy_arrays(int i, int j) +{ + atcTransfer_->copy_arrays(i,j); +} + +int FixATC::pack_exchange(int i, double * buf) +{ + int num = atcTransfer_->pack_exchange(i,buf); + return num; +} + +int FixATC::unpack_exchange(int nlocal, double * buf) +{ + int num = atcTransfer_->unpack_exchange(nlocal,buf); + return num; +} + +int FixATC::pack_comm(int n, int *list, double *buf, int pbc_flag, int *pbc) +{ + int num = atcTransfer_->pack_comm(n, list, buf, pbc_flag, pbc); + return num; +} + +void FixATC::unpack_comm(int n, int first, double *buf) +{ + atcTransfer_->unpack_comm(n, first, buf); +} + + +/* ---------------------------------------------------------------------- + pack values in local atom-based arrays for restart file + ------------------------------------------------------------------------- */ + +int FixATC::pack_restart(int i, double *buf){ + return 0; +} + +/* ---------------------------------------------------------------------- + unpack values from atom->extra array to restart the fix + ------------------------------------------------------------------------- */ + +void FixATC::unpack_restart(int nlocal, int nth){ +} + +/* ---------------------------------------------------------------------- + maxsize of any atom's restart data + ------------------------------------------------------------------------- */ + +int FixATC::maxsize_restart(){ + return 0; +} + +/* ---------------------------------------------------------------------- + size of atom nlocal's restart data + ------------------------------------------------------------------------- */ + +int FixATC::size_restart(int nlocal){ + return 0; +} + +/* ---------------------------------------------------------------------- + pack entire state of Fix into one write + ------------------------------------------------------------------------- */ + +void FixATC::write_restart(FILE *fp){ + // hardcode filename for now + char ** args = new char*[2]; + args[0] = new char[50]; + args[1] = new char[50]; + sprintf(args[0],"write_restart"); + sprintf(args[1],"ATC.restart"); + + // Then call all objects I own to write their data + if (comm->me == 0) { + atcTransfer_->modify(2,args); + } + + delete [] args[0]; + delete [] args[1]; + delete [] args; +} + +/* ---------------------------------------------------------------------- + use state info from restart file to restart the Fix + ------------------------------------------------------------------------- */ + +void FixATC::restart(char *buf){ + // hardcode filename for now + char ** args = new char*[2]; + args[0] = new char[50]; + args[1] = new char[50]; + sprintf(args[0],"read_restart"); + sprintf(args[1],"ATC.restart"); + + // Then call all objects I own to write their data + if (comm->me == 0) { + atcTransfer_->modify(2,args); + } + + delete [] args[0]; + delete [] args[1]; + delete [] args; +} + +/* ---------------------------------------------------------------------- + allow for both per-type and per-atom mass + ------------------------------------------------------------------------- */ + +void FixATC::initial_integrate(int vflag) +{ + try { + atcTransfer_->pre_init_integrate(); + } + catch (ATC::ATC_Error& atcError) { + cout << "ATC ERROR: " << atcError.get_error_description() << " processor: " << atcError.get_id() << endl; + throw; + } + + try { + atcTransfer_->init_integrate_velocity(); + } + catch (ATC::ATC_Error& atcError) { + cout << "ATC ERROR: " << atcError.get_error_description() << " processor: " << atcError.get_id() << endl; + throw; + } + + try { + atcTransfer_->mid_init_integrate(); + } + catch (ATC::ATC_Error& atcError) { + cout << "ATC ERROR: " << atcError.get_error_description() << " processor: " << atcError.get_id() << endl; + throw; + } + + try { + atcTransfer_->init_integrate_position(); + } + catch (ATC::ATC_Error& atcError) { + cout << "ATC ERROR: " << atcError.get_error_description() << " processor: " << atcError.get_id() << endl; + throw; + } + + try { + atcTransfer_->post_init_integrate(); + } + catch (ATC::ATC_Error& atcError) { + cout << "ATC ERROR: " << atcError.get_error_description() << " processor: " << atcError.get_id() << endl; + throw; + } +} + +/* ---------------------------------------------------------------------- */ + +void FixATC::final_integrate() +{ + // need updated ghost atom positions + comm->comm_fix(this); + + try { + atcTransfer_->pre_final_integrate(); + } + catch (ATC::ATC_Error& atcError) { + cout << "ATC ERROR: " << atcError.get_error_description() << " processor: " << atcError.get_id() << endl; + throw; + } + + try { + atcTransfer_->final_integrate(); + } + catch (ATC::ATC_Error& atcError) { + cout << "ATC ERROR: " << atcError.get_error_description() << " processor: " << atcError.get_id() << endl; + throw; + } + + try { + atcTransfer_->post_final_integrate(); + } + catch (ATC::ATC_Error& atcError) { + cout << "ATC ERROR: " << atcError.get_error_description() << " processor: " << atcError.get_id() << endl; + throw; + } +} diff --git a/src/USER-ATC/fix_atc.h b/src/USER-ATC/fix_atc.h new file mode 100644 index 0000000000..3dfacf1930 --- /dev/null +++ b/src/USER-ATC/fix_atc.h @@ -0,0 +1,86 @@ +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + http://lammps.sandia.gov, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#ifndef FIX_ATC_H +#define FIX_ATC_H + +#include "fix.h" + +#include "pointers.h" // access to lammps pointers + +// NOTE what is the correct way? +//class ATC::ATC_Transfer; +#include "ATC_Transfer.h" +#include "LammpsInterface.h" + +namespace LAMMPS_NS { + // fwd decl + class NeighList; + + class FixATC : public Fix { + public: + /** constructor & destructor */ + FixATC(class LAMMPS *, int, char **); + ~FixATC(); + + /** calls ATC_Transfer */ + void init(); + void init_list(int id, NeighList *ptr) { + ATC::LammpsInterface::instance()->init_list(id,ptr); + } + void setup(int vflag); + + /** setmask: tell LAMMPS which fix methods to call */ + int setmask(); + + /** initial_integrate: calls ATC_Transfer */ + void initial_integrate(int vflag); + + /** final_integrate: calls ATC_Transfer */ + void final_integrate(); + + /** calls ATC_Transfer */ + void pre_exchange(); + void min_pre_exchange(); + double memory_usage(); + void grow_arrays(int); + void copy_arrays(int, int); + int pack_exchange(int, double *); + int unpack_exchange(int, double *); + int pack_comm(int , int *, double *, int, int *); + void unpack_comm(int, int, double *); + + /** modify atc parameters (parser) */ + int modify_param(int narg, char** arg); + + /** calls ATC_Transfer to handle restarting/checkpointing */ + /** these four methods are for writing per-atom quantities */ + int pack_restart(int, double *); + void unpack_restart(int, int); + int size_restart(int); + int maxsize_restart(); + /** these two methods are for writing all other quantities */ + void write_restart(FILE *); + void restart(char *); + + protected: + /** functions for "thermo" output */ + virtual double compute_scalar() {return atcTransfer_->compute_scalar();} + virtual double compute_vector(int n) {return atcTransfer_->compute_vector(n);} + double dtv,dtf; + ATC::ATC_Transfer *atcTransfer_; + }; + +} + +#endif diff --git a/src/USER-ATC/style_user_atc.h b/src/USER-ATC/style_user_atc.h new file mode 100644 index 0000000000..95f6fe86d7 --- /dev/null +++ b/src/USER-ATC/style_user_atc.h @@ -0,0 +1,20 @@ +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + www.cs.sandia.gov/~sjplimp/lammps.html + Steve Plimpton, sjplimp@sandia.gov, Sandia National Laboratories + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#ifdef FixInclude +#include "fix_atc.h" +#endif + +#ifdef FixClass +FixStyle(atc,FixATC) +#endif diff --git a/src/style_user_packages.h b/src/style_user_packages.h index 85a62f7b2a..e11a715c56 100644 --- a/src/style_user_packages.h +++ b/src/style_user_packages.h @@ -15,7 +15,7 @@ // see the README files in individual user-package directories for details #include "style_user_ackland.h" -//#include "style_user_atc.h" +#include "style_user_atc.h" #include "style_user_cg_cmm.h" #include "style_user_ewaldn.h" #include "style_user_smd.h"