all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
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

  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.