Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
argo
argopkgs
Commits
c9a863e9
Commit
c9a863e9
authored
Nov 02, 2018
by
Valentin Reis
Browse files
Refactor finished.
parent
41f1e383
Changes
2
Hide whitespace changes
Inline
Side-by-side
pkgs/applications/lammps/default.nix
View file @
c9a863e9
{
src
,
lammps
,
...
}:
lammps
.
overrideAttrs
(
oldAttrs
:
{
inherit
src
;})
{
lib
,
src
,
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
=
"patch_2Aug2018"
;
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"
;
inherit
src
;
#src = fetchFromGitHub {
#owner = "lammps";
#repo = "lammps";
#rev = "${version}";
#sha256 = "1ph9pr7s11wgmspmnhxa55bh1pq2cyl8iimfi62lbpbpl9pr1ilc";
#};
passthru
=
{
inherit
mpi
;
};
buildInputs
=
[
fftw
libpng
openblas
gzip
bash
]
++
(
stdenv
.
lib
.
optionals
mpiSupport
[
mpi
]);
# Must do manual build due to LAMMPS requiring a seperate build for
# the libraries and executable
builder
=
writeText
"builder.sh"
''
source $stdenv/setup
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/
mkdir -p $out/include
cp -v *.h $out/include/
mkdir -p $out/lib
cp -v liblammps* $out/lib/
''
;
meta
=
{
description
=
"Classical Molecular Dynamics simulation code"
;
longDescription
=
''
LAMMPS is a classical molecular dynamics simulation code designed to
run efficiently on parallel computers. It was developed at Sandia
National Laboratories, a US Department of Energy facility, with
funding from the DOE. It is an open-source code, distributed freely
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
];
};
}
pkgs/default.nix
View file @
c9a863e9
...
...
@@ -43,9 +43,9 @@ in rec {
let
paths
=
{
amg
=
applications/amg
;
qmcpack
=
applications/qmcpack
;
openmc
=
applications/openmc
;
stream
=
applications/stream
;
#
qmcpack = applications/qmcpack;
#
openmc = applications/openmc;
#
stream = applications/stream;
lammps
=
applications/lammps
;
};
rawApplication
=
name
:
path
:
cpDefaultPin
path
{};
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment