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:
- Something like a FieldVariable declaration in a Dynamics analogous to a StateVaraible
but spatially extended.
- Some notion of geometry
- A mechanism for extracting a value for a FieldVariable at a point for use in a point process model.
this could involve sampling, interpolation or integration over some kind of kernel
- A mechanism for associating point models with positions in a scalar field
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.