about summary refs log tree commit diff
path: root/pkgs/applications/science/molecular-dynamics
diff options
context:
space:
mode:
authorChris Ostrouchov <chris.ostrouchov@gmail.com>2018-08-08 00:40:23 -0400
committerChris Ostrouchov <chris.ostrouchov@gmail.com>2018-08-10 16:35:54 -0400
commit9745611ed6464998f56b6fb25fdf7216b29a38c2 (patch)
tree898bff054f536864853ae06b9536c826b67c1a98 /pkgs/applications/science/molecular-dynamics
parentb55c02e878b7b0677cd3f7ca3d041c07f8b58051 (diff)
downloadnixlib-9745611ed6464998f56b6fb25fdf7216b29a38c2.tar
nixlib-9745611ed6464998f56b6fb25fdf7216b29a38c2.tar.gz
nixlib-9745611ed6464998f56b6fb25fdf7216b29a38c2.tar.bz2
nixlib-9745611ed6464998f56b6fb25fdf7216b29a38c2.tar.lz
nixlib-9745611ed6464998f56b6fb25fdf7216b29a38c2.tar.xz
nixlib-9745611ed6464998f56b6fb25fdf7216b29a38c2.tar.zst
nixlib-9745611ed6464998f56b6fb25fdf7216b29a38c2.zip
lammps: 16Feb16 -> patch_2Aug2018
Major changes and update to lammps build

 - using fetchFromGitHub to get source instead of lammps mirror
 - configurable lammps packages included and includes for compilation
 - cleaner build script
 - preserving the executable, shared library names, and include headers
Diffstat (limited to 'pkgs/applications/science/molecular-dynamics')
-rw-r--r--pkgs/applications/science/molecular-dynamics/lammps/default.nix45
1 files changed, 32 insertions, 13 deletions
diff --git a/pkgs/applications/science/molecular-dynamics/lammps/default.nix b/pkgs/applications/science/molecular-dynamics/lammps/default.nix
index 9a89b88d7a52..03e37ad9d935 100644
--- a/pkgs/applications/science/molecular-dynamics/lammps/default.nix
+++ b/pkgs/applications/science/molecular-dynamics/lammps/default.nix
@@ -1,25 +1,37 @@
-{ stdenv, writeText, fetchurl,
-  libpng, fftw,
-  mpiSupport ? false, mpi ? null
+{ lib
+, bash
+, stdenv
+, writeText
+, fetchFromGitHub
+, libpng
+, gzip
+, fftw
+, openblas
+, mpiSupport ? false, mpi ? null
 }:
 
 assert mpiSupport -> mpi != null;
 
 stdenv.mkDerivation rec {
   # LAMMPS has weird versioning converted to ISO 8601 format
-  version = "2016-02-16";
+  version = "patch_2Aug2018";
   name = "lammps-${version}";
 
-  src = fetchurl {
-    url = "mirror://sourceforge/lammps/lammps-16Feb16.tar.gz";
-    sha256 = "1yzfbkxma3xa1288rnn66h4w0smbmjkwq1fx1y60pjiw0prmk105";
+  lammps_packages = "asphere body class2 colloid compress coreshell dipole granular kspace manybody mc misc molecule opt peri qeq replica rigid shock snap srd user-reaxc";
+  lammps_includes = "-DLAMMPS_EXCEPTIONS -DLAMMPS_GZIP -DLAMMPS_MEMALIGN=64";
+
+  src = fetchFromGitHub {
+    owner = "lammps";
+    repo = "lammps";
+    rev = "${version}";
+    sha256 = "1ph9pr7s11wgmspmnhxa55bh1pq2cyl8iimfi62lbpbpl9pr1ilc";
   };
 
   passthru = {
     inherit mpi;
   };
 
-  buildInputs = [ fftw libpng ]
+  buildInputs = [ fftw libpng openblas gzip bash ]
   ++ (stdenv.lib.optionals mpiSupport [ mpi ]);
 
   # Must do manual build due to LAMMPS requiring a seperate build for
@@ -27,13 +39,19 @@ stdenv.mkDerivation rec {
   builder = writeText "builder.sh" ''
     source $stdenv/setup
 
-    tar xzf $src
-    cd lammps-*/src
-    make mode=exe ${if mpiSupport then "mpi" else "serial"} SHELL=$SHELL LMP_INC="-DLAMMPS_GZIP -DLAMMPS_PNG" FFT_PATH=-DFFT_FFTW3 FFT_LIB=-lfftw3 JPG_LIB=-lpng
-    make mode=shlib ${if mpiSupport then "mpi" else "serial"} SHELL=$SHELL LMP_INC="-DLAMMPS_GZIP -DLAMMPS_PNG" FFT_PATH=-DFFT_FFTW3 FFT_LIB=-lfftw3 JPG_LIB=-lpng
+    mkdir lammps
+    cp -r $src/lib $src/src lammps
+    chmod -R 755 lammps/src/
+    cd lammps/src
+    for pack in ${lammps_packages}; do make "yes-$pack" SHELL=$SHELL; done
+    make mode=exe ${if mpiSupport then "mpi" else "serial"} SHELL=$SHELL LMP_INC="${lammps_includes}" FFT_PATH=-DFFT_FFTW3 FFT_LIB=-lfftw3 JPG_LIB=-lpng
+    make mode=shlib ${if mpiSupport then "mpi" else "serial"} SHELL=$SHELL LMP_INC="${lammps_includes}" FFT_PATH=-DFFT_FFTW3 FFT_LIB=-lfftw3 JPG_LIB=-lpng
 
     mkdir -p $out/bin
-    cp -v lmp_* $out/bin/lammps
+    cp -v lmp_* $out/bin/
+
+    mkdir -p $out/include
+    cp -v *.h $out/include/
 
     mkdir -p $out/lib
     cp -v liblammps* $out/lib/
@@ -51,5 +69,6 @@ stdenv.mkDerivation rec {
     homepage = http://lammps.sandia.gov;
     license = stdenv.lib.licenses.gpl2;
     platforms = stdenv.lib.platforms.linux;
+    maintainers = with lib.maintainers; [ costrouc ];
   };
 }