diff options
| author | Romain GARBAGE <romain.garbage@inria.fr> | 2025-01-23 12:05:14 +0100 |
|---|---|---|
| committer | Romain GARBAGE <romain.garbage@inria.fr> | 2025-01-24 10:38:29 +0100 |
| commit | f552065872cf820ce5b03caed4d7f1d6d4e9fa90 (patch) | |
| tree | 437d0d5b30421a53690ac47c37cf4f96c1c15caa | |
| parent | 85e684db279109050e2b20e6ae62b2b5d3bf5eec (diff) | |
physics: Add smilei.
* guix-science/packages/physics.scm: New variable.
| -rw-r--r-- | guix-science/packages/physics.scm | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/guix-science/packages/physics.scm b/guix-science/packages/physics.scm index cc570e0..06b0061 100644 --- a/guix-science/packages/physics.scm +++ b/guix-science/packages/physics.scm | |||
| @@ -2,6 +2,7 @@ | |||
| 2 | ;;; Copyright © 2022-2025 Emmanuel Medernach <Emmanuel.Medernach@iphc.cnrs.fr> | 2 | ;;; Copyright © 2022-2025 Emmanuel Medernach <Emmanuel.Medernach@iphc.cnrs.fr> |
| 3 | ;;; Copyright © 2023-2024 Jake Forster <jakecameron.forster@gmail.com> | 3 | ;;; Copyright © 2023-2024 Jake Forster <jakecameron.forster@gmail.com> |
| 4 | ;;; Copyright © 2025 Lars Bilke <lars.bilke@ufz.de> | 4 | ;;; Copyright © 2025 Lars Bilke <lars.bilke@ufz.de> |
| 5 | ;;; Copyright © 2025 Romain Garbage <romain.garbage@inria.fr> | ||
| 5 | ;;; | 6 | ;;; |
| 6 | ;;; This program is free software; you can redistribute it and/or modify it | 7 | ;;; This program is free software; you can redistribute it and/or modify it |
| 7 | ;;; under the terms of the GNU General Public License as published by | 8 | ;;; under the terms of the GNU General Public License as published by |
| @@ -23,7 +24,11 @@ | |||
| 23 | #:use-module (gnu packages crypto) | 24 | #:use-module (gnu packages crypto) |
| 24 | #:use-module (gnu packages curl) | 25 | #:use-module (gnu packages curl) |
| 25 | #:use-module (gnu packages linux) | 26 | #:use-module (gnu packages linux) |
| 27 | #:use-module (gnu packages llvm) | ||
| 28 | #:use-module (gnu packages maths) | ||
| 29 | #:use-module (gnu packages mpi) | ||
| 26 | #:use-module (gnu packages python) | 30 | #:use-module (gnu packages python) |
| 31 | #:use-module (gnu packages python-xyz) | ||
| 27 | #:use-module (gnu packages shells) | 32 | #:use-module (gnu packages shells) |
| 28 | #:use-module (gnu packages tls) | 33 | #:use-module (gnu packages tls) |
| 29 | #:use-module (gnu packages xml) | 34 | #:use-module (gnu packages xml) |
| @@ -250,3 +255,48 @@ meta data function.") | |||
| 250 | ;; MFrontGenericInterfaceSupport is released under either the GNU LGPL license | 255 | ;; MFrontGenericInterfaceSupport is released under either the GNU LGPL license |
| 251 | ;; or the CECILL-C license: | 256 | ;; or the CECILL-C license: |
| 252 | (license (list license:lgpl3 license:cecill-c)))) | 257 | (license (list license:lgpl3 license:cecill-c)))) |
| 258 | |||
| 259 | (define-public smilei | ||
| 260 | (package | ||
| 261 | (name "smilei") | ||
| 262 | (version "5.1") | ||
| 263 | (source | ||
| 264 | (origin | ||
| 265 | (method git-fetch) | ||
| 266 | (uri (git-reference | ||
| 267 | (url "https://github.com/SmileiPIC/Smilei") | ||
| 268 | (commit (string-append "v" version)))) | ||
| 269 | (file-name (git-file-name name version)) | ||
| 270 | (sha256 | ||
| 271 | (base32 "1r1hr7flprjgyy3vnyk851fmkwrwimxbwj3krx4gaa5217590ym8")))) | ||
| 272 | (build-system gnu-build-system) | ||
| 273 | (arguments | ||
| 274 | (list | ||
| 275 | #:phases #~(modify-phases %standard-phases | ||
| 276 | ;; No configure script. | ||
| 277 | (delete 'configure) | ||
| 278 | ;; No tests provided, so they are implemented in the | ||
| 279 | ;; package definition. | ||
| 280 | (replace 'check | ||
| 281 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 282 | (when tests? | ||
| 283 | (invoke "./smilei" "benchmarks/tst_quick_1d.py")))) | ||
| 284 | ;; No install target in the Makefile. | ||
| 285 | (replace 'install | ||
| 286 | (lambda _ | ||
| 287 | (let ((bin (string-append #$output "/bin"))) | ||
| 288 | (install-file "smilei" bin) | ||
| 289 | (install-file "smilei_test" bin))))))) | ||
| 290 | (inputs (list hdf5-parallel-openmpi libomp openmpi python-wrapper)) | ||
| 291 | (native-inputs (list util-linux python-numpy)) | ||
| 292 | (properties '((tunable? . #t))) | ||
| 293 | (home-page "https://smileipic.github.io/Smilei/") | ||
| 294 | (synopsis "Particle-in-cell code for plasma simulation") | ||
| 295 | (description | ||
| 296 | "Smilei is a user-friendly electromagnetic particle-in-cell code for | ||
| 297 | the kinetic simulation of plasmas. Co-developed by physicists and | ||
| 298 | computer scientists, it is designed for high-performance on the most | ||
| 299 | recent supercomputing architectures. Smilei is applied to a wide range | ||
| 300 | of applications, from laser-plasma interaction, to accelerator | ||
| 301 | physics, space physics and astrophysics.") | ||
| 302 | (license license:cecill-b))) | ||
