Skip to content

Draft: Fix RT multiscale interactions

Trying to get RT to run correctly with the new h_max_active collections and checks in the IACT loops.

This still doesn't work as it should, so don't merge yet. I'm hoping to track progress with this.

What's been done:

  • Added h_max_active collection for RT independently from hydro.
  • The collection can't happen in the hydro ghost tasks in parallel with the hydro h_max_active collection. After a rebuild, the cell value is reset. If a cell remains inactive for hydro in the first step after a rebuild, the RT collection will be skipped. So it was moved to the RT ghost task.
  • A small example (examples/RadiativeTransfer/RandomizedBox_3D) runs without MPI.

What needs to be sorted out:

  • examples/RadiativeTransfer/RandomizedBox_3D fails with MPI now: (2 ranks, 2 threads per rank)
[0001] [00020.9] ./runner_doiact_functions_stars.h:runner_do_sym_pair_stars_feedback():512: Invalid particle position in Z for pi (piz=2.000269e+02 ci->width[2]=1.000000e+02)
  • It is completely unclear to me why we collect h_active_max for hydro during the drift.
  • It is also completely unclear to me why the collection in the drift initialises h_active_max to 0, but the collection in runner_ghost doesn't: It initialises it to h_active_max = c->hydro.h_active_max. I tried resetting it in the ghost to zero too, but then the debugging flags flare up, finding an active particle h > with h_active_max in the hydro IACT loops. I do not understand why. I suspect it may be related to why we collect the data in the drift too.
  • MPI remains untested.
  • A proper, big, and problematic example remains untested.
Edited by Mladen Ivkovic

Merge request reports

Loading