-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
AGN Triggering #2
Conversation
Conflicts: external/parthenon
Conflicts: external/parthenon src/hydro/srcterms/tabular_cooling.cpp src/pgen/cluster.cpp src/pgen/pgen.hpp tst/regression/CMakeLists.txt tst/regression/test_suites/cluster_hse/cluster_hse.py
@pgrete This PR was ready for review but after merging with main many of the cluster tests are failing due to negative densities in tests that should be running with a static hydro, source terms only. It seems that Also, I don't seem to have any write access to this repo, I can't push anything up |
I'll have a look. |
@par-hermes format |
b38c4a6
to
15cc60d
Compare
@par-hermes format |
I'd since fixed the precessing jet. It was due to incorrect application of rotations from a small detail in the Sympy functions I use to figure out the coordinate rotation and transformation math. It's working now. |
…thenon-hpc-lab/athenapk into forrestglines/cluster_agn_triggering
@par-hermes format |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Final changes look good! Great job, @forrestglines !
Test pass (though I'm not sure why the results are not reported back).
Pulling the trigger.
Did the CI machine die? I don't think it usually takes this long to run. |
Adds multiphysics modules necessary for evolving galaxy clusters with triggered AGN feedback. It implements the three triggering mechanisms from Meece 2017, cold gas triggering, boosted Bondi accretion, and Booth Schaye accretion. It both calculates the AGN feedback to inject from these mechanisms and removes mass from the simulation at a fixed velocity and temperature (so that momentum and specific gas energy is changed). I've also modified the thermal AGN feedback to inject mass at a fixed velocity (so that momentum is changed) and magnetic AGN feedback mass injection at a fixed velocity and temperature (so that momentum and specific gas energy is changed). These implementation details/choices are intended to follow Meece 2017 as closely as possible, although they could be revisited.
The separate components added are:
Each of these separate components have been tested individually in regression tests to function as expected (not to say they could still have bugs). I've also ran a larger test with cold gas accretion and all three kinds of AGN feedback (thermal, kinetic jet, and magnetic feedback) working at once across 4 gpus on a node with multiple restarts -- everything seems to work as of commit 8b78940. This test is probably sufficient for preliminary science runs at larger scales, that would be my next step if I had the time.
I think this MR is ready for review and to be merged. There are a few outstanding questions about implementation choices for either reviewers or future merge requests. However, since the changes in this MR are exclusive to running galaxy clusters, I'd argue for merging these changes in after review.
My outstanding questions and things for reviewers to double check are:
On a related note for reviewers, if anything does seem broken/not working, I'd suggest checking whether the input file is correct -- that things are named correctly, that they match the inputs read by the code, and that the inputs are saved correctly in the code.
There are a three things left to implement for galaxy cluster simulations but we could move forward with preliminary simulations. These features are:
I have a repo on gitlab for creating initial conditions for galaxy clusters, making movies, and plotting statistics. magnetized-clusters. You need Python 3 and Jupyter notebook with both unyt and the Parthenon-enabled yt from my
parthenon-frontend
branch on my github repo installed.A few useful files and notebooks from my
magnetized-clusters
repo are:Generate AthenaPK Input.ipynb: Generate input files for galaxy clusters. Since I've designed the input files to use purely code units (except to define code units), it's helpful to use
unyt
to manage the code units that go into the input file.Slice Movies.ipynb: Make movies from galaxy cluster simulations. Does the heavy lifting for automatically generating boundaries for the color/field axes on plots so that the axes aren't constantly changing throughout the movie but the axis bounds also don't have to be explicitly set.
Statistics.ipynb: WIP notebook to read statistics over time from a simulation. E.g. total mass/cooling over time, mins and maxes, cold gas mass, etc. Data reading is fleshed out, plots/figures are WIP
medium.precessing_all_mech_jet.input: A working, with restarts, half-handcrafted, half-generated input file including a cold-gas triggered precessing AGN jet with thermal, kinetic, and magnetic AGN feedback. Would be a good starting point for a full simulation.