summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--guix-science/packages/physics.scm50
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
297the kinetic simulation of plasmas. Co-developed by physicists and
298computer scientists, it is designed for high-performance on the most
299recent supercomputing architectures. Smilei is applied to a wide range
300of applications, from laser-plasma interaction, to accelerator
301physics, space physics and astrophysics.")
302 (license license:cecill-b)))