cmoralesmx / ev_diffusion

An Agent-Based Modell of nano-particles (Extracellular vesicles) diffusion
MIT License
0 stars 0 forks source link

Introduction of new EV agents sometimes causes collision issues #1

Open cmoralesmx opened 5 years ago

cmoralesmx commented 5 years ago

Currently, the release of a new EV occurs independently from other processes. A user-provided parameter determines the minimum time interval between new EV production attempts. For this process, each secretory cell maintains a timer which is compared per iteration against this value. If the comparison is positive, a random number is sampled and compared to the user-specified probability threshold of production. Regardless of the outcome of this comparison, the timer is set back to zero. However, if the sampled value is higher than the threshold, a new EV is produced, as follows.

Whenever a secretory cell is to produce an EV, one of it's secretory points is selected randomly. Each secretory cell has between 1 and N source points (pre-computed for efficiency). The selected source point provides the coordinates for the initial position of the new EV.
Then, to provide an initial impulse to the new EV, the following values are used.

  1. The inwards-pointing unit vector normal to the cell producing the EV is taken as the direction of displacement.
  2. The velocity is computed based on the expected Mean Square Displacement in relation to the size of the EV.

This behaviour works fine most of the time. However, when a pre-existing EV is located almost within collision distance of a source point and the source point is producing an EV, it can results in a special collision.
Such collisions would only occur if the diameters of the newly introduced EV and the pre-existing EV overlap. Because the overlapping distance between colliding EVs is used to compute the correction required to resolve the collision, if the overlap is large, the correction will also be large. The end result of this behaviour is particles sent out of bounds or displaced by very large distances.

cmoralesmx commented 5 years ago

One possible approach to solve this issue follows,

Secretory cell

Attributes