forked from mirrors/nixpkgs
Merge pull request #46667 from costrouc/costrouc/lammps-update
lammps: update, hoomd-blue, dl_poly: init
This commit is contained in:
commit
2823b5e698
|
@ -0,0 +1,37 @@
|
|||
{ stdenv, fetchurl
|
||||
, gfortran, mpi
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "1.10";
|
||||
name = "DL_POLY_Classic-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://ccpforge.cse.rl.ac.uk/gf/download/frsrelease/574/8924/dl_class_1.10.tar.gz";
|
||||
sha256 = "1r76zvln3bwycxlmqday0sqzv5j260y7mdh66as2aqny6jzd5ld7";
|
||||
};
|
||||
|
||||
buildInputs = [ mpi gfortran ];
|
||||
|
||||
configurePhase = ''
|
||||
cd source
|
||||
cp -v ../build/MakePAR Makefile
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
make dlpoly
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
cp -v ../execute/DLPOLY.X $out/bin
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = https://www.ccp5.ac.uk/DL_POLY_C;
|
||||
description = "DL_POLY Classic is a general purpose molecular dynamics simulation package";
|
||||
license = licenses.bsdOriginal;
|
||||
platforms = [ "x86_64-linux" ];
|
||||
maintainers = [ maintainers.costrouc ];
|
||||
};
|
||||
}
|
|
@ -1,63 +1,56 @@
|
|||
{ lib
|
||||
, bash
|
||||
, stdenv
|
||||
, writeText
|
||||
, fetchFromGitHub
|
||||
, libpng
|
||||
, gzip
|
||||
, fftw
|
||||
, openblas
|
||||
, mpiSupport ? false, mpi ? null
|
||||
{ stdenv, fetchFromGitHub
|
||||
, libpng, gzip, fftw, openblas
|
||||
, mpi ? null
|
||||
}:
|
||||
|
||||
assert mpiSupport -> mpi != null;
|
||||
|
||||
let 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";
|
||||
withMPI = (mpi != null);
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
# LAMMPS has weird versioning converted to ISO 8601 format
|
||||
version = "patch_2Aug2018";
|
||||
version = "stable_22Aug2018";
|
||||
name = "lammps-${version}";
|
||||
|
||||
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";
|
||||
sha256 = "1dlifm9wm1jcw2zwal3fnzzl41ng08c7v48w6hx2mz84zljg1nsj";
|
||||
};
|
||||
|
||||
passthru = {
|
||||
inherit mpi;
|
||||
inherit packages;
|
||||
};
|
||||
|
||||
buildInputs = [ fftw libpng openblas gzip bash ]
|
||||
++ (stdenv.lib.optionals mpiSupport [ mpi ]);
|
||||
buildInputs = [ fftw libpng openblas gzip ]
|
||||
++ (stdenv.lib.optionals withMPI [ mpi ]);
|
||||
|
||||
configurePhase = ''
|
||||
cd src
|
||||
for pack in ${stdenv.lib.concatStringsSep " " packages}; do make "yes-$pack" SHELL=$SHELL; done
|
||||
'';
|
||||
|
||||
# Must do manual build due to LAMMPS requiring a seperate build for
|
||||
# the libraries and executable
|
||||
builder = writeText "builder.sh" ''
|
||||
source $stdenv/setup
|
||||
# the libraries and executable. Also non-typical make script
|
||||
buildPhase = ''
|
||||
make mode=exe ${if withMPI then "mpi" else "serial"} SHELL=$SHELL LMP_INC="${lammps_includes}" FFT_PATH=-DFFT_FFTW3 FFT_LIB=-lfftw3 JPG_LIB=-lpng
|
||||
make mode=shlib ${if withMPI then "mpi" else "serial"} SHELL=$SHELL LMP_INC="${lammps_includes}" 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
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin $out/include $out/lib
|
||||
|
||||
mkdir -p $out/bin
|
||||
cp -v lmp_* $out/bin/
|
||||
|
||||
mkdir -p $out/include
|
||||
cp -v *.h $out/include/
|
||||
|
||||
mkdir -p $out/lib
|
||||
cp -v liblammps* $out/lib/
|
||||
'';
|
||||
|
||||
meta = {
|
||||
meta = with stdenv.lib; {
|
||||
description = "Classical Molecular Dynamics simulation code";
|
||||
longDescription = ''
|
||||
LAMMPS is a classical molecular dynamics simulation code designed to
|
||||
|
@ -67,8 +60,8 @@ stdenv.mkDerivation rec {
|
|||
under the terms of the GNU Public License (GPL).
|
||||
'';
|
||||
homepage = http://lammps.sandia.gov;
|
||||
license = stdenv.lib.licenses.gpl2;
|
||||
platforms = stdenv.lib.platforms.linux;
|
||||
maintainers = with lib.maintainers; [ costrouc ];
|
||||
license = licenses.gpl2;
|
||||
platforms = platforms.linux;
|
||||
maintainers = [ maintainers.costrouc ];
|
||||
};
|
||||
}
|
||||
|
|
67
pkgs/development/python-modules/hoomd-blue/default.nix
Normal file
67
pkgs/development/python-modules/hoomd-blue/default.nix
Normal file
|
@ -0,0 +1,67 @@
|
|||
{ stdenv, buildPythonPackage, fetchgit
|
||||
, cmake, pkgconfig
|
||||
, python
|
||||
, mpi ? null
|
||||
}:
|
||||
|
||||
let components = {
|
||||
cgcmm = true;
|
||||
depreciated = true;
|
||||
hpmc = true;
|
||||
md = true;
|
||||
metal = true;
|
||||
testing = false;
|
||||
};
|
||||
onOffBool = b: if b then "ON" else "OFF";
|
||||
withMPI = (mpi != null);
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
version = "2.3.4";
|
||||
name = "hoomd-blue-${version}";
|
||||
|
||||
src = fetchgit {
|
||||
url = "https://bitbucket.org/glotzer/hoomd-blue";
|
||||
rev = "v${version}";
|
||||
sha256 = "0in49f1dvah33nl5n2qqbssfynb31pw1ds07j8ziryk9w252j1al";
|
||||
};
|
||||
|
||||
passthru = {
|
||||
inherit components mpi;
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake pkgconfig ];
|
||||
buildInputs = stdenv.lib.optionals withMPI [ mpi ];
|
||||
propagatedBuildInputs = [ python.pkgs.numpy ]
|
||||
++ stdenv.lib.optionals withMPI [ python.pkgs.mpi4py ];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
dontAddPrefix = true;
|
||||
cmakeFlags = [
|
||||
"-DENABLE_MPI=${onOffBool withMPI}"
|
||||
"-DBUILD_CGCMM=${onOffBool components.cgcmm}"
|
||||
"-DBUILD_DEPRECIATED=${onOffBool components.depreciated}"
|
||||
"-DBUILD_HPMC=${onOffBool components.hpmc}"
|
||||
"-DBUILD_MD=${onOffBool components.md}"
|
||||
"-DBUILD_METAL=${onOffBool components.metal}"
|
||||
"-DBUILD_TESTING=${onOffBool components.testing}"
|
||||
];
|
||||
|
||||
preConfigure = ''
|
||||
# Since we can't expand $out in `cmakeFlags`
|
||||
cmakeFlags="$cmakeFlags -DCMAKE_INSTALL_PREFIX=$out/${python.sitePackages}"
|
||||
'';
|
||||
|
||||
# tests fail but have tested that package runs properly
|
||||
doCheck = false;
|
||||
checkTarget = "test";
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = http://glotzerlab.engin.umich.edu/hoomd-blue/;
|
||||
description = "HOOMD-blue is a general-purpose particle simulation toolkit";
|
||||
license = licenses.bsdOriginal;
|
||||
platforms = [ "x86_64-linux" ];
|
||||
maintainers = [ maintainers.costrouc ];
|
||||
};
|
||||
|
||||
}
|
|
@ -21378,12 +21378,15 @@ with pkgs;
|
|||
|
||||
### SCIENCE/MOLECULAR-DYNAMICS
|
||||
|
||||
dl-poly-classic-mpi = callPackage ../applications/science/molecular-dynamics/dl-poly-classic {
|
||||
mpi = openmpi;
|
||||
};
|
||||
|
||||
lammps = callPackage ../applications/science/molecular-dynamics/lammps {
|
||||
fftw = fftw;
|
||||
};
|
||||
|
||||
lammps-mpi = appendToName "mpi" (lammps.override {
|
||||
mpiSupport = true;
|
||||
lammps-mpi = lowPrio (lammps.override {
|
||||
mpi = openmpi;
|
||||
});
|
||||
|
||||
|
|
|
@ -392,6 +392,10 @@ in {
|
|||
|
||||
hdmedians = callPackage ../development/python-modules/hdmedians { };
|
||||
|
||||
hoomd-blue = toPythonModule (callPackage ../development/python-modules/hoomd-blue {
|
||||
inherit python;
|
||||
});
|
||||
|
||||
httpsig = callPackage ../development/python-modules/httpsig { };
|
||||
|
||||
i3ipc = callPackage ../development/python-modules/i3ipc { };
|
||||
|
|
Loading…
Reference in a new issue