EAGLE kinetic-only feedback
Implements:
- Move the enrichment-related parts of the EAGLE feedback to a separate file.
- Add a kinetic-only flavour of EAGLE feedback.
- Add all the mechanism for the new star<->gas loops required for this new version.
- Only activate the loops when running with this feedback model
Todo:
-
MPI version -
Documentation -
Move some code into the ray structure and object.
Merge request reports
Activity
@chaikin this implements most of what you had but in a simpler EAGLE-like flavour where we only use kinetic feedback. Let me know what you think of it.
added 20 commits
-
01eb5182 - 1 commit from branch
master
- 8874baca - Split the EAGLE feedback files into kinetic and thermal modes
- d54febb5 - Rename the 'old' stellar task to 'star density ghost'
- 040f46cf - Add the new task types required for the extra kinetic feedback loops
- 93520ac9 - Add the new task to the cell structure. Give it a good weight, recycle it properly
- 1d0490d8 - Added empty functions to hold the content of the new star->gas interactions
- 3743f64d - Added empty functions to hold the content of the new star->gas interactions
- 6ad16756 - Create the new neighbour loops associated with the new tasks
- 27bbde5f - Construct the new tasks and corresponding dependencies
- add9386b - Activate the new tasks correctly in engine_marktasks
- 117f8c18 - Unskip the new tasks
- bf1d74a5 - Move the common enrichment-related feedback routines to a single file shared...
- 9c874dd5 - Add the new file to the build list
- 7cb3c73e - Add a particle-carried structure to store the ID of the star doing kinetic feedback
- b0e31b84 - Add function to reset the gas particle-carried feedback-related fields in the gas drift
- 9000989d - Convert the SNII thermal injection into kinetic energy injection.
- 7a9a7ed6 - Implement the kinetic-feedback time-step limiter
- e58ed021 - Compute the energy to inject via kinetic feedback in the new EAGLE-derived scheme
- 4c94d19c - Implement the double-kick mitigation measure
- e38c774d - Missing initialisation of the kinetic energy in compute_SNII_feedback()
Toggle commit list-
01eb5182 - 1 commit from branch
- Resolved by Matthieu Schaller
- Resolved by Matthieu Schaller
- Resolved by Matthieu Schaller
- Resolved by Matthieu Schaller
That all looks very nice @matthieu!
I just left a couple of small comments after my first pass through the code.
I have noticed that this version has no
hydro ghost
in between the 1st and 2nd prep loops. Was this done on purpose?I have a couple of unit tests specifically for SNII kinetic feedback. I will soon run this branch on these tests to see how it performs and provide you with more feedback.
Since you have spent some time with this code now, I am also eager to know if you have any comments regarding tasking and any other general things related to kinetic feedback
Thanks for the reviewing. To answer your question, I am not yet 100% convinced that the additional ghost is needed.
I am still considering moving
kick_switch
into the ray_extra structure. And also changing the mirror switch to anenum
type to be more readable about what is going on.The additional tests you have will be useful indeed! As for feedback, not much to say really. Your original stuff was very good! I just made some changes in small places to get it to work also in the cases where we don't want the extra loops.
Thanks @matthieu
I presume we will need to discuss the MPI implementation one more time then
May I push commits to this branch with the changes you suggested or do you prefer to do it yourself?
added 1 commit
- 258471be - change switch to enum and move to ray struct
- Resolved by Matthieu Schaller
added 34 commits
-
258471be...a9cf8d76 - 14 commits from branch
master
- ef9141ab - Split the EAGLE feedback files into kinetic and thermal modes
- 18f6887b - Rename the 'old' stellar task to 'star density ghost'
- 0c4e2403 - Add the new task types required for the extra kinetic feedback loops
- 37975899 - Add the new task to the cell structure. Give it a good weight, recycle it properly
- d0b704f7 - Added empty functions to hold the content of the new star->gas interactions
- 5829eb4f - Added empty functions to hold the content of the new star->gas interactions
- 4f1f2ca0 - Create the new neighbour loops associated with the new tasks
- 9deaeb0b - Construct the new tasks and corresponding dependencies
- 852ac68c - Activate the new tasks correctly in engine_marktasks
- 86c7617e - Unskip the new tasks
- 2c655846 - Move the common enrichment-related feedback routines to a single file shared...
- 548b5c4b - Add the new file to the build list
- 99e9e16b - Add a particle-carried structure to store the ID of the star doing kinetic feedback
- f7ccd5cf - Add function to reset the gas particle-carried feedback-related fields in the gas drift
- 59b6045d - Convert the SNII thermal injection into kinetic energy injection.
- c783e4e3 - Implement the kinetic-feedback time-step limiter
- c6db1656 - Compute the energy to inject via kinetic feedback in the new EAGLE-derived scheme
- c0638955 - Implement the double-kick mitigation measure
- a1dc7a43 - Missing initialisation of the kinetic energy in compute_SNII_feedback()
- afb2c0db - change switch to enum and move to ray struct
Toggle commit list-
258471be...a9cf8d76 - 14 commits from branch
- Resolved by Matthieu Schaller