Skip to main content
  • Home
  • Development
  • Documentation
  • Donate
  • Operational login
  • Browse the archive

swh logo
SoftwareHeritage
Software
Heritage
Archive
Features
  • Search

  • Downloads

  • Save code now

  • Add forge now

  • Help

  • c4770e8
  • /
  • TODO
Raw File Download

To reference or cite the objects present in the Software Heritage archive, permalinks based on SoftWare Hash IDentifiers (SWHIDs) must be used.
Select below a type of object currently browsed in order to display its associated SWHID and permalink.

  • content
  • directory
content badge Iframe embedding
swh:1:cnt:d163f89c4a40a91d491eba5d4780838403267844
directory badge Iframe embedding
swh:1:dir:c4770e81288f340083dd8aa9fe017103c4eaf476

This interface enables to generate software citations, provided that the root directory of browsed objects contains a citation.cff or codemeta.json file.
Select below a type of object currently browsed in order to generate citations for them.

  • content
  • directory
Generate software citation in BibTex format (requires biblatex-software package)
Generating citation ...
Generate software citation in BibTex format (requires biblatex-software package)
Generating citation ...
TODO
TODO tasks. Please put higher priority items higher up, within a
section.

Scientific accuracy
===================

* general
   - Do T^3 r_+ distances throughout, to avoid wasting
      computational area at the faces of the fundamental domain: are there
      any missing?

* init-conditions

   - The mass for a single dark matter particle in a run using Ncroot=128,
      Lbox=80, OmegaM=0.3, OmegaL=0.7 and Hubble0=70 is about 2e10
      M_\odot. Together with the setting of rockstar_min_halo_particles=5,
      this gives a halo mass detection threshold of 1e11 M_\odot. It would
      be reasonable to improve this in the future to get towards the dwarf
      regime. Simulations with higher particle resolution should show the
      effects for lower mass host haloes.


* run-simulation

* detect-haloes

* create-mergertree

* create-galaxies


Contribute back to the community
================================

* Consider uploading some of the hacks as git branches + pull requests
      to the upstream packages, and/or to individual repositories
      (io_gadget/merge_gadget.c, io_gadget/read_gadget.[ch]).

* detect-haloes
   - Email reminder to Peter Behroozi + Manodeep to suggest that they
   handle the rockstar and consistent-trees Issues from 2019 and early
      2020.

   - Report gcc-10.1.0 -fno-common default upstream to rockstar, with -fcommon
      as temporary hack (as of 2020-08-08, this is still waiting to be
      confirmed if this is the way to fix this bug/feature of gcc-10.1.0).

   - Propose our patch 20200918_rockstar_pid_file.patch for writing out
      pid's to a file, for ease of killing of orphan processes, upstream
      to rockstar.

   - Discuss (same or separate issue) the risks of having
      orphan rockstar main processes running in parallel with a
      minimal working example as evidence that independent sessions in
      independent directories, by the same user on the same machine,
      could have the second server (the one started with -c auto-rockstar.cfg)
      communicate with the wrong first server (the one started
      with -c server.cfg).

* create-galaxies

* paper.mk
   - Contribute the rule 'clean-paper' upstream to Maneage. This avoids
      having to redo the full calculations when you only want to regenerate
      LaTeX macros from calculation/analysis/plotting output files.


Software maintainability/security/convenience
=============================================

* General

** There are many np.where calls in the python scripts that are not
   protected right and may fail in some cases; the general form
   (np.array(np.where(<some logical test>)))[0] should work in all cases
   where we want a 1D numpy array. Any fixes for this should be properly
   tested, of course.

** Most of the more modular python scripts have unit tests; these should be
   run automatically and checked.

** Most of the long make rules can be made much easier to read and debug
   thanks to .ONESHELL: and .SHELLFLAGS = -ec; see
   https://codeberg.org/boud/elaphrocentre/issues/2

* init-conditions
   - If/when Simon Prunet updates mpgrafic to fftw3, then update the
   version used here.

* run-simulation
   - Update to a more modern version of RAMSES. Unless
   ramses-scalav/inhomog are going to used sooner or later, these can be
   decoupled from RAMSES itself, reducing the number of dependencies.

* create-mergertree

* detect-voids
   - Update to Revolver commit cbaf2d5 from 2019-08-16 for python3.

   - The Revolver main script revolver.py appears to have a missing 'main'
   part; the main python_tools/*.py scripts appear to be missing these
   too. See
   e.g. https://stackoverflow.com/questions/4041238/why-use-def-main

   - The sharable library io_gadget.so should not have to be copied into
   the working directory.

* analyse-plot
   - The % notation for writing to a string is no longer recommended in
   python - this should be updated in reproduce/analysis/python/*.py .

   - Does recompiling revolver force healpy and healpix to be recompiled?
   If yes, then this should be unnecessary - remove this wrong dependence.

   - Some multiprocess parallelisation of the python analysis/plotting
   routines would make sense - it's ironic to run an N-body simulation on M
   threads reasonably fast and then do the final analysis very slowly on
   just one.

   - Do more checks for the validity of input files, since old undeleted
   files can give infinite loops in the section
   "for sage_infall_file in glob.iglob(sage_outs + '**/infall*.list', recursive=True):"

back to top

Software Heritage — Copyright (C) 2015–2025, The Software Heritage developers. License: GNU AGPLv3+.
The source code of Software Heritage itself is available on our development forge.
The source code files archived by Software Heritage are available under their own copyright and licenses.
Terms of use: Archive access, API— Content policy— Contact— JavaScript license information— Web API