guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

01/04: gnu: Add n2p2.


From: guix-commits
Subject: 01/04: gnu: Add n2p2.
Date: Thu, 5 May 2022 17:57:24 -0400 (EDT)

civodul pushed a commit to branch master
in repository guix.

commit 6829d61bc5d784a3d8f4d5bd6d5ad183b1aebaa8
Author: Pierre-Antoine Bouttier <pierre-antoine.bouttier@univ-grenoble-alpes.fr>
AuthorDate: Mon Dec 6 16:24:22 2021 +0100

    gnu: Add n2p2.
    
    * gnu/packages/maths.scm (n2p2): New variable.
    
    Co-authored-by: Ludovic Courtès <ludo@gnu.org>
---
 gnu/packages/maths.scm | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 60 insertions(+)

diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index cc89ef75f3..98e239d5bd 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -49,6 +49,7 @@
 ;;; Copyright © 2021 Ivan Gankevich <i.gankevich@spbu.ru>
 ;;; Copyright © 2021 Jean-Baptiste Volatier <jbv@pm.me>
 ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
+;;; Copyright © 2021 Pierre-Antoine Bouttier 
<pierre-antoine.bouttier@univ-grenoble-alpes.fr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1852,6 +1853,65 @@ sharing of scientific data.")
     (home-page (package-home-page netcdf))
     (license (package-license netcdf))))
 
+(define-public n2p2
+  (package
+    (name "n2p2")
+    (version "2.1.4")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/CompPhysVienna/n2p2";)
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1lw195ihpxwh08387i4gamk1glhalpq888q6nj8l5vswbgnrv1pq"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags '("MODE=shared" "-C" "src")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'post-unpack
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "src/makefile.gnu"
+               (("PROJECT_EIGEN=/usr/include/eigen3")
+                (string-append "PROJECT_EIGEN="
+                               (assoc-ref inputs "eigen") "/include/eigen3")))
+             (substitute* "src/makefile.gnu"
+               (("-lblas")
+                (string-append "-L" (assoc-ref inputs "openblas")
+                               "/lib -lopenblas"))
+               (("-march=native")
+                ""))
+             (substitute* "src/application/makefile"
+               (("LDFLAGS=")
+                "LDFLAGS=-Wl,-rpath='$$ORIGIN/../lib' "))))
+         (delete 'configure)
+         (delete 'check)
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (bindir (string-append out "/bin"))
+                    (libdir (string-append out "/lib"))
+                    (incdir (string-append out "/include")))
+               (for-each (lambda (f) (install-file f bindir))
+                         (find-files "bin" "^nnp-"))
+               (for-each (lambda (f) (install-file f libdir))
+                         (find-files "lib" "\\.so$"))
+               (for-each (lambda (f) (install-file f incdir))
+                         (find-files "include" "\\.h$"))))))))
+    (inputs
+     (list openmpi gsl openblas eigen))
+    (synopsis "Neural network potentials for chemistry and physics")
+    (description "This package contains software that will allow you to use
+existing neural network potential parameterizations to predict energies and
+forces (with standalone tools but also in conjunction with the MD software
+LAMMPS).  In addition it is possible to train new neural network potentials
+with the provided training tools.")
+    (home-page "https://compphysvienna.github.io/n2p2/";)
+    (properties '((tunable? . #t)))        ;to benefit from SIMD code in Eigen
+    (license license:gpl3+)))
+
 (define-public nlopt
   (package
     (name "nlopt")



reply via email to

[Prev in Thread] Current Thread [Next in Thread]