next up previous
Next: Example Up: Projections Previous: Connections inside an entity

NEURON style connections

The Neuron netcon object defines a synaptic connection between a source membrane potential/PointProcess and a target PointProcess with a NET_RECEIVE procedure. It includes a source threshold, weight and delay. So how does this fit in with Neosim connections?

Figure 10: Relationship between Neosim and Neuron connections.
\leavevmode \centering

\epsffile {figs/nrnnetcon.eps}\end{figure}

The default Neosim connection just stores src/dest entity and port, along with a delay and a connectionID. Additional information needed by the Netcon object should be stored in the Neuron entity, including the threshold at the source, and the weight at the destination end.

The next question is how do these netcon objects get constructed? The mechanism in OC is:

section netcon = new NetCon(source, target, threshold, delay, weight);

The source and targets are PointProcesses within different entities. The implementation of this in Neosim becomes:

class NetConSrc extends SourceMethod {
  NetConSrc( PortID srcp, Double thresh);
  void sendRequests(Entity srce, Population destPop, DestMethod dm) {
    ((NeuronEntity) srce).setThreshold( srcp, thresh );
    bcastRequest( destPop, new ConnectionRequest( srce, srcp, dm ) );
class NetConDest extends DestMethod {
  NetConDest( PortID destp, double delay, double weight );
  boolean considerRequest( Entity deste, ConnectionRequest cr ) {
    ConnectionID cid = makeConnection( new Connection( cr.srce, cr.srcPort, deste, destp, delay ) );
    return true;
EntityID srce   = // source entity
PortID srcport  = // ID of source point process
EntityID deste  = // dest entity
PortID destport = // ID of dest point process
connect( new GeneralProjection( srce, deste, 
              new NetConSrc(srcport, threshold), 
              new NetConDest(dstPort,delay,weight) ) ) );

Fred Howell