From d8c7eeb996c433b1744a1404e1fc1e5f987589a1 Mon Sep 17 00:00:00 2001
From: Eric Bavier <bavier@member.fsf.org>
Date: Thu, 8 May 2014 12:33:47 -0500
Subject: [PATCH] gnu: Add petsc-openmpi.

* gnu/packages/maths.scm (petsc-openmpi): New variable.
  (petsc-complex-openmpi): New variable.
---
 gnu/packages/maths.scm | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index b83788a67c8..4e8c67746da 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -45,6 +45,7 @@ (define-module (gnu packages maths)
   #:use-module (gnu packages less)
   #:use-module (gnu packages xorg)
   #:use-module (gnu packages gl)
+  #:use-module (gnu packages mpi)
   #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages pcre)
   #:use-module (gnu packages perl)
@@ -473,6 +474,40 @@ (define-public petsc-complex
      (string-append (package-description petsc)
                     "  Complex scalar type version."))))
 
+(define-public petsc-openmpi
+  (package (inherit petsc)
+    (name "petsc-openmpi")
+    (inputs
+     `(("openmpi" ,openmpi)
+       ,@(package-inputs petsc)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments petsc)
+       ((#:configure-flags cf)
+        ``("--with-mpiexec=mpirun"
+           ,(string-append "--with-mpi-dir="
+                           (assoc-ref %build-inputs "openmpi"))
+           ,@(delete "--with-mpi=0" ,cf)))))
+    (description
+     (string-append (package-description petsc)
+                    "  With OpenMPI parallelism support."))))
+
+(define-public petsc-complex-openmpi
+  (package (inherit petsc-complex)
+    (name "petsc-complex-openmpi")
+    (inputs
+     `(("openmpi" ,openmpi)
+       ,@(package-inputs petsc-complex)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments petsc-complex)
+       ((#:configure-flags cf)
+        ``("--with-mpiexec=mpirun"
+           ,(string-append "--with-mpi-dir="
+                           (assoc-ref %build-inputs "openmpi"))
+           ,@(delete "--with-mpi=0" ,cf)))))
+    (description
+     (string-append (package-description petsc-complex)
+                    "  With OpenMPI parallelism support."))))
+
 (define-public superlu
   (package
     (name "superlu")
-- 
GitLab