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_3Dfails 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_maxfor hydro during the drift. -
It is also completely unclear to me why the collection in the drift initialises h_active_maxto 0, but the collection inrunner_ghostdoesn't: It initialises it toh_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