summaryrefslogtreecommitdiffstats
path: root/pkgs/applications/science/molecular-dynamics
diff options
context:
space:
mode:
authorShamrock Lee <44064051+ShamrockLee@users.noreply.github.com>2022-08-05 00:37:54 +0000
committerYueh-Shun Li <44064051+ShamrockLee@users.noreply.github.com>2023-04-03 20:53:23 +0800
commit4e72d111e92555e993dff69c6f230246c6ce1795 (patch)
tree603799d4c9ed94e36caed0d3e4ca4553b8274509 /pkgs/applications/science/molecular-dynamics
parentb2b3b86d91624e334ae6b8bc01ff466b25abce42 (diff)
raspa: init at 2.0.47 and add tests
Diffstat (limited to 'pkgs/applications/science/molecular-dynamics')
-rw-r--r--pkgs/applications/science/molecular-dynamics/raspa/data.nix33
-rw-r--r--pkgs/applications/science/molecular-dynamics/raspa/default.nix79
2 files changed, 112 insertions, 0 deletions
diff --git a/pkgs/applications/science/molecular-dynamics/raspa/data.nix b/pkgs/applications/science/molecular-dynamics/raspa/data.nix
new file mode 100644
index 000000000000..bcc9dc3b372e
--- /dev/null
+++ b/pkgs/applications/science/molecular-dynamics/raspa/data.nix
@@ -0,0 +1,33 @@
+{ lib
+, stdenvNoCC
+, gzip
+, raspa
+}:
+
+stdenvNoCC.mkDerivation rec {
+ pname = "raspa-data";
+ inherit (raspa) version src;
+
+ outputs = [ "out" "doc" ];
+
+ nativeBuildInpuhs = [ gzip ];
+
+ installPhase = ''
+ runHook preInstall
+ mkdir -p "$out/share/raspa"
+ mv examples "$out/share/raspa"
+ mkdir -p "$doc/share/raspa"
+ mv -T "Docs" "$doc/share/raspa/doc"
+ runHook postInstall
+ '';
+
+ # Keep the shebangs of the examples from being patched
+ dontPatchShebangs = true;
+
+ meta = with lib; {
+ inherit (raspa.meta) homepage license maintainers;
+ description = "Example packs and documentation of RASPA";
+ outputsToInstall = [ "out" "doc" ];
+ platforms = lib.platforms.all;
+ };
+}
diff --git a/pkgs/applications/science/molecular-dynamics/raspa/default.nix b/pkgs/applications/science/molecular-dynamics/raspa/default.nix
new file mode 100644
index 000000000000..149db0504bf1
--- /dev/null
+++ b/pkgs/applications/science/molecular-dynamics/raspa/default.nix
@@ -0,0 +1,79 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, autoreconfHook
+, makeWrapper
+, fftw
+, lapack
+, openblas
+, runCommandLocal
+, raspa
+, raspa-data
+}:
+stdenv.mkDerivation rec {
+ pname = "raspa";
+ version = "2.0.47";
+
+ src = fetchFromGitHub {
+ owner = "iRASPA";
+ repo = "RASPA2";
+ rev = "v${version}";
+ hash = "sha256-i8Y+pejiOuyPNJto+/0CmRoAnMljCrnDFx8qDh4I/68=";
+ };
+
+ nativeBuildInputs = [
+ autoreconfHook
+ makeWrapper
+ ];
+
+ buildInputs = [
+ fftw
+ lapack
+ openblas
+ ];
+
+ # Prepare for the Python binding packaging.
+ strictDeps = true;
+
+ enableParallelBuilding = true;
+
+ preAutoreconf = ''
+ mkdir "m4"
+ '';
+
+ postAutoreconf = ''
+ automake --add-missing
+ autoconf
+ '';
+
+ doCheck = true;
+
+ # Wrap with RASPA_DIR
+ # so that users can run $out/bin/simulate directly
+ # without the need of a `run` srcipt.
+ postInstall = ''
+ wrapProgram "$out/bin/simulate" \
+ --set RASPA_DIR "$out"
+ '';
+
+ passthru.tests.run-an-example = runCommandLocal "raspa-test-run-an-example" { }
+ ''
+ set -eu -o pipefail
+ exampleDir="${raspa-data}/share/raspa/examples/Basic/1_MC_Methane_in_Box"
+ exampleDirWritable="$(basename "$exampleDir")"
+ cp -rT "$exampleDir" "./$exampleDirWritable"
+ chmod u+rw -R "$exampleDirWritable"
+ cd "$exampleDirWritable"
+ ${raspa}/bin/simulate
+ touch "$out"
+ '';
+
+ meta = with lib; {
+ description = "A general purpose classical molecular simulation package";
+ homepage = "https://iraspa.org/raspa/";
+ license = licenses.mit;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ ShamrockLee ];
+ mainProgram = "simulate";
+ };
+}