From: Paul Garlick <pgarlick@tourbillion-technology.com>
To: 33059@debbugs.gnu.org, "Efraim Flashner" <efraim@flashner.co.il>,
"Eric Bavier" <ericbavier@centurylink.net>,
"Ludovic Courtès" <ludo@gnu.org>
Cc: Paul Garlick <pgarlick@tourbillion-technology.com>
Subject: [bug#33059] [PATCH v2 9/9] gnu: Add fenics.
Date: Mon, 12 Nov 2018 16:00:41 +0000 [thread overview]
Message-ID: <1542038441-5738-10-git-send-email-pgarlick@tourbillion-technology.com> (raw)
In-Reply-To: <1542038441-5738-1-git-send-email-pgarlick@tourbillion-technology.com>
* gnu/packages/simulation.scm (fenics): New variable.
---
gnu/packages/simulation.scm | 117 ++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 117 insertions(+)
diff --git a/gnu/packages/simulation.scm b/gnu/packages/simulation.scm
index bd139d3..6144e23 100644
--- a/gnu/packages/simulation.scm
+++ b/gnu/packages/simulation.scm
@@ -592,3 +592,120 @@ user interface to the FEniCS core components and external libraries.")
license:zlib
license:expat
license:lgpl3+))))
+
+(define-public fenics
+ (package (inherit fenics-dolfin)
+ (name "fenics")
+ (build-system python-build-system)
+ (inputs
+ `(("pybind11" ,pybind11)
+ ("python-matplotlib" ,python-matplotlib)
+ ,@(alist-delete "python" (package-inputs fenics-dolfin))))
+ (native-inputs
+ `(("cmake" ,cmake)
+ ("ply" ,python-ply)
+ ("pytest" ,python-pytest)
+ ("python-decorator" ,python-decorator)
+ ("python-pkgconfig" ,python-pkgconfig)
+ ,@(package-native-inputs fenics-dolfin)))
+ (propagated-inputs
+ `(("dolfin" ,fenics-dolfin)
+ ("petsc4py" ,python-petsc4py)
+ ("slepc4py" ,python-slepc4py)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'patch-source-shebangs 'set-paths
+ (lambda _
+ ;; Define paths to store locations.
+ (setenv "PYBIND11_DIR" (assoc-ref %build-inputs "pybind11"))
+ ;; Move to python sub-directory.
+ (chdir "python")
+ #t))
+ (add-after 'build 'mpi-setup
+ ,%openmpi-setup)
+ (add-before 'check 'pre-check
+ (lambda _
+ ;; Exclude tests that require meshes supplied by git-lfs.
+ (substitute* "demo/test.py"
+ (("(.*stem !.*)" line)
+ (string-append
+ line "\n"
+ "excludeList = [\n"
+ "'multimesh-quadrature', \n"
+ "'multimesh-marking', \n"
+ "'mixed-poisson-sphere', \n"
+ "'mesh-quality', \n"
+ "'lift-drag', \n"
+ "'elastodynamics', \n"
+ "'dg-advection-diffusion', \n"
+ "'contact-vi-tao', \n"
+ "'contact-vi-snes', \n"
+ "'collision-detection', \n"
+ "'buckling-tao', \n"
+ "'auto-adaptive-navier-stokes', \n"
+ "'advection-diffusion', \n"
+ "'subdomains', \n"
+ "'stokes-taylor-hood', \n"
+ "'stokes-mini', \n"
+ "'navier-stokes', \n"
+ "'eigenvalue']\n"
+ "demos = ["
+ "d for d in demos if d[0].stem not in "
+ "excludeList]\n")))
+ (setenv "HOME" (getcwd))
+ (setenv "PYTHONPATH"
+ (string-append
+ (getcwd) "/build/lib.linux-x86_64-"
+ ,(version-major+minor (package-version python)) ":"
+ (getenv "PYTHONPATH")))
+ ;; Restrict OpenBLAS to MPI-only in preference to MPI+OpenMP.
+ (setenv "OPENBLAS_NUM_THREADS" "1")
+ #t))
+ (replace 'check
+ (lambda _
+ (with-directory-excursion "test"
+ ;; Note: The test test_snes_set_from_options() in the file
+ ;; unit/nls/test_PETScSNES_solver.py fails and is ignored.
+ (and (invoke "py.test" "unit" "--ignore"
+ "unit/nls/test_PETScSNES_solver.py")
+ (invoke "mpirun" "-np" "3" "python" "-B" "-m"
+ "pytest" "unit" "--ignore"
+ "unit/nls/test_PETScSNES_solver.py")))
+ (with-directory-excursion "demo"
+ ;; Check demos.
+ (invoke "python" "generate-demo-files.py")
+ (and (invoke "python" "-m" "pytest" "-v" "test.py")
+ (invoke "python" "-m" "pytest" "-v" "test.py"
+ "--mpiexec=mpiexec" "--num-proc=3")))
+ #t))
+ (add-after 'install 'install-demo-files
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((demos (string-append
+ (assoc-ref outputs "out")
+ "/share/python-dolfin/demo")))
+ (mkdir-p demos)
+ (with-directory-excursion "demo"
+ (for-each (lambda (file)
+ (let* ((dir (dirname file))
+ (tgt-dir (string-append demos "/" dir)))
+ (unless (equal? "." dir)
+ (mkdir-p tgt-dir)
+ (install-file file tgt-dir))))
+ (find-files "." ".*\\.(py|gz|xdmf)$"))))
+ #t)))))
+ (home-page "https://fenicsproject.org/")
+ (synopsis "High-level environment for solving differential equations")
+ (description
+ "@code{fenics} is a computing platform for solving general classes of
+problems that involve differential equations. @code{fenics} facilitates
+access to efficient methods for dealing with ordinary differential
+equations (ODEs) and partial differential equations (PDEs). Systems of
+equations such as these are commonly encountered in areas of engineering,
+mathematics and the physical sciences. It is particularly well-suited to
+problems that can be solved using the Finite Element Method (FEM).
+
+@code{fenics} is the top level of the set of packages that are developed
+within the FEniCS project. It provides the python user interface to the
+FEniCS core components and external libraries.")
+ (license license:lgpl3+)))
--
1.8.3.1
next prev parent reply other threads:[~2018-11-12 16:04 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-10-16 9:17 [bug#33059] [PATCH 00/10] Add the FEniCS Project Paul Garlick
2018-10-16 9:31 ` [bug#33059] [PATCH 01/10] gnu: Add python-mpi4py Paul Garlick
2018-10-16 9:31 ` [bug#33059] [PATCH 02/10] gnu: Add python-petsc4py Paul Garlick
2018-10-24 21:45 ` Ludovic Courtès
2018-10-16 9:31 ` [bug#33059] [PATCH 03/10] gnu: Add python-slepc4py Paul Garlick
2018-10-24 21:46 ` Ludovic Courtès
2018-10-16 9:31 ` [bug#33059] [PATCH 04/10] gnu: Add python-fenics-dijitso Paul Garlick
2018-10-16 18:30 ` Efraim Flashner
2018-10-17 9:09 ` Paul Garlick
2018-10-24 21:48 ` Ludovic Courtès
2018-10-16 9:31 ` [bug#33059] [PATCH 05/10] gnu: Add python-fenics-ufl Paul Garlick
2018-10-24 21:52 ` Ludovic Courtès
2018-10-16 9:31 ` [bug#33059] [PATCH 06/10] gnu: Add python-fenics-fiat Paul Garlick
2018-10-24 21:53 ` Ludovic Courtès
2018-10-16 9:31 ` [bug#33059] [PATCH 07/10] gnu: Add python-fenics-ffc Paul Garlick
2018-10-24 21:55 ` Ludovic Courtès
2018-10-16 9:31 ` [bug#33059] [PATCH 08/10] gnu: Add fenics-dolfin Paul Garlick
2018-10-24 22:12 ` Ludovic Courtès
2018-10-16 9:31 ` [bug#33059] [PATCH 09/10] gnu: Add python-fenics-dolfin Paul Garlick
2018-10-24 22:15 ` Ludovic Courtès
2018-10-16 9:31 ` [bug#33059] [PATCH 10/10] gnu: Add fenics Paul Garlick
2018-10-24 22:17 ` Ludovic Courtès
2018-11-12 16:00 ` [bug#33059] [PATCH v2 0/9] Add the FEniCS Project, v2 patches Paul Garlick
2018-11-12 16:00 ` [bug#33059] [PATCH v2 1/9] gnu: Add python-mpi4py Paul Garlick
2018-11-12 16:00 ` [bug#33059] [PATCH v2 2/9] gnu: Add python-petsc4py Paul Garlick
2018-11-12 16:00 ` [bug#33059] [PATCH v2 3/9] gnu: Add python-slepc4py Paul Garlick
2018-11-12 16:00 ` [bug#33059] [PATCH v2 4/9] gnu: Add python-fenics-dijitso Paul Garlick
2018-11-12 16:00 ` [bug#33059] [PATCH v2 5/9] gnu: Add python-fenics-ufl Paul Garlick
2018-11-12 16:00 ` [bug#33059] [PATCH v2 6/9] gnu: Add python-fenics-fiat Paul Garlick
2018-11-14 21:11 ` Ludovic Courtès
2018-11-12 16:00 ` [bug#33059] [PATCH v2 7/9] gnu: Add python-fenics-ffc Paul Garlick
2018-11-12 16:00 ` [bug#33059] [PATCH v2 8/9] gnu: Add fenics-dolfin Paul Garlick
2018-11-12 16:00 ` Paul Garlick [this message]
2018-11-14 20:38 ` bug#33059: [PATCH v2 0/9] Add the FEniCS Project, v2 patches Ludovic Courtès
2018-10-19 16:03 ` [bug#33059] [PATCH 01/10] gnu: Add python-mpi4py Eric Bavier
2018-10-22 8:51 ` Paul Garlick
2018-10-24 21:44 ` Ludovic Courtès
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1542038441-5738-10-git-send-email-pgarlick@tourbillion-technology.com \
--to=pgarlick@tourbillion-technology.com \
--cc=33059@debbugs.gnu.org \
--cc=efraim@flashner.co.il \
--cc=ericbavier@centurylink.net \
--cc=ludo@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.