Cell identifiers and indexes

These types, defined in common_types.hpp, are used as identifiers for cells and members of cell-local collections.


Arbor uses std::unit32_t for cell_gid_type, cell_size_type, cell_lid_type, and cell_local_size_type; and uses std::string for cell_tag_type at the time of writing. However, this could change, e.g. to handle models that cell gid that don’t fit into a 32 bit unsigned integer. It is thus recommended that these type aliases be used whenever identifying or counting cells and cell members.

type cell_gid_type

An integer type used for identifying cells globally.

type cell_size_type

An unsigned integer for sizes of collections of cells. Unsigned type for counting cell_gid_type.

type cell_lid_type

For indexes into cell-local data.

type cell_tag_type

For labels of cell-local data. Local labels are used for groups of items within a particular cell-local collection. Each label is associated with a range of cell_lid_type indexing the individual items on the cell. The range is generated when the model is built and is not directly available to the user.

enum lid_selection_policy

For selecting an individual item from a group of items sharing the same cell_tag_type label.

enumerator round_robin

Iterate over the items of the group in a round-robin fashion.

enumerator round_robin_halt

Halts at the current item of the group until the round_robin policy is called (again).

enumerator assert_univalent

Assert that ony one item is available in the group. Throws an exception if the assertion fails.

class cell_local_label_type

For local identification of an item on an unspecified cell. This is used for selecting the target of a connection or the local site of a gap junction connection. The cell gid is implicitly known from the recipe.

cell_tag_type tag

Identifier of a group of items in a cell-local collection.

lid_selection_policy policy

Policy used for selecting a single item of the tagged group.

class cell_global_label_type

For global identification of an item on a cell. This is used for selecting the source of a connection or the peer site of a gap junction connection.

cell_gid_type gid

Global identifier of the cell associated with the item.

cell_local_label_type label

Identifier of a single item on the cell.

type cell_local_size_type

An unsigned integer for for counts of cell-local data.

class cell_member_type

For global identification of an item of cell local data. Items of cell_member_type must:

  • be associated with a unique cell, identified by the member gid;

  • identify an item within a cell-local collection by the member index.

An example is uniquely identifying a probe description in the model. Each probe has a cell id (gid), and an index (index) into the set of probes on the cell.

Lexicographically ordered by gid, then index.

cell_gid_type gid

Global identifier of the cell containing/associated with the item.

cell_lid_type index

The index of the item in a cell-local collection.

enum class cell_kind

Enumeration used to identify the cell type/kind, used by the model to group equal kinds in the same cell group.

enumerator cable

A cell with morphology described by branching 1D cable segments.

enumerator lif

Leaky-integrate and fire neuron.

enumerator spike_source

Proxy cell that generates spikes from a spike sequence provided by the user.

enumerator benchmark

Proxy cell used for benchmarking.