Possible extensions

Repeatable components

In a sense, the Dimension and Unit elements operate as model-independent global quantities since they may be restated in different files without problems as long as the definitions are identical.

There is probably a case for a user-definable type with similar properties. The canonical application would be in defining the ionic or molecular species present in a simulation. For example, in specifying that a channel is permeable to Na+ ions, or blocked by TTX, it is necessary to match up the occurrences of these quantities in the channel definition with those in the environment of the cell model in which the channel is used.

This can be done with the ExternalQuantity element as in example 5, but that currently requires all references to a global component to point to the same component since a component cannot be repeated. This prevents there being fully independent self contained channel definitions as they would need to share the same species file. It should be easily resolved by allowing a flag on type definitions to say that duplicate components are allowed for particular types as long as the definitions are identical.

Scalar fields

Conceptually, you need a number of things:

Of these, the geometry and positioning is the hard part. Whether an implementation could actually do something useful with such a model is another question entirely.