Closed Robadob closed 1 year ago
Made an overview of how Primage env Grid is used here: Note, it doesn't (currently) collide with messaging.
https://gist.github.com/Robadob/fa846e6430eaf645a475f8c3043aa0fb
Re: Init layers
Re: Grid
Primage is finished.
Just running through the PRIMAGE code, identifying features not currently supported.
But really we mostly require a large environment array which represents the environment (and can be acted on). In future, diffusion may also need to be applied to this array. Technically, this grid also grows with the size of the tumour. However, that merely means some cells remain uninitialised until later into the simulation (whereby they copy their neighbour's data).
Bitfield Variables Not strictly necessary, but these would help reduce the memory footprint of agents as the model contains many bool /3-state agent variables.
Mode specific outputs Primage model has several different modes, specify a particular runtime argument and file name, and it will output specific output data to that file/directory. This is used for; validation timeseries, visualisation timeseries, force resolution tracking, official primage execution and some other less frequent outputs. Perhaps a way to have runtime toggled exit/step functions (and a way to configure custom json logging).
Trivial counters/logging within agent functions (#178) I've used atomics quite heavily when validating some methods with complex branching structures, to ensure the correct branches are being followed in the correct proportions. Some equivalent way of doing this would be very useful, especially if it were accessible to python models. This also links in with the mode specific outputs thingy above.