~ruther/guix-local

1564aa35879ec98c03866ae5738f25bb59e0268f — Sharlatan Hellseher 6 months ago 9a336d1
gnu: Add genetic.

* gnu/packages/astronomy.scm (genetic): New variable.

Change-Id: I2b4bcb69c970c8869acd300056326b665e00c1f3
1 files changed, 80 insertions(+), 0 deletions(-)

M gnu/packages/astronomy.scm
M gnu/packages/astronomy.scm => gnu/packages/astronomy.scm +80 -0
@@ 972,6 972,86 @@ document}.")
    (license (license:non-copyleft "file://License.txt"
                                   "See License.txt in the distribution."))))

(define-public genetic
  (package
    (name "genetic")
    (version "1.5.0")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
              (url "https://github.com/pynbody/genetic")
              (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "0pwvr8bvnbp6d16f51hy981pdlrqz9yf9fh2wvxl958ikyjmaaiy"))))
    (build-system cmake-build-system)
    (arguments
     (list
      #:phases
      #~(modify-phases %standard-phases
          (add-after 'unpack 'link-highfive
            (lambda _
              (rmdir "genetIC/HighFive")
              (symlink #+(package-source (this-package-native-input "highfive"))
                       (string-append (getcwd) "/HighFive"))))
          (add-before 'check 'delete-problematic-tests
            (lambda _
              (with-directory-excursion "../source/genetIC/tests"
                (for-each delete-file-recursively
                          ;; XXX: Some NumPy related tests failed with "Arrays
                          ;; are not almost equal to <...> decimals", it
                          ;; might need attention.
                          (list "test_06c_stray_subsampling"
                                "test_09a_border_safety"
                                "test_10a_gadget"
                                "test_10b_gadget_zoom_varimass"
                                "test_10c_gadget_zoom_ptype"
                                "test_10d_gadget_flagged_particles"
                                "test_10e_gadget_zoom_ptype_resample"
                                "test_10g_gadget_multifile_baryons"
                                "test_10h_gadget_zoom_ptype_gas"
                                "test_10i_gadget_zoom_ptype_autopad"
                                "test_14_velocity_modif"
                                "test_17_reversal"
                                "test_19_rounding_errors"
                                "test_22_angular_momentum_modif"
                                "test_26_gadgethdf"
                                "test_26a_gadgethdf_multifile_baryons"
                                ;; Error "File zoomtest.txt not found" on line
                                ;; 27 ("idfile zoomtest.txt")
                                "test_10f_gadget_multifile")))))
          (replace 'check
            (lambda* (#:key tests? #:allow-other-keys)
              (when tests?
                (with-directory-excursion "../source/genetIC/tests"
                  ;; Matplotlib needs to write access.
                  (setenv "HOME" "/tmp")
                  (invoke "./run_tests.sh"))))))))
    (native-inputs
     (list boost
           git-minimal/pinned
           highfive
           pkg-config
           python-pynbody
           python-wrapper))
    (inputs
     (list fftw
           fftwf
           gsl
           hdf5))
    (home-page "https://github.com/pynbody/genetic")
    (synopsis "Genetically-modified initial conditions generator")
    (description
     "GenetIC is a code to generate initial conditions for cosmological
simulations, especially for zoom simulations of galaxies.  It provides support
for \"genetic modifications\" as described by e.g.
@url{https://arxiv.org/abs/1504.07250, Roth et al 2015},
@url{https://arxiv.org/abs/1706.04615, Rey & Pontzen 2018}.  It also supports
'splicing' as described by @url{https://arxiv.org/abs/2107.03407, Cadiou et al
2021}.")
    (license license:gpl3+)))

(define-public ginga
  (package
    (name "ginga")