Reproducible software package and source for publishable paper for introducing the elaphrocentre into extragalactic physics
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

122 lines
4.5 KiB

TODO tasks. Please put higher priority items higher up, within a
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
- 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
- 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
* 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 appears to have a missing 'main'
part; the main python_tools/*.py scripts appear to be missing these
too. See
- The sharable library 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):"