# Aspects & Concepts

`cellular_raza`

is built up with minimal assumptions on the underlying cellular and environmental
structure of the problem.
In order to describe a wide variety of cellular systems, we need abstractions over the individual
processes such that a numerical integrator can integrate the system in question.

We divide these theoretical abstractions into two subcategories. Simulation aspects contain information about the actuality of the simulation while concepts contain all other required abstractions such as storage methods, time-steppers, etc. In principle, we consider concepts to be a superset of aspects and thus use the name concepts for the combination of both of them.

## Aspects

Simulation aspectss can be thought of as mathematical abstractions. In the future, we aim to provide a concise mathematical notation in order to describe them.

Aspect | Description | Depends on |
---|---|---|

Cellular Agent |
||

`Position` |
Spatial representation of the cell | |

`Velocity` |
Spatial velocity of the cell | |

`Mechanics` |
Calculates the next increment from given force, velocity and position. | `Position` and `Velocity` |

`Interaction` |
Calculates force acting between agents. Also reacts to neighbours. | `Position` and `Velocity` |

`Cycle` |
Changes core properties of the cell. Responsible for cell-division and death. | |

`Intracellular` |
Intracellular representation of the cell. | |

`Reactions` |
Intracellular reactions | `Intracellular` |

`ReactionsExtra` |
Couples intra- & extracellular reactions | `DomainReactions` |

`ReactionsContact` |
Models reactions between cells purely by contact | `Position` , `Intracellular` |

Simulation Domain |
||

`Domain` |
Represents the physical simulation domain. | |

`DomainMechanics` |
Apply boundary conditions to agents. | `Position` , `Velocity` |

`DomainForce` |
Apply a spatially-dependent force onto the cell. | `Mechanics` |

`DomainReactions` |
Calculate extracellular reactions and effects such as diffusion. | `ReactionsExtra` |

Other |
||

`Controller` |
Externally apply changes to the cells. |

## Concepts

| Name | Description | Depends on | |:—:| — | | | |