Skip to content

RT injection upgrades - Round 1

Mladen Ivkovic requested to merge rt-injection-upgrades into master

Ok, so here's round 1 of RT injection task upgrades.

In the RT injection tasks, we interact star particles with the gas and distribute the photon energy and flux from the stars onto the gas. In this version, the active hydro particles "ask" neighbouring star particles to inject them with energy, as opposed to what happens in the feedback task, where the active stars "push" energy into the gas.

The big improvements in this merge request are the following:

  • written "proper" sub_self and sub_pair injection tasks. "Proper" here means they actually recurse.
  • added checks for sorts and drifts in pair / sub_self / sub_pair tasks
  • added hydro / star drift and sort dependencies
  • added RT stuff to task lock/unlock functions and other bugfixes
  • when running with RT, activate engine policy feedback even if compiled without feedback.

Here's the new version of the dependency graph: dependency_graph_0

And here are the task plots. The most significant difference reveals itself when only few particles are active. Here is a task plot with made with what's currently in the master (roughly ~1000 hydro particles active): thread_info-step4

and this is what it looks like now: thread_info-step4

It effectively reduced the runtime on 4 threads on the IsolatedGalaxy_feedback example for 50 steps from ~200 to ~40s (with debugging checks enabled)

@lhausammann : could you have a look first?

Edited by Mladen Ivkovic

Merge request reports