SWIFTsim merge requestshttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests2020-02-05T17:14:28Zhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/1007Restarts at runtime update2020-02-05T17:14:28ZPeter W. DraperRestarts at runtime updateUse a single runtime across all ranks to avoid exact timing issues.
Put into collectgroup to avoid an extra synchronization point.Use a single runtime across all ranks to avoid exact timing issues.
Put into collectgroup to avoid an extra synchronization point.ParisJohn HellyJohn Hellyhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/984Particle splitting "a la EAGLE"2019-12-20T16:56:14ZMatthieu SchallerParticle splitting "a la EAGLE"This implements a new small physics module: overly-massive particle splitting.
At a rebuild time that does not coincide with a repartition (to avoid creating unnecessary trouble),
we loop over all the gas particles and identify which on...This implements a new small physics module: overly-massive particle splitting.
At a rebuild time that does not coincide with a repartition (to avoid creating unnecessary trouble),
we loop over all the gas particles and identify which ones are above a given mass threshold. These
are then split into two equivalent pieces and slightly offset from each other.
We create a companion `gpart` as well and relink the particle.
All this is done on a node-by-node basis and just before rebuild such that the reorganisation and possible exchange
of particles is done correctly.
Additional subgrid-related fields that also need splitting are offset to the respective subgrid implementation.
The only bit that needs to be properly taken care of is the reallocation of the arrays in case we run out of space.ParisPeter W. DraperPeter W. Draperhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/948Minor change to EAGLE_ICs/*/run.sh2019-10-22T14:49:04ZJosh BorrowMinor change to EAGLE_ICs/*/run.shThis updates the run.sh with more useful information and the inclusion of the time-step limiter. I have also attempted to document the parameters, and include downloads for the cooling and yieldtables.
Hopefully this should help people ...This updates the run.sh with more useful information and the inclusion of the time-step limiter. I have also attempted to document the parameters, and include downloads for the cooling and yieldtables.
Hopefully this should help people stop seeing the run-time flags as 'magic' and instead actually make them consider what each one does...ParisMatthieu SchallerMatthieu Schallerhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/892Adds v_sig calculation to force loop in ANARCHY-DU2019-08-14T14:48:49ZJosh BorrowAdds v_sig calculation to force loop in ANARCHY-DUThis adds a `max()` in the force loop for the signal velocity, for ANARCHY-DU. This should hopefully _help_ with some time integration problems we've been seeing, but should be considered a quick fix (note the comment) so that people can...This adds a `max()` in the force loop for the signal velocity, for ANARCHY-DU. This should hopefully _help_ with some time integration problems we've been seeing, but should be considered a quick fix (note the comment) so that people can get on with XL related stuff.
MS: are you happy with this to go into the codebase? I don't like that it's masking an issue but I guess we're kinda up against it :)ParisMatthieu SchallerMatthieu Schallerhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/884Support for multiple softening lengths in the gravity solver2019-09-01T13:13:03ZMatthieu SchallerSupport for multiple softening lengths in the gravity solverImplements the following:
- Add background DM particles (type 2).
- Different softening lengths for DM, baryon and background particles.
- Background DM particles have a softening length that scales with mass^(1/3).
- Two particl...Implements the following:
- Add background DM particles (type 2).
- Different softening lengths for DM, baryon and background particles.
- Background DM particles have a softening length that scales with mass^(1/3).
- Two particles interacting directly use the largest of the two softenings.
- The multipoles carry the maximal softening length of any particle within the multipole
- The multipole-multipole or particle-multipole calculations are only allowed if the distance is larger than the softening.
- Fixes #599.
- Update all the examples to use the new names for the softening lengths in the YAML files.
- Update the RTD description of the Gravity parameters and i/o.
- When replicating the ICs, replicate the black hole particles. Prevent replication when running with background DM.ParisMatthieu SchallerMatthieu Schallerhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/882Removed large stack-overflowing VLAs from the code.2019-08-15T16:25:36ZMatthieu SchallerRemoved large stack-overflowing VLAs from the code.This fixes one issue identified in @jwillis' large FOF runs.
We overflow the stack in proxy.c when the number of top-level cells (per dimension) is >100. Replacing the VLAs by malloced arrays on the heap solves the problem.
I have ch...This fixes one issue identified in @jwillis' large FOF runs.
We overflow the stack in proxy.c when the number of top-level cells (per dimension) is >100. Replacing the VLAs by malloced arrays on the heap solves the problem.
I have checked all other VLAs in the code (thanks to GCC's -Wvla) and they are all small allocations that will not grow to unreasonable sizes until we have ~1 million MPI ranks or 1 million queues. At which point, we have other things to worry about. Keeping these as VLAs is faster. No blanket ban on VLAs then.ParisPeter W. DraperPeter W. Draperhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/876Black holes repositioning2019-08-09T13:21:45ZMatthieu SchallerBlack holes repositioningThis is the last bit of physics of the EAGLE model.
* When looping over the neighbours of a black hole, compute the minimal gravitational potential across all neighbours,
* When drifting, if the minimum is not yourself, move the BH t...This is the last bit of physics of the EAGLE model.
* When looping over the neighbours of a black hole, compute the minimal gravitational potential across all neighbours,
* When drifting, if the minimum is not yourself, move the BH to its new position.
* Force the code to compile with potential calculations switched on when using EAGLE physics.ParisPeter W. DraperPeter W. Draperhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/872Feedback Energy Injection Changes2019-07-30T09:39:50ZJosh BorrowFeedback Energy Injection ChangesThis MR includes:
+ A limiter for the diffusion in ANARCHY-DU that enables feedback in EAGLE to work
+ Minor fixes to some hydro test scripts that were broken that I came across
+ Adds a script to the FeedbackEnergy_3D test to plot ener...This MR includes:
+ A limiter for the diffusion in ANARCHY-DU that enables feedback in EAGLE to work
+ Minor fixes to some hydro test scripts that were broken that I came across
+ Adds a script to the FeedbackEnergy_3D test to plot energy as a function of alpha_diff.ParisMatthieu SchallerMatthieu Schallerhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/869Add eagle feedback test2019-07-19T07:58:00ZJosh BorrowAdd eagle feedback testAdds a new test which tests cooling + feedback with hydro schemes. This is basically as sedov but using the exact same units as EAGLE does, with the heating to 10^{7.5}K.Adds a new test which tests cooling + feedback with hydro schemes. This is basically as sedov but using the exact same units as EAGLE does, with the heating to 10^{7.5}K.ParisMatthieu SchallerMatthieu Schallerhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/863Black holes mergers2019-07-18T16:13:25ZMatthieu SchallerBlack holes mergersNew physics module:
- in the BH SELF and PAIR task, we add a loop over neighbouring black holes
- Neighbours that are close to each others are flagged for merging
- We then swallow the flagged BHs into the bigger BH and absorb their p...New physics module:
- in the BH SELF and PAIR task, we add a loop over neighbouring black holes
- Neighbours that are close to each others are flagged for merging
- We then swallow the flagged BHs into the bigger BH and absorb their properties
- The BH being swallowed is removed from the calculation.Parishttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/855Update the gpart mass when synchronizing when the star or BH mass changes.2019-07-01T18:53:19ZMatthieu SchallerUpdate the gpart mass when synchronizing when the star or BH mass changes.Implements #592.Implements #592.ParisMatthieu SchallerMatthieu Schallerhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/853Recurse less in sort2020-10-07T18:09:43ZPedro GonnetRecurse less in sortImplements limiting the sort recursion depth to avoid cells that will never have a hydro interaction within or below them.
This will probably not impact the sort task speed, but should have an effect on the memory used for sort buffers....Implements limiting the sort recursion depth to avoid cells that will never have a hydro interaction within or below them.
This will probably not impact the sort task speed, but should have an effect on the memory used for sort buffers.
@pdraper, can you run a quick benchmark of this change to look at memory size and CPU usage? Thanks!ParisPeter W. DraperPeter W. Draperhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/845Blackholes swallowing - Gas case2023-01-24T08:46:47ZMatthieu SchallerBlackholes swallowing - Gas caseThis implements the following:
- Black holes carry metal information. That is obtained at brith time and written to snapshots.
- Added 1 new loop over the gas neighbours of BHs to tag the gas particles that will be swallowed.
- Add...This implements the following:
- Black holes carry metal information. That is obtained at brith time and written to snapshots.
- Added 1 new loop over the gas neighbours of BHs to tag the gas particles that will be swallowed.
- Added a field to the gas particles to carry the swallowing information.
- Added a set of tasks to process the particles that have been tagged for swallowing.
- Reduced the number of BH tasks by only creating them for cells that actually contain black holes.
- Added the communication and dependencies that are needed for the swallowing.
- Implemented the EAGLE model for BH swallowing of gas.
- In debugging mode, copy the (const) pointer to the task that is run into the runner. Helps seeing where we are.ParisPeter W. DraperPeter W. Draperhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/835[WIP] Blackhole gas swallowing2019-06-14T14:17:29ZMatthieu Schaller[WIP] Blackhole gas swallowingParisMatthieu SchallerMatthieu Schallerhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/833[WIP] EAGLE - Sampled stellar evolution2019-07-29T08:06:10ZMatthieu Schaller[WIP] EAGLE - Sampled stellar evolutionCopy over a feature of the EAGLE model:
- Stars carry the time of their last enrichment.
- Stars above a certain age do enrichment only every N steps.
- Loops over stars' neighbours are not run for stars not doing enrichment.Copy over a feature of the EAGLE model:
- Stars carry the time of their last enrichment.
- Stars above a certain age do enrichment only every N steps.
- Loops over stars' neighbours are not run for stars not doing enrichment.ParisMatthieu SchallerMatthieu Schallerhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/832Hashmap fixes2019-06-13T19:27:18ZPedro GonnetHashmap fixesAdds functionality to grow a hashmap, can be used to pre-allocate elements when the final size is known.
Fixes overflows on re-hashing, although I'm not too sure how to test this in practice.
Implements #587.Adds functionality to grow a hashmap, can be used to pre-allocate elements when the final size is known.
Fixes overflows on re-hashing, although I'm not too sure how to test this in practice.
Implements #587.ParisPeter W. DraperPeter W. Draperhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/820When doing stellar or AGN feedback, set the particles' viscosity to the maxim...2019-05-20T19:00:44ZMatthieu SchallerWhen doing stellar or AGN feedback, set the particles' viscosity to the maximal value.Implements #576Implements #576ParisJosh BorrowJosh Borrowhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/807Fixes #581, was using comoving not physical density in energy<->entropy conve...2019-05-08T12:34:25ZJosh BorrowFixes #581, was using comoving not physical density in energy<->entropy conversionWhoops, wrong name... Fixes #581Whoops, wrong name... Fixes #581ParisMatthieu SchallerMatthieu Schallerhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/805Communication tasks for on-the-fly star formation2019-05-10T14:28:18ZMatthieu SchallerCommunication tasks for on-the-fly star formationAllow star-formation in combination with stellar feedback over MPI.
Specifically this involves:
- A new communication task propagating the counts of stars in cells that have created stars.
- A change in the unskipping strategy of s...Allow star-formation in combination with stellar feedback over MPI.
Specifically this involves:
- A new communication task propagating the counts of stars in cells that have created stars.
- A change in the unskipping strategy of star tasks. They need to be activated also in the case where
the cell is only active for hydro purposes as that cell may form a star.ParisPeter W. DraperPeter W. Draperhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/804Implementation of black hole accretion and feedback2019-05-08T12:27:56ZMatthieu SchallerImplementation of black hole accretion and feedbackAdds the following:
- self/pair tasks for the black holes
- MPI communication tasks for the black holes
- A new black holes properties structure to contain the BH model details
- New type of black holes for the EAGLE model
- ...Adds the following:
- self/pair tasks for the black holes
- MPI communication tasks for the black holes
- A new black holes properties structure to contain the BH model details
- New type of black holes for the EAGLE model
- Bondi + Eddington accretion model for the EAGLE AGN model
- Update to the yaml parameter files for the new parameters
- Update to the python analysis scripts
- Update to the low-z ICs to contain black hole smoothing lengths.ParisPeter W. DraperPeter W. Draper