3.17.5. Task update sequence¶
When a sink particle task (data type sink_patch_t
) reaches the head of
the ready queue and is taken by one of the threads, its call to the normal
task_list_t%update()
procedure results in calls to these procedures
(indentation indicates call level, and the name of the file containing
the procedure is obtained with the substituttion _t
-> _mod.f90
):
experiment_t%dnload ! generic download call
sink_task_t%dnload ! sink patch download
download_t%download_link (..., all_cells=.true., ...) ! values for accretion
task%update ! generic update call
sink_task%update ! sink patch update
particle_solver_t%force_field ! fall through
particle_list_t%force_field ! compute forces
hash_table%get ! get patch_forces
sink_task_t%accrete ! accrete mass
sink_task_t%courant_condition ! set timestep
sink_task_t%move ! organize particle move
particle_solver_t%update ! particle solver update
particle_solver_t%courant_time ! particle courant time
patch_t%rotate ! patch periodicty etc
task_t%rotate ! rotate time slots
list_t%send_to_vnbors [ if the task is a boundary task ] ! send boundary tasks