gnu: Add HYPRE.
* gnu/packages/maths.scm (hypre, hypre-openmpi): New variables. * gnu/packages/patches/hypre-doc-tables.patch, gnu/packages/patches/hypre-ldflags.patch: New files. * gnu-system.am (dist_patch_DATA): Add them.
This commit is contained in:
parent
b4e655e5f1
commit
528bb46436
|
@ -535,6 +535,8 @@ dist_patch_DATA = \
|
||||||
gnu/packages/patches/hop-linker-flags.patch \
|
gnu/packages/patches/hop-linker-flags.patch \
|
||||||
gnu/packages/patches/hydra-automake-1.15.patch \
|
gnu/packages/patches/hydra-automake-1.15.patch \
|
||||||
gnu/packages/patches/hydra-disable-darcs-test.patch \
|
gnu/packages/patches/hydra-disable-darcs-test.patch \
|
||||||
|
gnu/packages/patches/hypre-doc-tables.patch \
|
||||||
|
gnu/packages/patches/hypre-ldflags.patch \
|
||||||
gnu/packages/patches/icecat-avoid-bundled-includes.patch \
|
gnu/packages/patches/icecat-avoid-bundled-includes.patch \
|
||||||
gnu/packages/patches/icecat-re-enable-DHE-cipher-suites.patch \
|
gnu/packages/patches/icecat-re-enable-DHE-cipher-suites.patch \
|
||||||
gnu/packages/patches/icecat-update-bundled-graphite2.patch \
|
gnu/packages/patches/icecat-update-bundled-graphite2.patch \
|
||||||
|
|
|
@ -46,6 +46,7 @@
|
||||||
#:use-module (gnu packages cmake)
|
#:use-module (gnu packages cmake)
|
||||||
#:use-module (gnu packages compression)
|
#:use-module (gnu packages compression)
|
||||||
#:use-module (gnu packages curl)
|
#:use-module (gnu packages curl)
|
||||||
|
#:use-module (gnu packages documentation)
|
||||||
#:use-module (gnu packages elf)
|
#:use-module (gnu packages elf)
|
||||||
#:use-module (gnu packages flex)
|
#:use-module (gnu packages flex)
|
||||||
#:use-module (gnu packages fltk)
|
#:use-module (gnu packages fltk)
|
||||||
|
@ -65,6 +66,7 @@
|
||||||
#:use-module (gnu packages m4)
|
#:use-module (gnu packages m4)
|
||||||
#:use-module (gnu packages mpi)
|
#:use-module (gnu packages mpi)
|
||||||
#:use-module (gnu packages multiprecision)
|
#:use-module (gnu packages multiprecision)
|
||||||
|
#:use-module (gnu packages netpbm)
|
||||||
#:use-module (gnu packages pcre)
|
#:use-module (gnu packages pcre)
|
||||||
#:use-module (gnu packages popt)
|
#:use-module (gnu packages popt)
|
||||||
#:use-module (gnu packages perl)
|
#:use-module (gnu packages perl)
|
||||||
|
@ -2158,3 +2160,116 @@ are built. It can generate many different fractal types such as the Mandelbrot
|
||||||
set.")
|
set.")
|
||||||
(home-page "http://www.gnu.org/software/xaos/")
|
(home-page "http://www.gnu.org/software/xaos/")
|
||||||
(license license:gpl2+)))
|
(license license:gpl2+)))
|
||||||
|
|
||||||
|
(define-public hypre
|
||||||
|
(package
|
||||||
|
(name "hypre")
|
||||||
|
(version "2.11.0")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "https://github.com/LLNL/hypre/archive/"
|
||||||
|
"v" version ".tar.gz"))
|
||||||
|
(file-name (string-append name "-" version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0q69ia0jivzcr8p049dn3mg8yjpn6nwq4sw9iqac8vr63vi54l6m"))
|
||||||
|
(modules '((guix build utils)))
|
||||||
|
(snippet
|
||||||
|
'(begin
|
||||||
|
;; Remove use of __DATE__ and __TIME__ for reproducibility;
|
||||||
|
;; substitute the tarball creation time.
|
||||||
|
(substitute* "src/utilities/HYPRE_utilities.h"
|
||||||
|
(("Date Compiled: .*$")
|
||||||
|
"Date Compiled: Mar 28 2016 20:19:59 +0000\"\n"))
|
||||||
|
#t))))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(outputs '("out" ;6.1 MiB of headers and libraries
|
||||||
|
"doc")) ;4.8 MiB of documentation
|
||||||
|
(native-inputs
|
||||||
|
`(("doc++" ,doc++)
|
||||||
|
("netpbm" ,netpbm)
|
||||||
|
("texlive" ,texlive) ;full package required for fonts
|
||||||
|
("ghostscript" ,ghostscript)))
|
||||||
|
(inputs
|
||||||
|
`(("blas" ,openblas)
|
||||||
|
("lapack" ,lapack)))
|
||||||
|
(arguments
|
||||||
|
`(#:modules ((srfi srfi-1)
|
||||||
|
,@%gnu-build-system-modules)
|
||||||
|
#:configure-flags '("--enable-shared"
|
||||||
|
"--disable-fortran"
|
||||||
|
"--without-MPI"
|
||||||
|
"--with-openmp"
|
||||||
|
"--with-fei"
|
||||||
|
"--with-lapack"
|
||||||
|
"--with-blas")
|
||||||
|
#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(add-before 'configure 'chdir-src
|
||||||
|
(lambda _ (chdir "src")))
|
||||||
|
(replace 'configure
|
||||||
|
(lambda* (#:key build target configure-flags
|
||||||
|
#:allow-other-keys #:rest args)
|
||||||
|
(let* ((configure (assoc-ref %standard-phases 'configure)))
|
||||||
|
(apply configure
|
||||||
|
(append args
|
||||||
|
(list #:configure-flags
|
||||||
|
(cons (string-append
|
||||||
|
"--host=" (or target build))
|
||||||
|
configure-flags)))))))
|
||||||
|
(add-after 'build 'build-docs
|
||||||
|
(lambda _
|
||||||
|
(zero? (system* "make" "-Cdocs" "pdf" "html"))))
|
||||||
|
(replace 'check
|
||||||
|
(lambda _
|
||||||
|
(setenv "LD_LIBRARY_PATH" (string-append (getcwd) "/hypre/lib"))
|
||||||
|
(setenv "PATH" (string-append "." ":" (getenv "PATH")))
|
||||||
|
(and (system* "make" "check" "CHECKRUN=")
|
||||||
|
(fold (lambda (filename result)
|
||||||
|
(and result
|
||||||
|
(let ((size (stat:size (stat filename))))
|
||||||
|
(when (not (zero? size))
|
||||||
|
(format #t "~a size ~d; error indication~%"
|
||||||
|
filename size))
|
||||||
|
(zero? size))))
|
||||||
|
#t
|
||||||
|
(find-files "test" ".*\\.err$")))))
|
||||||
|
(add-after 'install 'install-docs
|
||||||
|
(lambda* (#:key outputs #:allow-other-keys)
|
||||||
|
;; Custom install because docs/Makefile doesn't honor ${docdir}.
|
||||||
|
(let* ((doc (assoc-ref outputs "doc"))
|
||||||
|
(docdir (string-append doc "/share/doc/hypre-" ,version)))
|
||||||
|
(mkdir-p docdir)
|
||||||
|
(with-directory-excursion "docs"
|
||||||
|
(for-each (lambda (base)
|
||||||
|
(install-file (string-append base ".pdf") docdir)
|
||||||
|
(copy-recursively base docdir)) ;html docs
|
||||||
|
'("HYPRE_usr_manual"
|
||||||
|
"HYPRE_ref_manual")))
|
||||||
|
#t))))))
|
||||||
|
(home-page "http://www.llnl.gov/casc/hypre/")
|
||||||
|
(synopsis "Library of solvers and preconditioners for linear equations")
|
||||||
|
(description
|
||||||
|
"HYPRE is a software library of high performance preconditioners and
|
||||||
|
solvers for the solution of large, sparse linear systems of equations. It
|
||||||
|
features multigrid solvers for both structured and unstructured grid
|
||||||
|
problems.")
|
||||||
|
(license license:lgpl2.1)))
|
||||||
|
|
||||||
|
(define-public hypre-openmpi
|
||||||
|
(package (inherit hypre)
|
||||||
|
(name "hypre-openmpi")
|
||||||
|
(inputs
|
||||||
|
`(("mpi" ,openmpi)
|
||||||
|
,@(package-inputs hypre)))
|
||||||
|
(arguments
|
||||||
|
(substitute-keyword-arguments (package-arguments hypre)
|
||||||
|
((#:configure-flags flags)
|
||||||
|
``("--with-MPI"
|
||||||
|
,@(delete "--without-MPI" ,flags)))))
|
||||||
|
(synopsis "Parallel solvers and preconditioners for linear equations")
|
||||||
|
(description
|
||||||
|
"HYPRE is a software library of high performance preconditioners and
|
||||||
|
solvers for the solution of large, sparse linear systems of equations on
|
||||||
|
parallel computers. It features parallel multigrid solvers for both
|
||||||
|
structured and unstructured grid problems.")))
|
||||||
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
Fixes doc++'s treatment of tabular within a parameter block.
|
||||||
|
|
||||||
|
From commit 883925f8a at http://github.com/LLNL/hypre
|
||||||
|
|
||||||
|
--- hypre-2.10.1/src/parcsr_ls/HYPRE_parcsr_ls.h 2015-12-04 22:12:19.000000000 -0600
|
||||||
|
+++ hypre-2.10.1/src/parcsr_ls/HYPRE_parcsr_ls.h 2016-03-16 09:02:58.547501336 -0500
|
||||||
|
@@ -1154,8 +1154,6 @@
|
||||||
|
* Set the symmetry parameter for the
|
||||||
|
* ParaSails preconditioner.
|
||||||
|
*
|
||||||
|
- * @param solver [IN] Preconditioner object for which to set symmetry parameter.
|
||||||
|
- * @param sym [IN] Value of the symmetry parameter:
|
||||||
|
* \begin{tabular}{|c|l|} \hline
|
||||||
|
* value & meaning \\ \hline
|
||||||
|
* 0 & nonsymmetric and/or indefinite problem, and nonsymmetric preconditioner\\
|
||||||
|
@@ -1163,6 +1161,9 @@
|
||||||
|
* 2 & nonsymmetric, definite problem, and SPD (factored) preconditioner \\
|
||||||
|
* \hline
|
||||||
|
* \end{tabular}
|
||||||
|
+ *
|
||||||
|
+ * @param solver [IN] Preconditioner object for which to set symmetry parameter.
|
||||||
|
+ * @param sym [IN] Value of the symmetry parameter:
|
||||||
|
**/
|
||||||
|
HYPRE_Int HYPRE_ParaSailsSetSym(HYPRE_Solver solver,
|
||||||
|
HYPRE_Int sym);
|
|
@ -0,0 +1,9 @@
|
||||||
|
--- hypre-2.10.1/src/lib/Makefile.orig 2016-03-11 16:04:03.740259228 -0600
|
||||||
|
+++ hypre-2.10.1/src/lib/Makefile 2016-03-11 16:04:57.296260190 -0600
|
||||||
|
@@ -107,5 +107,5 @@
|
||||||
|
|
||||||
|
libHYPRE.so: ${FILES_HYPRE}
|
||||||
|
@echo "Building $@ ... "
|
||||||
|
- ${BUILD_CC_SHARED} -o ${SONAME} ${FILES_HYPRE} ${SOLIBS} ${SHARED_SET_SONAME}${SONAME} ${SHARED_OPTIONS}
|
||||||
|
+ ${BUILD_CC_SHARED} ${LDFLAGS} -o ${SONAME} ${FILES_HYPRE} ${SOLIBS} ${SHARED_SET_SONAME}${SONAME} ${SHARED_OPTIONS}
|
||||||
|
ln -s ${SONAME} $@
|
Loading…
Reference in New Issue