The new task type should be added to this list in the same order as it was added within the task_types struct in task.h
cell.h contains pointers to all of the tasks associated with that cell. You must include your new task type here e.g::
struct task *my_new_task;
Within timers.h is an enumerated list of timers associated with each task. The timers measure the time required to execute a given task and this information is used in improve scheduling the task in future iterations::
/* The timers themselves. */
enum {
timer_none = 0,
timer_prepare,
timer_kick1,
.
.
.
timer_new_task,
timer_step,
timer_count,
};
Finally, in engine.c the new task is added so that the scheduler knows to include the task in the list of tasks
to be scheduled. Knowing where to add the task in engine.c is a little bit more difficult. This will depend on
the type of task involved and whether it is a task that acts only on a individual particle independent of other
particles (e.g. a cooling a task) or whether the task depends on other tasks (e.g. density, force or feedback).
If we assume that the task is a particle only task then the first place to modify is the engine_mkghosts()
function. Within this function the new task must be added to the list of tasks