aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Garlick <pgarlick@tourbillion-technology.com>2018-11-12 16:00:36 +0000
committerLudovic Courtès <ludo@gnu.org>2018-11-14 21:34:08 +0100
commitf7a4757a4cabfe70f07216ab3f7eac60a80b82ad (patch)
tree857b14aa004f9a78ebdb59bfe38e8e715dd31fa6
parent6b5687d053a4d0211e6ded1a8d129d065c71430c (diff)
downloadguix-f7a4757a4cabfe70f07216ab3f7eac60a80b82ad.tar
guix-f7a4757a4cabfe70f07216ab3f7eac60a80b82ad.tar.gz
gnu: Add python-fenics-dijitso.
* gnu/packages/simulation.scm (python-fenics-dijitso): New varaible. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
-rw-r--r--gnu/packages/simulation.scm51
1 files changed, 50 insertions, 1 deletions
diff --git a/gnu/packages/simulation.scm b/gnu/packages/simulation.scm
index a5b661e34d..86b1aba695 100644
--- a/gnu/packages/simulation.scm
+++ b/gnu/packages/simulation.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2017 Paul Garlick <pgarlick@tourbillion-technology.com>
+;;; Copyright © 2017, 2018 Paul Garlick <pgarlick@tourbillion-technology.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -22,6 +22,7 @@
#:use-module (gnu packages bash)
#:use-module (gnu packages bison)
#:use-module (gnu packages boost)
+ #:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages flex)
#:use-module (gnu packages gettext)
@@ -35,6 +36,7 @@
#:use-module (gnu packages mpi)
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages ncurses)
+ #:use-module (gnu packages python)
#:use-module (gnu packages readline)
#:use-module (gnu packages tls)
#:use-module (gnu packages version-control)
@@ -43,6 +45,7 @@
#:use-module (guix download)
#:use-module (guix build utils)
#:use-module (guix build-system gnu)
+ #:use-module (guix build-system python)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix utils)
@@ -221,3 +224,49 @@ with gas/liquid interfaces. Large problems may be split into smaller, connected
problems for efficient solution on parallel systems.")
(license license:gpl3+)
(home-page "https://openfoam.org")))
+
+(define-public python-fenics-dijitso
+ (package
+ (name "python-fenics-dijitso")
+ (version "2018.1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "fenics-dijitso" version))
+ (sha256
+ (base32
+ "1qax2f52qsjbd1h5lk5i5shp448qlakxabjjybrfc1w823p0yql9"))))
+ (build-system python-build-system)
+ (inputs
+ `(("openmpi" ,openmpi)
+ ("python-numpy" ,python-numpy)))
+ (native-inputs
+ `(("python-pytest-cov" ,python-pytest-cov)))
+ (propagated-inputs
+ `(("python-mpi4py" ,python-mpi4py)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'build 'mpi-setup
+ ,%openmpi-setup)
+ (replace 'check
+ (lambda _
+ (setenv "HOME" "/tmp")
+ (setenv "PYTHONPATH"
+ (string-append (getcwd) ":" (getenv "PYTHONPATH")))
+ (with-directory-excursion "test"
+ (invoke "./runtests.sh"))
+ #t)))))
+ (home-page "https://bitbucket.org/fenics-project/dijitso/")
+ (synopsis "Distributed just-in-time building of shared libraries")
+ (description
+ "Dijitso provides a core component of the @code{FEniCS} framework,
+namely the just-in-time compilation of C++ code that is generated from
+Python modules. It is called from within a C++ library, using ctypes
+to import the dynamic shared library directly.
+
+As long as the compiled code can provide a simple factory function to
+a class implementing a predefined C++ interface, there is no limit to
+the complexity of that interface. Parallel support depends on the
+@code{mpi4py} interface.")
+ (license license:lgpl3+)))