From: ericbavier@openmailbox.org
To: guix-devel@gnu.org
Cc: Eric Bavier <bavier@member.fsf.org>
Subject: [PATCH 13/14] gnu: Add SLEPc.
Date: Sat, 27 Jun 2015 22:45:50 -0500 [thread overview]
Message-ID: <1435463151-32099-14-git-send-email-ericbavier@openmailbox.org> (raw)
In-Reply-To: <1435463151-32099-1-git-send-email-ericbavier@openmailbox.org>
From: Eric Bavier <bavier@member.fsf.org>
* gnu/packages/maths.scm (slepc, slepc-complex, slepc-openmpi)
(slepc-complex-openmpi): New variables.
---
gnu/packages/maths.scm | 98 ++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 98 insertions(+)
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 343b56c..ff3a048 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -632,6 +632,104 @@ scientific applications modeled by partial differential equations.")
,@(delete "--with-mpi=0" ,cf)))))
(synopsis "Library to solve PDEs (with complex scalars and MPI support)")))
+(define-public slepc
+ (package
+ (name "slepc")
+ (version "3.6.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "http://slepc.upv.es/download/download.php?"
+ "filename=slepc-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1ij8w864spzk4cq2mmkssqyj0mbckkkvxm0wpw9gywy2jgbj07jr"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("python" ,python-2)))
+ (inputs
+ `(("arpack" ,arpack-ng)
+ ("gfortran" ,gfortran)))
+ (propagated-inputs
+ `(("petsc" ,petsc)))
+ (arguments
+ `(#:parallel-build? #f ;build is parallel by default
+ #:configure-flags
+ `(,(string-append "--with-arpack-dir="
+ (assoc-ref %build-inputs "arpack")))
+ #:phases
+ (modify-phases %standard-phases
+ (replace
+ 'configure
+ ;; configure is a python script, so we can't run it with bash.
+ (lambda* (#:key inputs outputs (configure-flags '())
+ #:allow-other-keys)
+ (let* ((prefix (assoc-ref outputs "out"))
+ (flags `(,(string-append "--prefix=" prefix)
+ ,@configure-flags)))
+ (format #t "build directory: ~s~%" (getcwd))
+ (format #t "configure flags: ~s~%" flags)
+ (setenv "SLEPC_DIR" (getcwd))
+ (setenv "PETSC_DIR" (assoc-ref %build-inputs "petsc"))
+ (zero? (apply system* "./configure" flags)))))
+ (add-after
+ 'install 'delete-doc
+ ;; SLEPc installs polluting HTML documentation alongside headers in
+ ;; $out/include. Delete these, as users can browse them online.
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out")))
+ (for-each delete-file (find-files out "\\.html$")))))
+ (add-after
+ 'install 'clean-install
+ ;; Clean up unnecessary build logs from installation.
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (for-each (lambda (file)
+ (let ((f (string-append out "/lib/slepc/conf/" file)))
+ (when (file-exists? f)
+ (delete-file f))))
+ '("configure.log" "make.log" "gmake.log"
+ "test.log" "error.log" "RDict.db"
+ "uninstall.py"))))))))
+ (home-page "http://slepc.upv.es")
+ (synopsis "Scalable library for eigenproblems")
+ (description "SLEPc is a software library for the solution of large sparse
+eigenproblems on parallel computers. It can be used for the solution of
+linear eigenvalue problems formulated in either standard or generalized form,
+as well as other related problems such as the singular value decomposition.
+The emphasis of the software is on methods and techniques appropriate for
+problems in which the associated matrices are sparse, for example, those
+arising after the discretization of partial differential equations.")
+ (license license:lgpl3)))
+
+(define-public slepc-complex
+ (package (inherit slepc)
+ (name "slepc-complex")
+ (propagated-inputs
+ `(("petsc" ,petsc-complex)
+ ,@(alist-delete "petsc" (package-propagated-inputs slepc))))
+ (synopsis "Scalable library for eigenproblems (with complex scalars)")))
+
+(define-public slepc-openmpi
+ (package (inherit slepc)
+ (name "slepc-openmpi")
+ (inputs
+ `(("mpi" ,openmpi)
+ ("arpack" ,arpack-ng-openmpi)
+ ,@(alist-delete "arpack" (package-inputs slepc))))
+ (propagated-inputs
+ `(("petsc" ,petsc-openmpi)
+ ,@(alist-delete "petsc" (package-propagated-inputs slepc))))
+ (synopsis "Scalable library for eigenproblems (with MPI support)")))
+
+(define-public slepc-complex-openmpi
+ (package (inherit slepc-openmpi)
+ (name "slepc-complex-openmpi")
+ (propagated-inputs
+ `(("petsc" ,petsc-complex-openmpi)
+ ,@(alist-delete "petsc" (package-propagated-inputs slepc-openmpi))))
+ (synopsis "Scalable library for eigenproblems (with complex scalars and MPI support)")))
+
(define-public mumps
(package
(name "mumps")
--
2.2.1
next prev parent reply other threads:[~2015-06-28 3:45 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-28 3:45 [PATCH 00/14] Add deal.II and some dependencies ericbavier
2015-06-28 3:45 ` [PATCH 01/14] gnu: hwloc: Upgrade to 1.10.1 ericbavier
2015-06-28 9:08 ` Ludovic Courtès
2015-06-28 3:45 ` [PATCH 02/14] gnu: hwloc: Move numactl to inputs ericbavier
2015-06-28 9:09 ` Ludovic Courtès
2015-06-28 3:45 ` [PATCH 03/14] gnu: openmpi: Upgrade to 1.8.5 ericbavier
2015-06-28 9:10 ` Ludovic Courtès
2015-06-28 3:45 ` [PATCH 04/14] gnu: Update scotch to 6.0.4 ericbavier
2015-06-28 9:12 ` Ludovic Courtès
2015-06-28 3:45 ` [PATCH 05/14] gnu: scotch, pt-scotch: Use modify-phases ericbavier
2015-06-28 9:15 ` Ludovic Courtès
2015-06-28 3:45 ` [PATCH 06/14] gnu: scotch, pt-scotch: Build esmumps libraries ericbavier
2015-06-28 9:14 ` Ludovic Courtès
2015-06-28 3:45 ` [PATCH 07/14] gnu: Add ScaLAPACK ericbavier
2015-06-28 9:12 ` Ludovic Courtès
2015-06-28 3:45 ` [PATCH 08/14] gnu: Add p4est ericbavier
2015-06-28 20:03 ` Ludovic Courtès
2015-06-28 3:45 ` [PATCH 09/14] gnu: Add METIS ericbavier
2015-06-28 20:03 ` Ludovic Courtès
2015-06-28 3:45 ` [PATCH 10/14] gnu: Add MUMPS ericbavier
2015-06-28 20:12 ` Ludovic Courtès
2015-06-28 15:59 ` Eric Bavier
2015-06-28 3:45 ` [PATCH 11/14] gnu: petsc: Upgrade to 3.6.0 ericbavier
2015-06-28 20:13 ` Ludovic Courtès
2015-06-28 3:45 ` [PATCH 12/14] gnu: Add arpack-ng-openmpi ericbavier
2015-06-28 20:13 ` Ludovic Courtès
2015-06-28 3:45 ` ericbavier [this message]
2015-06-28 20:18 ` [PATCH 13/14] gnu: Add SLEPc Ludovic Courtès
2015-06-28 3:45 ` [PATCH 14/14] gnu: Add deal.II ericbavier
2015-06-28 20:22 ` Ludovic Courtès
2015-06-28 16:05 ` Eric Bavier
2015-06-28 21:09 ` Andreas Enge
2015-06-29 8:39 ` Ludovic Courtès
2015-06-30 19:55 ` Eric Bavier
2015-07-04 7:40 ` Mark H Weaver
2015-07-05 10:20 ` 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=1435463151-32099-14-git-send-email-ericbavier@openmailbox.org \
--to=ericbavier@openmailbox.org \
--cc=bavier@member.fsf.org \
--cc=guix-devel@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.