Recipe
Cell descriptions
gid 1
type `lif_cell_0`
...
...
gid 37
type `cable_cell_A`
Morphology
Decor
Mechanisms
Connection sites
Label dictionary
Cell kinds
gid 1
type `arbor.lif_cell`
...
gid 37
type `arbor.cable_cell`
...
Simulator: requests cell description of `gid=37`
Recipe: `type=cable_cell_A`.
Simulator: requests cell kind of `gid=37`
Recipe: `kind=arbor.cable_cell`.
Simulator: look up cell group implementation for kind `arbor.cable_cell`.
Domain decomposition: `cable_cell_group_gpu`
Simulator: `cable_cell_group_gpu` construct `cable_cell_A` object.
`cable_cell_group_gpu`: Construction complete.
Simulator: `cable_cell_group_gpu` simulate for `t .. t + dt`
Simulation
Recipe
Context
12 threads
1 GPU
Domain decomposition
cable_cell_group_gpu
1 GPU
...
An illustration of the cell-specific portion of the recipe, and how it is used during the lifetime of the simulation: the simulation object will, depending on its configuration, query the recipe for the neuroscientific components it describes. This demonstration also show why the recipe separates cell descriptions from cell types. The latter is, as you might expect, shorthand, and is used in the allocation of the cell to a particular cell group. A cell group implementation is a handler for a certain kind of cell, and Arbor comes with these for all it's included cell kinds. However, users can develop their own specialized cell group implementations. More on that in the internal developer documentation.