SWIFTsim merge requestshttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests2020-07-03T12:35:32Zhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/1109More EoS2020-07-03T12:35:32ZJacob Kegerreisjacob.kegerreis@durham.ac.ukMore EoSAdd more planetary equations of stateAdd more planetary equations of stateMatthieu SchallerMatthieu Schallerhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/1077Improved multipole acceptance criterion (MAC)2020-06-19T12:22:46ZMatthieu SchallerImproved multipole acceptance criterion (MAC)Big improvements to the gravity code.
Improvements:
- Fix mistakes in the higher-order derivatives used below softening,
- Implement the Dehnen+2014 multipole acceptance criterion (in cartesian coordinates),
- Allow (optionally) to u...Big improvements to the gravity code.
Improvements:
- Fix mistakes in the higher-order derivatives used below softening,
- Implement the Dehnen+2014 multipole acceptance criterion (in cartesian coordinates),
- Allow (optionally) to use the tree below softening,
- Allow (optionally) to use the truncated and softened potential in the MAC,
- Fully simplify the first order multipole terms that are 0,
- Simplify the signature of the long-range and short-range gravity truncation functions,
- Do not use the M2P kernel if the multipole is made of one single particle,
- Vectorize the cache construction and write backs to memory,
- Vectorize the M2P kernel,
- Use a leaf-level cell lock rather than the field-by-field atomic operations on the particles,
- Significant update to the gravity theory doc.
Still to do:
- [x] Correctly use and document the new truncated MAC,
- [x] Re-implement the MAC for the proxies,
- [x] Update all the example YAML files,
- [x] Clean-up the debugging checks,
- [x] Prevent M2L for cells with small number of particles.Matthieu SchallerMatthieu Schallerhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/1050Line-of-sight output along the z-axis2020-05-23T16:36:59ZMatthieu SchallerLine-of-sight output along the z-axisMatthieu SchallerMatthieu Schallerhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/1063Output the velocities of the gas surrounding the BHs2020-04-22T16:39:59ZMatthieu SchallerOutput the velocities of the gas surrounding the BHsMatthieu SchallerMatthieu Schallerhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/1060Gravity p2m improvements2020-04-17T11:46:59ZMatthieu SchallerGravity p2m improvementsImprovements to the gravity:
- Cleaner implementation of the particle-mutipole interaction,
- Fixed a small mistake in the M2P kernel,
- Cleaned-up the gravity accuracy check script,
- Added function attributes to help with optimizat...Improvements to the gravity:
- Cleaner implementation of the particle-mutipole interaction,
- Fixed a small mistake in the M2P kernel,
- Cleaned-up the gravity accuracy check script,
- Added function attributes to help with optimization.Matthieu SchallerMatthieu Schallerhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/1036Quick lyman alpha module2020-03-13T10:33:22ZMatthieu SchallerQuick lyman alpha moduleMatthieu SchallerMatthieu Schallerhttps://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/979Cosmological integration2019-12-17T21:19:04ZMatthieu SchallerCosmological integrationImplements #405.Implements #405.Matthieu SchallerMatthieu Schallerhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/956Fully implement the timestep limiter (non MPI)2019-11-11T14:04:36ZMatthieu SchallerFully implement the timestep limiter (non MPI)This is a large new chunk of code. This implements the following changes:
- Implement the time-step limiter condition based on differences in time-bin and not on differences in the signal velocity,
- Move the time-step limiter loop...This is a large new chunk of code. This implements the following changes:
- Implement the time-step limiter condition based on differences in time-bin and not on differences in the signal velocity,
- Move the time-step limiter loop *after* the time-step task,
- Add a synchronization runtime flag (--sync) that switches on the synchronization of particles hit by feedback to the current time,
- Move the time-step limiter infrastructure out of the individual hydro schemes and into its own set of files,
- Make the time-step limiter loop a loop of type "1" and not type "2" as required by the original scheme.
Implements #196.Peter W. DraperPeter W. Draperhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/954Change the EAGLE SNIa DTD to a properly normalized power-law of slope -12019-11-07T12:41:56ZMatthieu SchallerChange the EAGLE SNIa DTD to a properly normalized power-law of slope -1Matthieu SchallerMatthieu Schallerhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/952Gravity dithering2019-10-27T17:57:31ZMatthieu SchallerGravity ditheringImplements #497.Implements #497.Matthieu SchallerMatthieu Schallerhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/942EAGLE star formation update2019-10-14T14:57:01ZFolkert NobelsEAGLE star formation updateThis update changes the used pressure in the EAGLE star formation from the EOS pressure to the maximum of the EOS pressure and the actual pressure and changes the delta from being the maximum between the entropy floor and the star format...This update changes the used pressure in the EAGLE star formation from the EOS pressure to the maximum of the EOS pressure and the actual pressure and changes the delta from being the maximum between the entropy floor and the star formation EoS entropy.
Implements #621.Matthieu SchallerMatthieu Schallerhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/891Backported the new interface to the chemistry from the COLIBRE fork.2019-10-08T09:03:05ZMatthieu SchallerBackported the new interface to the chemistry from the COLIBRE fork.This is an update that comes from our higher-resolution model fork but that I'd like to backport as it is useful in general but it touches the chemistry API.
The idea is to add a bunch of functions to the chemisty interface that return ...This is an update that comes from our higher-resolution model fork but that I'd like to backport as it is useful in general but it touches the chemistry API.
The idea is to add a bunch of functions to the chemisty interface that return what Z and what the individual metal array is to be used in the different sections of the code (SF, feedback, cooling). The idea is then that these modules do not have to know what the exact structure of the chemistry data is.
In our case it allows us to switch between a model that uses smoothed metals and one that doesn't just by changing the compilation flag for chemistry.
It does not break GEAR but maybe you want to adopt the same chemistry functions as well. Feel free to push to this branch if you want to.Loic HausammannLoic Hausammannhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/926Alternative definition of the number of neighbours2019-09-26T18:03:39ZMatthieu SchallerAlternative definition of the number of neighboursBetter way to implement the alternative definition of the neighbour number.Better way to implement the alternative definition of the neighbour number.Josh BorrowJosh Borrowhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/914Improvements to the particle-multipole interactions2019-09-05T13:26:21ZMatthieu SchallerImprovements to the particle-multipole interactionsFor multipoles of order p, we can compute the forces of this multipole onto a particle using derivatives of the potential of order p+1. This leads to additional accuracy without having to carry additional multipole values.For multipoles of order p, we can compute the forces of this multipole onto a particle using derivatives of the potential of order p+1. This leads to additional accuracy without having to carry additional multipole values.Matthieu 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/897Clarified cosmology dependence in morris av. Closes #5682019-08-19T15:04:20ZJosh BorrowClarified cosmology dependence in morris av. Closes #568This fixes #568.
New version behaves exactly the same as previous one, but with more sensible cosmology factors.
![SodShock](/uploads/a369c78a071da86042256867e5e972ea/SodShock.png)This fixes #568.
New version behaves exactly the same as previous one, but with more sensible cosmology factors.
![SodShock](/uploads/a369c78a071da86042256867e5e972ea/SodShock.png)Add ANARCHY-SPHMatthieu SchallerMatthieu Schallerhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/895Fixed incorrect cosmology factors for pressure and internal energy in the i/o2019-08-16T11:05:58ZJosh BorrowFixed incorrect cosmology factors for pressure and internal energy in the i/oPreviously we were writing that the internal energy transformed as a^{3(\gamma-1)}, which is incorrect. The pressures were also written to transform as a^{3\gamma}. In this MR I have rectified this to be correct, as
![image](/uploads/19...Previously we were writing that the internal energy transformed as a^{3(\gamma-1)}, which is incorrect. The pressures were also written to transform as a^{3\gamma}. In this MR I have rectified this to be correct, as
![image](/uploads/19008ecf44f292e2a3307c42e6cd8638/image.png)
As we store P' and want the conversion factor to physical, we need it to be a^{-3\gamma}.
As for the internal energy, we can have a similar argument
![image](/uploads/0c60a974313ce6ca37dd6ee0e67400b6/image.png)
where we need the factor for u to be a^{-3(\gamma - 1)}.Matthieu 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/893Update i/o API in all examples (within reason)2019-08-14T14:43:27ZJosh BorrowUpdate i/o API in all examples (within reason)Recently we updated the API for i/o to pluralise a lot of outputs. Here I have fixed a lot of the examples scripts (mainly hydro tests) that load this data and use it. I have also attempted to update those that use the `swiftsimio` API.Recently we updated the API for i/o to pluralise a lot of outputs. Here I have fixed a lot of the examples scripts (mainly hydro tests) that load this data and use it. I have also attempted to update those that use the `swiftsimio` API.