summary refs log tree commit diff
path: root/gnu/packages
diff options
context:
space:
mode:
authorTheodoros Foradis <theodoros@foradis.org>2017-09-09 20:57:49 +0300
committerLudovic Courtès <ludo@gnu.org>2017-10-11 11:12:33 +0200
commit91cabd3e58db8ff53f8f566f3c4cd614ea691223 (patch)
tree18abebf19c60680631870d4e28d580d60310abda /gnu/packages
parent1da02b6a49dde86c8a4029a19ab26b8a5a66d743 (diff)
downloadguix-91cabd3e58db8ff53f8f566f3c4cd614ea691223.tar.gz
gnu: Add xyce-parallel.
* gnu/packages/engineering.scm (trilinos-parallel-xyce)
(xyce-parallel): New variables.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/engineering.scm38
1 files changed, 38 insertions, 0 deletions
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index feff757c61..110c63f052 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -30,6 +30,7 @@
   #:use-module (guix monads)
   #:use-module (guix store)
   #:use-module (guix utils)
+  #:use-module ((srfi srfi-1) #:hide (zip))
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
@@ -1377,3 +1378,40 @@ unique design feature of Trilinos is its focus on packages.")
 capable of solving extremely large circuit problems by supporting large-scale
 parallel computing platforms.  It also supports serial execution.")
     (license license:gpl3+)))
+
+(define trilinos-parallel-xyce
+  (package (inherit trilinos-serial-xyce)
+    (name "trilinos-parallel-xyce")
+    (arguments
+     `(,@(substitute-keyword-arguments (package-arguments trilinos-serial-xyce)
+           ((#:configure-flags flags)
+            `(append (list "-DTrilinos_ENABLE_ShyLU=ON"
+                           "-DTrilinos_ENABLE_Zoltan=ON"
+                           "-DTPL_ENABLE_MPI=ON")
+                     ,flags)))))
+    (inputs
+     `(("mpi" ,openmpi)
+       ,@(package-inputs trilinos-serial-xyce)))))
+
+(define-public xyce-parallel
+  (package (inherit xyce-serial)
+    (name "xyce-parallel")
+    (arguments
+     `(,@(substitute-keyword-arguments (package-arguments xyce-serial)
+           ((#:configure-flags flags)
+            `(list "CXXFLAGS=-O3 -std=c++11"
+                   "CXX=mpiCC"
+                   "CC=mpicc"
+                   "F77=mpif77"
+                   "--enable-mpi"
+                   "--enable-isorropia=no"
+                   "--enable-zoltan=no"
+                   (string-append
+                    "ARCHDIR="
+                    (assoc-ref %build-inputs "trilinos")))))))
+    (propagated-inputs
+     `(("mpi" ,openmpi)))
+    (inputs
+     `(("trilinos" ,trilinos-parallel-xyce)
+       ,@(alist-delete "trilinos"
+                       (package-inputs xyce-serial))))))