(define-module (glicid packages maths) #:use-module (guix packages) #:use-module (glicid utils) #:use-module (guix utils) #:use-module (guix gexp) #:use-module ((gnu packages maths) #:prefix gnu:) #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix build-system cmake) #:use-module (gnu packages commencement) #:use-module (gnu packages compression) #:use-module (gnu packages mpi) #:use-module ((guix licenses) #:prefix license:) ) (define-public scalapack-upstream (package (inherit gnu:scalapack) (name "scalapack-upstream") (version "2.1.0-new-upstream") (source (origin (method git-fetch) (uri (git-reference (url "https://oauth2:glpat-RsX2GjsD2WrzXubiJeou@gitlab.univ-nantes.fr/CCIPL/legacy_code_mirror/scalapack.git") (commit "myv2.0.2"))) (file-name "scalapack-univ-myv2") (sha256 (base32 "1ccic46psf2hl9wsyflvkn5rxg8k17q578m9mzimvm9brbggf0na")))) (arguments `(#:configure-flags `("-DBUILD_SHARED_LIBS:BOOL=YES") #:phases (modify-phases %standard-phases (add-before 'check 'mpi-setup ,%openmpi-setup)))))) (define local:scalapack scalapack-upstream) (define-public scalapack-latest (latest-version local:scalapack gnu:scalapack)) (define-public openblas-upstream-0.3.15 (package (inherit gnu:openblas) (name "openblas-upstream") (version "0.3.15") (source (origin (method url-fetch) (uri (string-append "https://github.com/xianyi/OpenBLAS/releases/download/v" version "/OpenBLAS-" version ".tar.gz")) (sha256 (base32 "1gjbkrsh6n28hdp2ciyjigc8vg764d2r0jbzl63v753mjzn9va9h")))))) (define-public hdf5-glicid (package (inherit gnu:hdf5-parallel-openmpi) (name "hdf5-glicid") (inputs (modify-inputs (package-inputs gnu:hdf5-parallel-openmpi) (prepend gfortran-toolchain))))) (define local:openblas openblas-upstream-0.3.15) (define-public scalapack-latest (latest-version local:openblas gnu:openblas)) (define-public libsolv-upstream (package (name "libsolv") (version "0.7.23") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/openSUSE/libsolv.git") (commit version))) (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 "12z63kcna9swh3vzxk3sac0l4by5z8q22wip9cyq5b7wp9m3hn4b")))) (build-system cmake-build-system) (inputs (list zlib)) (home-page "https://github.com/openSUSE/libsolv") (synopsis "libsolv, a free package dependency solver using a satisfiability algorithm.") (description "libsolv, a free package dependency solver using a satisfiability algorithm.") (license license:bsd-3)) ) (define-public glicid-dealii (package (inherit gnu:dealii) (version "9.6.0") (name "glicid-dealii") (arguments (list #:build-type "Release" #:tests? #f #:configure-flags #~(let ((doc (string-append #$output:doc "/share/doc/" #$name "-" #$version))) (list "-DDEAL_II_COMPONENT_DOCUMENTATION=OFF" (string-append "-DCMAKE_CXX_FLAGS='-march=znver3'") (string-append "-DDEAL_II_DOCREADME_RELDIR=" doc) (string-append "-DDEAL_II_DOCHTML_RELDIR=" doc "/html") "-DDEAL_II_COMPILE_EXAMPLES=OFF" (string-append "-DDEAL_II_EXAMPLES_RELDIR=" doc "/examples"))) #:phases #~(modify-phases %standard-phases (add-after 'set-paths 'unset-cpath (lambda _ (unsetenv "CPATH"))) (add-after 'install 'remove-build-logs (lambda _ (let ((doc (string-append #$output:doc "/share/doc/" #$name "-" #$version))) (for-each delete-file (map (lambda (f) (string-append doc "/" f)) '("detailed.log" "summary.log"))))))))) )) (define trilinos-for-dealii-openmpi (@@ (gnu packages maths) trilinos-for-dealii-openmpi)) (define-public glicid-dealii-openmpi (package (inherit glicid-dealii) (name "glicid-dealii-openmpi") (inputs (modify-inputs (package-inputs glicid-dealii) (delete "arpack") (prepend gnu:arpack-ng-openmpi gnu:metis gnu:scalapack))) (propagated-inputs (modify-inputs (package-propagated-inputs glicid-dealii) (delete "hdf5" "kokkos" "sundials") (prepend gnu:hdf5-parallel-openmpi openmpi gnu:p4est-openmpi gnu:petsc-openmpi gnu:slepc-openmpi gnu:sundials-openmpi trilinos-for-dealii-openmpi))) (arguments (substitute-keyword-arguments (package-arguments glicid-dealii) ((#:configure-flags flags) #~(cons "-DDEAL_II_WITH_MPI=ON" #$flags)) ((#:phases phases #~%standard-phases) #~(modify-phases #$phases (delete 'unset-cpath))))) (synopsis "Finite element library (with MPI support)")))