aboutsummaryrefslogtreecommitdiff
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)
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 9a89b88d7a5..03e37ad9d93 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 ];
};
}