SWIFTsim merge requestshttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests2024-02-25T14:01:40Zhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/1847Adaptive softening for the gas2024-02-25T14:01:40ZMatthieu SchallerAdaptive softening for the gasImplements adaptive softening for the gas when using the Wendland-C2 kernel (i.e. the kernel used in the gravity solver).
Equations taken straight from https://ui.adsabs.harvard.edu/abs/2007MNRAS.374.1347P/abstract but with the terms alt...Implements adaptive softening for the gas when using the Wendland-C2 kernel (i.e. the kernel used in the gravity solver).
Equations taken straight from https://ui.adsabs.harvard.edu/abs/2007MNRAS.374.1347P/abstract but with the terms altered for the Wendland kernel.
Changes:
- Add new config option to activate the adaptive softening (`--with-adaptive-softening`),
- The gravity scheme uses the gas'`h` as `epsilon`
- A min and max can be applied via the gravity section of the parameter file.
- The gravity loops and initial comms are taking place _after_ the hydro ghost.
- The hydro scheme (SPH only) includes extra momentum terms accounting for the change in softening.
- the "baryon softening" constants given in the parameter files then only apply to stars and BHs.
Todo:
- [x] Same for the other hydro schemes.
- [x] Document the new behaviour in the RTD.
- [x] Update the unit tests and tools.c
Closes #879.Josh BorrowJosh Borrowhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/1777Draft: Streamlined MAGMA2 implementation2024-02-13T12:31:21ZMatthieu SchallerDraft: Streamlined MAGMA2 implementationThis is a reimplementation of the MAGMA2 branch with:
- Simpler symmetric matrix handling
- Only 1st order reconstruction of `v` and `u`.
- Only basic viscosity and diffusion terms as in the Rosswog 2020 implementation
Questions:
...This is a reimplementation of the MAGMA2 branch with:
- Simpler symmetric matrix handling
- Only 1st order reconstruction of `v` and `u`.
- Only basic viscosity and diffusion terms as in the Rosswog 2020 implementation
Questions:
- Do we need more advanced terms? SPHENIX-like? Or the Rosswog entropy-based viscosity switch?
- What implementation do we want? Traditional or Gasoline?
Todo:
- [ ] Document the matrix stuff
- [ ] 1D and 2D cases
- [ ] Scale-factors
- [ ] Strange corner cases (e.g. no ngb)
- [ ] Tests in galaxy settings
- [ ] Properly implement the symmetric functions.
- [ ] Fix documentation. It still mentions `Minimal` and `SPHENIX` in places.https://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/1624Draft: Add magma2 SPH scheme2023-07-15T16:33:16ZZhen XiangDraft: Add magma2 SPH schemeI just added the MAGMA2 scheme in the branch MAGMA2 and are there some advices for the future implementation?
I added the two extra profiles:
- hydro_iact_cosmo.h and hydro_iact_sphenix.h. One is added the cosmological term and anothe...I just added the MAGMA2 scheme in the branch MAGMA2 and are there some advices for the future implementation?
I added the two extra profiles:
- hydro_iact_cosmo.h and hydro_iact_sphenix.h. One is added the cosmological term and another is using the sphenix's diffusion parameter.
- There is a parameter called h_crit in the runner_iact_force and runner_iact_nonsym_force , which is the inverse of the resolution eta. And everytime I just change the parameter manually
- Also for the matrix inversion, I just paste the function invert_dimension_by_dimension_matrixin swift, and it might need clear a bit and call the function instead
- And I just directly use constant viscosity and diffusion parameters into the function without define it in the hydro_parameter.h. It also might need to change a bit
- Last thing is MAGMA2 use the quadratically mid point reconstruction and it is also worth to test the linearly reconstruction. Since it may increases the computing effciency.https://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/1530Draft: Blank functions for MHD support2024-02-23T18:55:43ZMatthieu SchallerDraft: Blank functions for MHD supportChanges:
- Moved the signal velocity calculation to a new file that is SPH-scheme independant. There are two versions in there, one for MHD runs, one for non-MHD runs
- Added the `mhd` directory for the scheme specific things. In ther...Changes:
- Moved the signal velocity calculation to a new file that is SPH-scheme independant. There are two versions in there, one for MHD runs, one for non-MHD runs
- Added the `mhd` directory for the scheme specific things. In there there is only `None` scheme for now, i.e. no-MHD runs
- Added all the empty functions for the loops over neighbours
- Added all the empty functions for the things done in-between loops (drift, kick, reset...)
- Added a small structure that is carried by the particles to contain the MHD fields.
Todo:
- [ ] Deal with the case where the MHD wants three loops but the hydro only needs two...
- [x] Deal with Gasoline signal velocity
- [x] Prevent MHD + Gizmo
- [x] Unit tests
- [x] Cleanly deal with mu_0
- [x] Cleanly deal with stats
- [ ] Cleanly deal with div v
- [ ] Work out units of B^2 PS.https://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/1353Draft: Subtask speedup - Still requires work2022-08-06T03:35:00ZMatthieu SchallerDraft: Subtask speedup - Still requires workFor now, compile with `CFLAGS=-DONLY_SUBTASKS` added to the configuration line.
This introduces significantly faster neighbour finding in particle distributions with strong density gradients. For instance planetary applications or probl...For now, compile with `CFLAGS=-DONLY_SUBTASKS` added to the configuration line.
This introduces significantly faster neighbour finding in particle distributions with strong density gradients. For instance planetary applications or problematic feedback-disturbed galaxies.
Changes:
- Add the brute-force density checks to the planetary scheme (not just sphenix)
- Rewrite the recursion logic in the hydro and stars sub-task:
- The interaction functions have extra parameters to optionally consider particles only between 0.5 * width and width
- The subtask recursion now continues to lower level if we reach a level where h is too large. From that level on, we will just use the feature of only considering particles in the appropriate range of h.
- When recursing, only the h_max of _active_ particles is considered, not all particles.
Notes:
- We will consider c7adb289391c613ccebf2be0bd630b83f86fe171 separately.
- In a second phase, I'll remove entirely the self + pair tasks and keep only the subs.
Todo:
- [x] Verify RT isn't broken
- [x] Verify MPI runs are happy.
- [x] Port changes to the other hydro schemes.
- [ ] Handle particles drifting out of their cells.
Fixes #688.