4. MOOSE Classes

MOOSE builtin classes and their fields are listed here.

4.1. Alphabetical listing of moose classes

class Adaptor
This is the adaptor class. It is used in interfacing different kinds of solver with each other, especially for electrical to chemical signeur models. The Adaptor class is the core of the API for interfacing between different solution engines. It is currently in use for interfacing between chemical and electrical simulations, but could be used for other cases such as mechanical models. The API for interfacing between solution engines rests on the following capabilities of MOOSE:
  1. The object-oriented interface with classes mapped to biological and modeling concepts such as electrical and chemical compartments, ion channels and molecular pools.

  2. The invisible mapping of Solvers (Objects implementing numerical engines) to the object-oriented interface. Solvers work behind the scenes to update the objects.

  3. The messaging interface which allows any visible field to be accessed and updated from any other object.

  4. The clock-based scheduler which drives operations of any subset of objects at any interval. For example, this permits the operations of field access and update to take place at quite different timescales from the numerical engines.

  5. The implementation of Adaptor classes. These perform a linear transformation::

    (y = scale * (x + inputOffset) + outputOffset )

    where y is output and x is the input. The input is the average of any number of sources (through messages) and any number of timesteps. The output goes to any number of targets, again through messages.

It is worth adding that messages can transport arbitrary data structures, so it would also be possible to devise a complicated opaque message directly between solvers. The implementation of Adaptors working on visible fields does this much more transparently and gives the user facile control over the scaling transformation. These adaptors are used especially in the rdesigneur framework of MOOSE, which enables multiscale reaction-diffusion and electrical signaling models.

As an example of this API in operation, I consider two mappings:
  1. Calcium mapped from electrical to chemical computations.
  2. phosphorylation state of a channel mapped to the channel conductance.
  1. Calcium mapping.

    Problem statement. Calcium is computed in the electrical solver as one or more pools that are fed by calcium currents, and is removed by an exponential decay process. This calcium pool is non-diffusive in the current electrical solver. It has to be mapped to chemical calcium pools at a different spatial discretization, which do diffuse.

    In terms of the list of capabilities described above, this is how the API works.
    1. The electrical model is partitioned into a number of electrical compartments, some of which have the ‘electrical’ calcium pool as child object in a UNIX filesystem-like tree. Thus the ‘electrical’ calcium is represented as an object with concentration, location and so on.

    2. The Solver computes the time-course of evolution of the calcium concentration. Whenever any function queries the ‘concentration’ field of the calcium object, the Solver provides this value.

    3. Messaging couples the ‘electrical’ calcium pool concentration to the adaptor (see point 5). This can either be a ‘push’ operation, where the solver pushes out the calcium value at its internal update rate, or a ‘pull’ operation where the adaptor requests the calcium concentration.

    4. The clock-based scheduler keeps the electrical and chemical solvers ticking away, but it also can drive the operations of the adaptor. Thus the rate of updates to and from the adaptor can be controlled.

    5. The adaptor averages its inputs. Say the electrical solver is going at a timestep of 50 usec, and the chemical solver at 5000 usec. The adaptor will take 100 samples of the electrical concentration, and average them to compute the ‘input’ to the linear scaling. Suppose that the electrical model has calcium units of micromolar, but has a zero baseline. The chemical model has units of millimolar and a baseline of 1e-4 millimolar. This gives:

      y = 0.001x + 1e-4

      At the end of this calculation, the adaptor will typically ‘push’ its output to the chemical solver. Here we have similar situation to item (1), where the chemical entities are calcium pools in space, each with their own calcium concentration. The messaging (3) determines another aspect of the mapping here: the fan in or fan out. In this case, a single electrical compartment may house 10 chemical compartments. Then the output message from the adaptor goes to update the calcium pool concentration on the appropriate 10 objects representing calcium in each of the compartments.

    In much the same manner, the phosphorylation state can regulate channel properties. 1. The chemical model contains spatially distributed chemical pools that represent the unphosphorylated state of the channel, which in this example is the conducting form. This concentration of this unphosphorylated state is affected by the various reaction- diffusion events handled by the chemical solver, below. 2. The chemical solver updates the concentrations of the pool objects as per reaction-diffusion calculations. 3. Messaging couples these concentration terms to the adaptor. In this case we have many chemical pool objects for every electrical compartment. There would be a single adaptor for each electrical compartment, and it would average all the input values for calcium concentration, one for each mesh point in the chemical calculation. As before, the access to these fields could be through a ‘push’ or a ‘pull’ operation. 4. The clock-based scheduler oeperates as above. 5. The adaptor averages the spatially distributed inputs from calcium, and now does a different linear transform. In this case it converts chemical concentration into the channel conductance. As before, the ‘electrical’ channel is an object (point 1) with a field for conductance, and this term is mapped into the internal data structures of the solver (point 2) invisibly to the user.

proc

void (shared message field) This is a shared message to receive Process message from the scheduler.

setInputOffset()

(destination message field) Assigns field value.

getInputOffset()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setOutputOffset()

(destination message field) Assigns field value.

getOutputOffset()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setScale()

(destination message field) Assigns field value.

getScale()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getOutputValue()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

input()

(destination message field) Input message to the adaptor. If multiple inputs are received, the system averages the inputs.

process()

(destination message field) Handles ‘process’ call

reinit()

(destination message field) Handles ‘reinit’ call

output

double (source message field) Sends the output value every timestep.

requestOut

PSt6vectorIdSaIdEE (source message field) Sends out a request to a field with a double or array of doubles. Issued from the process call.Works for any number of targets.

inputOffset

double (value field) Offset to apply to input message, before scaling

outputOffset

double (value field) Offset to apply at output, after scaling

scale

double (value field) Scaling factor to apply to input

outputValue

double (value field) This is the linearly transformed output.

class Annotator
setX()

(destination message field) Assigns field value.

getX()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setY()

(destination message field) Assigns field value.

getY()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setZ()

(destination message field) Assigns field value.

getZ()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setNotes()

(destination message field) Assigns field value.

getNotes()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setColor()

(destination message field) Assigns field value.

getColor()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setTextColor()

(destination message field) Assigns field value.

getTextColor()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setIcon()

(destination message field) Assigns field value.

getIcon()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

x

double (value field) x field. Typically display coordinate x

y

double (value field) y field. Typically display coordinate y

z

double (value field) z field. Typically display coordinate z

notes

string (value field) A string to hold some text notes about parent object

color

string (value field) A string to hold a text string specifying display color.Can be a regular English color name, or an rgb code rrrgggbbb

textColor

string (value field) A string to hold a text string specifying color for text labelthat might be on the display for this object.Can be a regular English color name, or an rgb code rrrgggbbb

icon

string (value field) A string to specify icon to use for display

class Arith
proc

void (shared message field) Shared message for process and reinit

setFunction()

(destination message field) Assigns field value.

getFunction()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setOutputValue()

(destination message field) Assigns field value.

getOutputValue()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getArg1Value()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setAnyValue()

(destination message field) Assigns field value.

getAnyValue()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

arg1()

(destination message field) Handles argument 1. This just assigns it

arg2()

(destination message field) Handles argument 2. This just assigns it

arg3()

(destination message field) Handles argument 3. This sums in each input, and clears each clock tick.

arg1x2()

(destination message field) Store the product of the two arguments in output_

process()

(destination message field) Handles process call

reinit()

(destination message field) Handles reinit call

output

double (source message field) Sends out the computed value

function

string (value field) Arithmetic function to perform on inputs.

outputValue

double (value field) Value of output as computed last timestep.

arg1Value

double (value field) Value of arg1 as computed last timestep.

anyValue

unsigned int,double (lookup field) Value of any of the internal fields, output, arg1, arg2, arg3,as specified by the index argument from 0 to 3.

class BufPool
class CaConc

CaConc: Calcium concentration pool. Takes current from a channel and keeps track of calcium buildup and depletion by a single exponential process.

class CaConcBase

CaConcBase: Base class for Calcium concentration pool. Takes current from a channel and keeps track of calcium buildup and depletion by a single exponential process.

proc

void (shared message field) Shared message to receive Process message from scheduler

process()

(destination message field) Handles process call

reinit()

(destination message field) Handles reinit call

setCa()

(destination message field) Assigns field value.

getCa()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setCaBasal()

(destination message field) Assigns field value.

getCaBasal()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setCa_base()

(destination message field) Assigns field value.

getCa_base()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setTau()

(destination message field) Assigns field value.

getTau()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setB()

(destination message field) Assigns field value.

getB()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setThick()

(destination message field) Assigns field value.

getThick()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setCeiling()

(destination message field) Assigns field value.

getCeiling()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setFloor()

(destination message field) Assigns field value.

getFloor()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

current()

(destination message field) Calcium Ion current, due to be converted to conc.

currentFraction()

(destination message field) Fraction of total Ion current, that is carried by Ca2+.

increase()

(destination message field) Any input current that increases the concentration.

decrease()

(destination message field) Any input current that decreases the concentration.

basal()

(destination message field) Synonym for assignment of basal conc.

concOut

double (source message field) Concentration of Ca in pool

Ca

double (value field) Calcium concentration.

CaBasal

double (value field) Basal Calcium concentration.

Ca_base

double (value field) Basal Calcium concentration, synonym for CaBasal

tau

double (value field) Settling time for Ca concentration

B

double (value field) Volume scaling factor

thick

double (value field) Thickness of Ca shell.

ceiling

double (value field) Ceiling value for Ca concentration. If Ca > ceiling, Ca = ceiling. If ceiling <= 0.0, there is no upper limit on Ca concentration value.

floor

double (value field) Floor value for Ca concentration. If Ca < floor, Ca = floor

class ChanBase

ChanBase: Base class for assorted ion channels.Presents a common interface for all of them.

channel

void (shared message field) This is a shared message to couple channel to compartment. The first entry is a MsgSrc to send Gk and Ek to the compartment The second entry is a MsgDest for Vm from the compartment.

ghk

void (shared message field) Message to Goldman-Hodgkin-Katz object

proc

void (shared message field) Shared message to receive Process message from scheduler

Vm()

(destination message field) Handles Vm message coming in from compartment

Vm()

(destination message field) Handles Vm message coming in from compartment

setGbar()

(destination message field) Assigns field value.

getGbar()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setEk()

(destination message field) Assigns field value.

getEk()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setGk()

(destination message field) Assigns field value.

getGk()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getIk()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

process()

(destination message field) Handles process call

reinit()

(destination message field) Handles reinit call

channelOut

double,double (source message field) Sends channel variables Gk and Ek to compartment

permeabilityOut

double (source message field) Conductance term going out to GHK object

IkOut

double (source message field) Channel current. This message typically goes to concenobjects that keep track of ion concentration.

Gbar

double (value field) Maximal channel conductance

Ek

double (value field) Reversal potential of channel

Gk

double (value field) Channel conductance variable

Ik

double (value field) Channel current variable

class ChemCompt

Pure virtual base class for chemical compartments

setVolume()

(destination message field) Assigns field value.

getVolume()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getVoxelVolume()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getVoxelMidpoint()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getOneVoxelVolume()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getNumDimensions()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getStencilRate()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getStencilIndex()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

buildDefaultMesh()

(destination message field) Tells ChemCompt derived class to build a default mesh with thespecified volume and number of meshEntries.

setVolumeNotRates()

(destination message field) Changes volume but does not notify any child objects.Only works if the ChemCompt has just one voxel.This function will invalidate any concentration term inthe model. If you don’t know why you would want to do this,then you shouldn’t use this function.

resetStencil()

(destination message field) Resets the diffusion stencil to the core stencil that only includes the within-mesh diffusion. This is needed prior to building up the cross-mesh diffusion through junctions.

setNumMesh()

(destination message field) Assigns number of field entries in field array.

getNumMesh()

(destination message field) Requests number of field entries in field array.The requesting Element must provide a handler for the returned value.

voxelVolOut

vector<double> (source message field) Sends updated voxel volume out to Ksolve, Gsolve, and Dsolve.Used to request a recalculation of rates and of initial numbers.

volume

double (value field) Volume of entire chemical domain.Assigning this only works if the chemical compartment hasonly a single voxel. Otherwise ignored.This function goes through all objects below this on thetree, and rescales their molecule #s and rates as per thevolume change. This keeps concentration the same, and alsomaintains rates as expressed in volume units.

voxelVolume

vector<double> (value field) Vector of volumes of each of the voxels.

voxelMidpoint

vector<double> (value field) Vector of midpoint coordinates of each of the voxels. The size of this vector is 3N, where N is the number of voxels. The first N entries are for x, next N for y, last N are z.

numDimensions

unsigned int (value field) Number of spatial dimensions of this compartment. Usually 3 or 2

oneVoxelVolume

unsigned int,double (lookup field) Volume of specified voxel.

stencilRate

unsigned int,vector<double> (lookup field) vector of diffusion rates in the stencil for specified voxel.The identity of the coupled voxels is given by the partner field ‘stencilIndex’.Returns an empty vector for non-voxelized compartments.

stencilIndex

unsigned int,vector<unsigned int> (lookup field) vector of voxels diffusively coupled to the specified voxel.The diffusion rates into the coupled voxels is given by the partner field ‘stencilRate’.Returns an empty vector for non-voxelized compartments.

class Cinfo

Class information object.

getDocs()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getBaseClass()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

docs

string (value field) Documentation

baseClass

string (value field) Name of base class

class Clock

Clock: Clock class. Handles sequencing of operations in simulations.Every object scheduled for operations in MOOSE is connected to oneof the ‘Tick’ entries on the Clock. The Clock manages 32 ‘Ticks’, each of which has its own dt,which is an integral multiple of the clock baseDt_. On every clock step the ticks are examined to see which of themis due for updating. When a tick is updated, the ‘process’ call of all the objects scheduled on that tick is called. Order of execution: If a subset of ticks are scheduled for execution at a given timestep, then they will be executed in numerical order, lowest tick first and highest last. There is no guarantee of execution order for objects within a clock tick. The clock provides default scheduling for all objects which can be accessed using Clock::lookupDefaultTick( className ). Specific items of note are that the output/file dump objects are second-last, and the postmaster is last on the order of Ticks. The clock also starts up with some default timesteps for each of these ticks, and this can be overridden using the shell command setClock, or by directly assigning tickStep values on the clock object. Which objects use which tick? As a rule of thumb, try this: Electrical/compartmental model calculations: Ticks 0-7 Tables and output objects for electrical output: Tick 8 Diffusion solver: Tick 10 Chemical/compartmental model calculations: Ticks 11-17 Tables and output objects for chemical output: Tick 18 Unassigned: Ticks 20-29 Special: 30-31 Data output is a bit special, since you may want to store data at different rates for electrical and chemical processes in the same model. Here you will have to specifically assign distinct clock ticks for the tables/fileIO objects handling output at different time-resolutions. Typically one uses tick 8 and 18. Here are the detailed mappings of class to tick.

Class Tick dt DiffAmp 0 50e-6 Interpol 0 50e-6 PIDController 0 50e-6 PulseGen 0 50e-6 StimulusTable 0 50e-6 testSched 0 50e-6 VClamp 0 50e-6 SynHandlerBase 1 50e-6 SimpleSynHandler 1 50e-6 CaConc 1 50e-6 CaConcBase 1 50e-6 DifShell 1 50e-6 MgBlock 1 50e-6 Nernst 1 50e-6 RandSpike 1 50e-6 ChanBase 2 50e-6 IntFire 2 50e-6 IntFireBase 2 50e-6 LIF 2 50e-6 IzhikevichNrn 2 50e-6 SynChan 2 50e-6 GapJunction 2 50e-6 HHChannel 2 50e-6 HHChannel2D 2 50e-6 Leakage 2 50e-6 MarkovChannel 2 50e-6 MarkovGslSolver 2 50e-6 MarkovRateTable 2 50e-6 MarkovSolver 2 50e-6 MarkovSolverBase 2 50e-6 RC 2 50e-6 Compartment (init) 3 50e-6 CompartmentBase (init ) 3 50e-6 SymCompartment (init) 3 50e-6 Compartment 4 50e-6 CompartmentBase 4 50e-6 SymCompartment 4 50e-6 SpikeGen 5 50e-6 HSolve 6 50e-6 SpikeStats 7 50e-6 Dsolve 10 0.01 Adaptor 11 0.1 Func 12 0.1 Function 12 0.1 Arith 12 0.1 FuncBase 12 0.1 FuncPool 12 0.1 MathFunc 12 0.1 SumFunc 12 0.1 BufPool 13 0.1 Pool 13 0.1 PoolBase 13 0.1 CplxEnzBase 14 0.1 Enz 14 0.1 EnzBase 14 0.1 MMenz 14 0.1 Reac 14 0.1 ReacBase 14 0.1 Gsolve (init) 15 0.1 Ksolve (init) 15 0.1 Gsolve 16 0.1 Ksolve 16 0.1 Stats 17 1 Table 18 1 TimeTable 18 1 HDF5DataWriter 30 1 HDF5WriterBase 30 1 PostMaster 31 0.01

Note that the other classes are not scheduled at all.

clockControl

void (shared message field) Controls all scheduling aspects of Clock, usually from Shell

proc0

void (shared message field) Shared process/reinit message

proc1

void (shared message field) Shared process/reinit message

proc2

void (shared message field) Shared process/reinit message

proc3

void (shared message field) Shared process/reinit message

proc4

void (shared message field) Shared process/reinit message

proc5

void (shared message field) Shared process/reinit message

proc6

void (shared message field) Shared process/reinit message

proc7

void (shared message field) Shared process/reinit message

proc8

void (shared message field) Shared process/reinit message

proc9

void (shared message field) Shared process/reinit message

proc10

void (shared message field) Shared process/reinit message

proc11

void (shared message field) Shared process/reinit message

proc12

void (shared message field) Shared process/reinit message

proc13

void (shared message field) Shared process/reinit message

proc14

void (shared message field) Shared process/reinit message

proc15

void (shared message field) Shared process/reinit message

proc16

void (shared message field) Shared process/reinit message

proc17

void (shared message field) Shared process/reinit message

proc18

void (shared message field) Shared process/reinit message

proc19

void (shared message field) Shared process/reinit message

proc20

void (shared message field) Shared process/reinit message

proc21

void (shared message field) Shared process/reinit message

proc22

void (shared message field) Shared process/reinit message

proc23

void (shared message field) Shared process/reinit message

proc24

void (shared message field) Shared process/reinit message

proc25

void (shared message field) Shared process/reinit message

proc26

void (shared message field) Shared process/reinit message

proc27

void (shared message field) Shared process/reinit message

proc28

void (shared message field) Shared process/reinit message

proc29

void (shared message field) Shared process/reinit message

proc30

void (shared message field) Shared process/reinit message

proc31

void (shared message field) Shared process/reinit message

setBaseDt()

(destination message field) Assigns field value.

getBaseDt()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getRunTime()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getCurrentTime()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getNsteps()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getNumTicks()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getCurrentStep()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getDts()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getIsRunning()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setTickStep()

(destination message field) Assigns field value.

getTickStep()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setTickDt()

(destination message field) Assigns field value.

getTickDt()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

start()

(destination message field) Sets off the simulation for the specified duration

step()

(destination message field) Sets off the simulation for the specified # of steps

stop()

(destination message field) Halts the simulation, with option to restart seamlessly

reinit()

(destination message field) Zeroes out all ticks, starts at t = 0

finished

void (source message field) Signal for completion of run

process0

PK8ProcInfo (source message field) process for Tick 0

reinit0

PK8ProcInfo (source message field) reinit for Tick 0

process1

PK8ProcInfo (source message field) process for Tick 1

reinit1

PK8ProcInfo (source message field) reinit for Tick 1

process2

PK8ProcInfo (source message field) process for Tick 2

reinit2

PK8ProcInfo (source message field) reinit for Tick 2

process3

PK8ProcInfo (source message field) process for Tick 3

reinit3

PK8ProcInfo (source message field) reinit for Tick 3

process4

PK8ProcInfo (source message field) process for Tick 4

reinit4

PK8ProcInfo (source message field) reinit for Tick 4

process5

PK8ProcInfo (source message field) process for Tick 5

reinit5

PK8ProcInfo (source message field) reinit for Tick 5

process6

PK8ProcInfo (source message field) process for Tick 6

reinit6

PK8ProcInfo (source message field) reinit for Tick 6

process7

PK8ProcInfo (source message field) process for Tick 7

reinit7

PK8ProcInfo (source message field) reinit for Tick 7

process8

PK8ProcInfo (source message field) process for Tick 8

reinit8

PK8ProcInfo (source message field) reinit for Tick 8

process9

PK8ProcInfo (source message field) process for Tick 9

reinit9

PK8ProcInfo (source message field) reinit for Tick 9

process10

PK8ProcInfo (source message field) process for Tick 10

reinit10

PK8ProcInfo (source message field) reinit for Tick 10

process11

PK8ProcInfo (source message field) process for Tick 11

reinit11

PK8ProcInfo (source message field) reinit for Tick 11

process12

PK8ProcInfo (source message field) process for Tick 12

reinit12

PK8ProcInfo (source message field) reinit for Tick 12

process13

PK8ProcInfo (source message field) process for Tick 13

reinit13

PK8ProcInfo (source message field) reinit for Tick 13

process14

PK8ProcInfo (source message field) process for Tick 14

reinit14

PK8ProcInfo (source message field) reinit for Tick 14

process15

PK8ProcInfo (source message field) process for Tick 15

reinit15

PK8ProcInfo (source message field) reinit for Tick 15

process16

PK8ProcInfo (source message field) process for Tick 16

reinit16

PK8ProcInfo (source message field) reinit for Tick 16

process17

PK8ProcInfo (source message field) process for Tick 17

reinit17

PK8ProcInfo (source message field) reinit for Tick 17

process18

PK8ProcInfo (source message field) process for Tick 18

reinit18

PK8ProcInfo (source message field) reinit for Tick 18

process19

PK8ProcInfo (source message field) process for Tick 19

reinit19

PK8ProcInfo (source message field) reinit for Tick 19

process20

PK8ProcInfo (source message field) process for Tick 20

reinit20

PK8ProcInfo (source message field) reinit for Tick 20

process21

PK8ProcInfo (source message field) process for Tick 21

reinit21

PK8ProcInfo (source message field) reinit for Tick 21

process22

PK8ProcInfo (source message field) process for Tick 22

reinit22

PK8ProcInfo (source message field) reinit for Tick 22

process23

PK8ProcInfo (source message field) process for Tick 23

reinit23

PK8ProcInfo (source message field) reinit for Tick 23

process24

PK8ProcInfo (source message field) process for Tick 24

reinit24

PK8ProcInfo (source message field) reinit for Tick 24

process25

PK8ProcInfo (source message field) process for Tick 25

reinit25

PK8ProcInfo (source message field) reinit for Tick 25

process26

PK8ProcInfo (source message field) process for Tick 26

reinit26

PK8ProcInfo (source message field) reinit for Tick 26

process27

PK8ProcInfo (source message field) process for Tick 27

reinit27

PK8ProcInfo (source message field) reinit for Tick 27

process28

PK8ProcInfo (source message field) process for Tick 28

reinit28

PK8ProcInfo (source message field) reinit for Tick 28

process29

PK8ProcInfo (source message field) process for Tick 29

reinit29

PK8ProcInfo (source message field) reinit for Tick 29

process30

PK8ProcInfo (source message field) process for Tick 30

reinit30

PK8ProcInfo (source message field) reinit for Tick 30

process31

PK8ProcInfo (source message field) process for Tick 31

reinit31

PK8ProcInfo (source message field) reinit for Tick 31

baseDt

double (value field) Base timestep for simulation. This is the smallest dt out of all the clock ticks. By definition all other timesteps are integral multiples of this, and are rounded to ensure that this is the case .

runTime

double (value field) Duration to run the simulation

currentTime

double (value field) Current simulation time

nsteps

unsigned int (value field) Number of steps to advance the simulation, in units of the smallest timestep on the clock ticks

numTicks

unsigned int (value field) Number of clock ticks

currentStep

unsigned int (value field) Current simulation step

dts

vector<double> (value field) Utility function returning the dt (timestep) of all ticks.

isRunning

bool (value field) Utility function to report if simulation is in progress.

tickStep

unsigned int,unsigned int (lookup field) Step size of specified Tick, as integral multiple of dt_ A zero step size means that the Tick is inactive

tickDt

unsigned int,double (lookup field) Timestep dt of specified Tick. Always integral multiple of dt_. If you assign a non-integer multiple it will round off. A zero timestep means that the Tick is inactive

class Compartment

Compartment object, for branching neuron models.

class CompartmentBase

CompartmentBase object, for branching neuron models.

proc

void (shared message field) This is a shared message to receive Process messages from the scheduler objects. The Process should be called second in each clock tick, after the Init message.The first entry in the shared msg is a MsgDest for the Process operation. It has a single argument, ProcInfo, which holds lots of information about current time, thread, dt and so on. The second entry is a MsgDest for the Reinit operation. It also uses ProcInfo.

init

void (shared message field) This is a shared message to receive Init messages from the scheduler objects. Its job is to separate the compartmental calculations from the message passing. It doesn’t really need to be shared, as it does not use the reinit part, but the scheduler objects expect this form of message for all scheduled output. The first entry is a MsgDest for the Process operation. It has a single argument, ProcInfo, which holds lots of information about current time, thread, dt and so on. The second entry is a dummy MsgDest for the Reinit operation. It also uses ProcInfo.

channel

void (shared message field) This is a shared message from a compartment to channels. The first entry is a MsgDest for the info coming from the channel. It expects Gk and Ek from the channel as args. The second entry is a MsgSrc sending Vm

axial

void (shared message field) This is a shared message between asymmetric compartments. axial messages (this kind) connect up to raxial messages (defined below). The soma should use raxial messages to connect to the axial message of all the immediately adjacent dendritic compartments.This puts the (low) somatic resistance in series with these dendrites. Dendrites should then use raxial messages toconnect on to more distal dendrites. In other words, raxial messages should face outward from the soma. The first entry is a MsgSrc sending Vm to the axialFuncof the target compartment. The second entry is a MsgDest for the info coming from the other compt. It expects Ra and Vm from the other compt as args. Note that the message is named after the source type.

raxial

void (shared message field) This is a raxial shared message between asymmetric compartments. The first entry is a MsgDest for the info coming from the other compt. It expects Vm from the other compt as an arg. The second is a MsgSrc sending Ra and Vm to the raxialFunc of the target compartment.

setVm()

(destination message field) Assigns field value.

getVm()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setCm()

(destination message field) Assigns field value.

getCm()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setEm()

(destination message field) Assigns field value.

getEm()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getIm()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setInject()

(destination message field) Assigns field value.

getInject()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setInitVm()

(destination message field) Assigns field value.

getInitVm()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setRm()

(destination message field) Assigns field value.

getRm()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setRa()

(destination message field) Assigns field value.

getRa()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setDiameter()

(destination message field) Assigns field value.

getDiameter()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setLength()

(destination message field) Assigns field value.

getLength()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setX0()

(destination message field) Assigns field value.

getX0()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setY0()

(destination message field) Assigns field value.

getY0()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setZ0()

(destination message field) Assigns field value.

getZ0()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setX()

(destination message field) Assigns field value.

getX()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setY()

(destination message field) Assigns field value.

getY()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setZ()

(destination message field) Assigns field value.

getZ()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

injectMsg()

(destination message field) The injectMsg corresponds to the INJECT message in the GENESIS compartment. Unlike the ‘inject’ field, any value assigned by handleInject applies only for a single timestep.So it needs to be updated every dt for a steady (or varying)injection current

randInject()

(destination message field) Sends a random injection current to the compartment. Must beupdated each timestep.Arguments to randInject are probability and current.

injectMsg()

(destination message field) The injectMsg corresponds to the INJECT message in the GENESIS compartment. Unlike the ‘inject’ field, any value assigned by handleInject applies only for a single timestep.So it needs to be updated every dt for a steady (or varying)injection current

cable()

(destination message field) Message for organizing compartments into groups, calledcables. Doesn’t do anything.

process()

(destination message field) Handles ‘process’ call

reinit()

(destination message field) Handles ‘reinit’ call

initProc()

(destination message field) Handles Process call for the ‘init’ phase of the CompartmentBase calculations. These occur as a separate Tick cycle from the regular proc cycle, and should be called before the proc msg.

initReinit()

(destination message field) Handles Reinit call for the ‘init’ phase of the CompartmentBase calculations.

handleChannel()

(destination message field) Handles conductance and Reversal potential arguments from Channel

handleRaxial()

(destination message field) Handles Raxial info: arguments are Ra and Vm.

handleAxial()

(destination message field) Handles Axial information. Argument is just Vm.

VmOut

double (source message field) Sends out Vm value of compartment on each timestep

axialOut

double (source message field) Sends out Vm value of compartment to adjacent compartments,on each timestep

raxialOut

double,double (source message field) Sends out Raxial information on each timestep, fields are Ra and Vm

Vm

double (value field) membrane potential

Cm

double (value field) Membrane capacitance

Em

double (value field) Resting membrane potential

Im

double (value field) Current going through membrane

inject

double (value field) Current injection to deliver into compartment

initVm

double (value field) Initial value for membrane potential

Rm

double (value field) Membrane resistance

Ra

double (value field) Axial resistance of compartment

diameter

double (value field) Diameter of compartment

length

double (value field) Length of compartment

x0

double (value field) X coordinate of start of compartment

y0

double (value field) Y coordinate of start of compartment

z0

double (value field) Z coordinate of start of compartment

x

double (value field) x coordinate of end of compartment

y

double (value field) y coordinate of end of compartment

z

double (value field) z coordinate of end of compartment

class CplxEnzBase

: Base class for mass-action enzymes in which there is an explicit pool for the enzyme-substrate complex. It models the reaction: E + S <===> E.S —-> E + P

enz

void (shared message field) Connects to enzyme pool

cplx

void (shared message field) Connects to enz-sub complex pool

setK1()

(destination message field) Assigns field value.

getK1()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setK2()

(destination message field) Assigns field value.

getK2()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setK3()

(destination message field) Assigns field value.

getK3()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setRatio()

(destination message field) Assigns field value.

getRatio()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setConcK1()

(destination message field) Assigns field value.

getConcK1()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

enzDest()

(destination message field) Handles # of molecules of Enzyme

cplxDest()

(destination message field) Handles # of molecules of enz-sub complex

enzOut

double,double (source message field) Sends out increment of molecules on product each timestep

cplxOut

double,double (source message field) Sends out increment of molecules on product each timestep

k1

double (value field) Forward reaction from enz + sub to complex, in # units.This parameter is subordinate to the Km. This means thatwhen Km is changed, this changes. It also means that whenk2 or k3 (aka kcat) are changed, we assume that Km remainsfixed, and as a result k1 must change. It is only whenk1 is assigned directly that we assume that the user knowswhat they are doing, and we adjust Km accordingly.k1 is also subordinate to the ‘ratio’ field, since setting the ratio reassigns k2.Should you wish to assign the elementary rates k1, k2, k3,of an enzyme directly, always assign k1 last.

k2

double (value field) Reverse reaction from complex to enz + sub

k3

double (value field) Forward rate constant from complex to product + enz

ratio

double (value field) Ratio of k2/k3

concK1

double (value field) K1 expressed in concentration (1/millimolar.sec) unitsThis parameter is subordinate to the Km. This means thatwhen Km is changed, this changes. It also means that whenk2 or k3 (aka kcat) are changed, we assume that Km remainsfixed, and as a result concK1 must change. It is only whenconcK1 is assigned directly that we assume that the user knowswhat they are doing, and we adjust Km accordingly.concK1 is also subordinate to the ‘ratio’ field, sincesetting the ratio reassigns k2.Should you wish to assign the elementary rates concK1, k2, k3,of an enzyme directly, always assign concK1 last.

class CubeMesh
setIsToroid()

(destination message field) Assigns field value.

getIsToroid()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setPreserveNumEntries()

(destination message field) Assigns field value.

getPreserveNumEntries()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setAlwaysDiffuse()

(destination message field) Assigns field value.

getAlwaysDiffuse()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setX0()

(destination message field) Assigns field value.

getX0()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setY0()

(destination message field) Assigns field value.

getY0()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setZ0()

(destination message field) Assigns field value.

getZ0()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setX1()

(destination message field) Assigns field value.

getX1()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setY1()

(destination message field) Assigns field value.

getY1()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setZ1()

(destination message field) Assigns field value.

getZ1()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setDx()

(destination message field) Assigns field value.

getDx()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setDy()

(destination message field) Assigns field value.

getDy()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setDz()

(destination message field) Assigns field value.

getDz()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setNx()

(destination message field) Assigns field value.

getNx()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setNy()

(destination message field) Assigns field value.

getNy()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setNz()

(destination message field) Assigns field value.

getNz()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setCoords()

(destination message field) Assigns field value.

getCoords()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setMeshToSpace()

(destination message field) Assigns field value.

getMeshToSpace()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setSpaceToMesh()

(destination message field) Assigns field value.

getSpaceToMesh()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setSurface()

(destination message field) Assigns field value.

getSurface()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

isToroid

bool (value field) Flag. True when the mesh should be toroidal, that is,when going beyond the right face brings us around to theleft-most mesh entry, and so on. If we have nx, ny, nzentries, this rule means that the coordinate (x, ny, z)will map onto (x, 0, z). Similarly,(-1, y, z) -> (nx-1, y, z)Default is false

preserveNumEntries

bool (value field) Flag. When it is true, the numbers nx, ny, nz remainunchanged when x0, x1, y0, y1, z0, z1 are altered. Thusdx, dy, dz would change instead. When it is false, thendx, dy, dz remain the same and nx, ny, nz are altered.Default is true

alwaysDiffuse

bool (value field) Flag. When it is true, the mesh matches up sequential mesh entries for diffusion and chmestry. This is regardless of spatial location, and is guaranteed to set up at least the home reaction systemDefault is false

x0

double (value field) X coord of one end

y0

double (value field) Y coord of one end

z0

double (value field) Z coord of one end

x1

double (value field) X coord of other end

y1

double (value field) Y coord of other end

z1

double (value field) Z coord of other end

dx

double (value field) X size for mesh

dy

double (value field) Y size for mesh

dz

double (value field) Z size for mesh

nx

unsigned int (value field) Number of subdivisions in mesh in X

ny

unsigned int (value field) Number of subdivisions in mesh in Y

nz

unsigned int (value field) Number of subdivisions in mesh in Z

coords

vector<double> (value field) Set all the coords of the cuboid at once. Order is:x0 y0 z0 x1 y1 z1 dx dy dzWhen this is done, it recalculates the numEntries since dx, dy and dz are given explicitly.As a special hack, you can leave out dx, dy and dz and use a vector of size 6. In this case the operation assumes that nx, ny and nz are to be preserved and dx, dy and dz will be recalculated.

meshToSpace

vector<unsigned int> (value field) Array in which each mesh entry stores spatial (cubic) index

spaceToMesh

vector<unsigned int> (value field) Array in which each space index (obtained by linearizing the xyz coords) specifies which meshIndex is present.In many cases the index will store the EMPTY flag if there isno mesh entry at that spatial location

surface

vector<unsigned int> (value field) Array specifying surface of arbitrary volume within the CubeMesh. All entries must fall within the cuboid. Each entry of the array is a spatial index obtained by linearizing the ix, iy, iz coordinates within the cuboid. So, each entry == ( iz * ny + iy ) * nx + ixNote that the voxels listed on the surface are WITHIN the volume of the CubeMesh object

class CylMesh
setX0()

(destination message field) Assigns field value.

getX0()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setY0()

(destination message field) Assigns field value.

getY0()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setZ0()

(destination message field) Assigns field value.

getZ0()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setR0()

(destination message field) Assigns field value.

getR0()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setX1()

(destination message field) Assigns field value.

getX1()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setY1()

(destination message field) Assigns field value.

getY1()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setZ1()

(destination message field) Assigns field value.

getZ1()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setR1()

(destination message field) Assigns field value.

getR1()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setDiffLength()

(destination message field) Assigns field value.

getDiffLength()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setCoords()

(destination message field) Assigns field value.

getCoords()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getNumDiffCompts()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getTotLength()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

x0

double (value field) x coord of one end

y0

double (value field) y coord of one end

z0

double (value field) z coord of one end

r0

double (value field) Radius of one end

x1

double (value field) x coord of other end

y1

double (value field) y coord of other end

z1

double (value field) z coord of other end

r1

double (value field) Radius of other end

diffLength

double (value field) Length constant to use for subdivisionsThe system will attempt to subdivide using compartments oflength diffLength on average. If the cylinder has different enddiameters r0 and r1, it will scale to smaller lengthsfor the smaller diameter end and vice versa.Once the value is set it will recompute diffLength as totLength/numEntries

coords

vector<double> (value field) All the coords as a single vector: x0 y0 z0 x1 y1 z1 r0 r1 diffLength

numDiffCompts

unsigned int (value field) Number of diffusive compartments in model

totLength

double (value field) Total length of cylinder

class DiagonalMsg
setStride()

(destination message field) Assigns field value.

getStride()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

stride

int (value field) The stride is the increment to the src DataId that gives thedest DataId. It can be positive or negative, but bounds checkingtakes place and it does not wrap around.

class DifShell

DifShell object: Models diffusion of an ion (typically calcium) within an electric compartment. A DifShell is an iso-concentration region with respect to the ion. Adjoining DifShells exchange flux of this ion, and also keep track of changes in concentration due to pumping, buffering and channel currents, by talking to the appropriate objects.

process_0

void (shared message field) Here we create 2 shared finfos to attach with the Ticks. This is because we want to perform DifShell computations in 2 stages, much as in the Compartment object. In the first stage we send out the concentration value to other DifShells and Buffer elements. We also receive fluxes and currents and sum them up to compute ( dC / dt ). In the second stage we find the new C value using an explicit integration method. This 2-stage procedure eliminates the need to store and send prev_C values, as was common in GENESIS.

process_1

void (shared message field) Second process call

buffer

void (shared message field) This is a shared message from a DifShell to a Buffer (FixBuffer or DifBuffer). During stage 0:

* DifShell sends ion concentration
* Buffer updates buffer concentration and sends it back immediately using a call-back.
* DifShell updates the time-derivative ( dC / dt )
During stage 1:
  • DifShell advances concentration C

This scheme means that the Buffer does not need to be scheduled, and it does its computations when it receives a cue from the DifShell. May not be the best idea, but it saves us from doing the above computations in 3 stages instead of 2.

innerDif

void (shared message field) This shared message (and the next) is between DifShells: adjoining shells exchange information to find out the flux between them. Using this message, an inner shell sends to, and receives from its outer shell.

outerDif

void (shared message field) Using this message, an outer shell sends to, and receives from its inner shell.

getC()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setCeq()

(destination message field) Assigns field value.

getCeq()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setD()

(destination message field) Assigns field value.

getD()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setValence()

(destination message field) Assigns field value.

getValence()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setLeak()

(destination message field) Assigns field value.

getLeak()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setShapeMode()

(destination message field) Assigns field value.

getShapeMode()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setLength()

(destination message field) Assigns field value.

getLength()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setDiameter()

(destination message field) Assigns field value.

getDiameter()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setThickness()

(destination message field) Assigns field value.

getThickness()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setVolume()

(destination message field) Assigns field value.

getVolume()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setOuterArea()

(destination message field) Assigns field value.

getOuterArea()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setInnerArea()

(destination message field) Assigns field value.

getInnerArea()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

process()

(destination message field) Handles process call

reinit()

(destination message field) Reinit happens only in stage 0

process()

(destination message field) Handle process call

reinit()

(destination message field) Reinit happens only in stage 0

reaction()

(destination message field) Here the DifShell receives reaction rates (forward and backward), and concentrations for the free-buffer and bound-buffer molecules.

fluxFromOut()

(destination message field) Destination message

fluxFromIn()

(destination message field)

influx()

(destination message field)

outflux()

(destination message field)

fInflux()

(destination message field)

fOutflux()

(destination message field)

storeInflux()

(destination message field)

storeOutflux()

(destination message field)

tauPump()

(destination message field)

eqTauPump()

(destination message field)

mmPump()

(destination message field)

hillPump()

(destination message field)

concentrationOut

double (source message field) Sends out concentration

innerDifSourceOut

double,double (source message field) Sends out source information.

outerDifSourceOut

double,double (source message field) Sends out source information.

C

double (value field) Concentration C is computed by the DifShell and is read-only

Ceq

double (value field)

D

double (value field)

valence

double (value field)

leak

double (value field)

shapeMode

unsigned int (value field)

length

double (value field)

diameter

double (value field)

thickness

double (value field)

volume

double (value field)

outerArea

double (value field)

innerArea

double (value field)

class DiffAmp

A difference amplifier. Output is the difference between the total plus inputs and the total minus inputs multiplied by gain. Gain can be set statically as a field or can be a destination message and thus dynamically determined by the output of another object. Same as GENESIS diffamp object.

proc

void (shared message field) This is a shared message to receive Process messages from the scheduler objects.The first entry in the shared msg is a MsgDest for the Process operation. It has a single argument, ProcInfo, which holds lots of information about current time, thread, dt and so on. The second entry is a MsgDest for the Reinit operation. It also uses ProcInfo.

setGain()

(destination message field) Assigns field value.

getGain()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setSaturation()

(destination message field) Assigns field value.

getSaturation()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getOutputValue()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

gainIn()

(destination message field) Destination message to control gain dynamically.

plusIn()

(destination message field) Positive input terminal of the amplifier. All the messages connected here are summed up to get total positive input.

minusIn()

(destination message field) Negative input terminal of the amplifier. All the messages connected here are summed up to get total positive input.

process()

(destination message field) Handles process call, updates internal time stamp.

reinit()

(destination message field) Handles reinit call.

output

double (source message field) Current output level.

gain

double (value field) Gain of the amplifier. The output of the amplifier is the difference between the totals in plus and minus inputs multiplied by the gain. Defaults to 1

saturation

double (value field) Saturation is the bound on the output. If output goes beyond the +/-saturation range, it is truncated to the closer of +saturation and -saturation. Defaults to the maximum double precision floating point number representable on the system.

outputValue

double (value field) Output of the amplifier, i.e. gain * (plus - minus).

class Dsolve
proc

void (shared message field) Shared message for process and reinit

setStoich()

(destination message field) Assigns field value.

getStoich()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setPath()

(destination message field) Assigns field value.

getPath()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setCompartment()

(destination message field) Assigns field value.

getCompartment()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getNumVoxels()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getNumAllVoxels()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setNVec()

(destination message field) Assigns field value.

getNVec()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setNumPools()

(destination message field) Assigns field value.

getNumPools()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

buildNeuroMeshJunctions()

(destination message field) Builds junctions between NeuroMesh, SpineMesh and PsdMesh

process()

(destination message field) Handles process call

reinit()

(destination message field) Handles reinit call

stoich

Id (value field) Stoichiometry object for handling this reaction system.

path

string (value field) Path of reaction system. Must include all the pools that are to be handled by the Dsolve, can also include other random objects, which will be ignored.

compartment

Id (value field) Reac-diff compartment in which this diffusion system is embedded.

numVoxels

unsigned int (value field) Number of voxels in the core reac-diff system, on the current diffusion solver.

numAllVoxels

unsigned int (value field) Number of voxels in the core reac-diff system, on the current diffusion solver.

numPools

unsigned int (value field) Number of molecular pools in the entire reac-diff system, including variable, function and buffered.

nVec

unsigned int,vector<double> (lookup field) vector of # of molecules along diffusion length, looked up by pool index

class Enz
class EnzBase

Abstract base class for enzymes.

sub

void (shared message field) Connects to substrate molecule

prd

void (shared message field) Connects to product molecule

proc

void (shared message field) Shared message for process and reinit

setKm()

(destination message field) Assigns field value.

getKm()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setNumKm()

(destination message field) Assigns field value.

getNumKm()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setKcat()

(destination message field) Assigns field value.

getKcat()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getNumSubstrates()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

enzDest()

(destination message field) Handles # of molecules of Enzyme

subDest()

(destination message field) Handles # of molecules of substrate

prdDest()

(destination message field) Handles # of molecules of product. Dummy.

process()

(destination message field) Handles process call

reinit()

(destination message field) Handles reinit call

remesh()

(destination message field) Tells the MMEnz to recompute its numKm after remeshing

subOut

double,double (source message field) Sends out increment of molecules on product each timestep

prdOut

double,double (source message field) Sends out increment of molecules on product each timestep

Km

double (value field) Michaelis-Menten constant in SI conc units (milliMolar)

numKm

double (value field) Michaelis-Menten constant in number units, volume dependent

kcat

double (value field) Forward rate constant for enzyme, units 1/sec

numSubstrates

unsigned int (value field) Number of substrates in this MM reaction. Usually 1.Does not include the enzyme itself

class Finfo
getFieldName()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getDocs()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getType()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getSrc()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getDest()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

fieldName

string (value field) Name of field handled by Finfo

docs

string (value field) Documentation for Finfo

type

string (value field) RTTI type info for this Finfo

src

vector<string> (value field) Subsidiary SrcFinfos. Useful for SharedFinfos

dest

vector<string> (value field) Subsidiary DestFinfos. Useful for SharedFinfos

class Func

Func: general purpose function calculator using real numbers. It can parse mathematical expression defining a function and evaluate it and/or its derivative for specified variable values. The variables can be input from other moose objects. In case of arbitrary variable names, the source message must have the variable name as the first argument. For most common cases, input messages to set x, y, z and xy, xyz are made available without such requirement. This class handles only real numbers (C-double). Predefined constants are: pi=3.141592..., e=2.718281...

proc

void (shared message field) This is a shared message to receive Process messages from the scheduler objects.The first entry in the shared msg is a MsgDest for the Process operation. It has a single argument, ProcInfo, which holds lots of information about current time, thread, dt and so on. The second entry is a MsgDest for the Reinit operation. It also uses ProcInfo.

getValue()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getDerivative()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setMode()

(destination message field) Assigns field value.

getMode()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setExpr()

(destination message field) Assigns field value.

getExpr()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setVar()

(destination message field) Assigns field value.

getVar()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getVars()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setX()

(destination message field) Assigns field value.

getX()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setY()

(destination message field) Assigns field value.

getY()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setZ()

(destination message field) Assigns field value.

getZ()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

varIn()

(destination message field) Handle value for specified variable coming from other objects

xIn()

(destination message field) Handle value for variable named x. This is a shorthand. If the expression does not have any variable named x, this the first variable in the sequence vars.

yIn()
(destination message field) Handle value for variable named y. This is a utility for two/three
variable functions where the y value comes from a source separate from that of x. This is a shorthand. If the

expression does not have any variable named y, this the second variable in the sequence vars.

zIn()
(destination message field) Handle value for variable named z. This is a utility for three
variable functions where the z value comes from a source separate from that of x or y. This is a shorthand. If the expression does not have any variable named y, this the second variable in the sequence vars.
xyIn()

(destination message field) Handle value for variables x and y for two-variable function

xyzIn()

(destination message field) Handle value for variables x, y and z for three-variable function

process()

(destination message field) Handles process call, updates internal time stamp.

reinit()

(destination message field) Handles reinit call.

valueOut

double (source message field) Evaluated value of the function for the current variable values.

derivativeOut

double (source message field) Value of derivative of the function for the current variable values

value

double (value field) Result of the function evaluation with current variable values.

derivative

double (value field) Derivative of the function at given variable values.

mode
unsigned int (value field) Mode of operation:
1: only the function value will be calculated 2: only the derivative will be calculated 3: both function value and derivative at current variable values will be calculated.
expr

string (value field) Mathematical expression defining the function. The underlying parser is muParser. Hence the available functions and operators are (from muParser docs):

Functions Name args explanation sin 1 sine function cos 1 cosine function tan 1 tangens function asin 1 arcus sine function acos 1 arcus cosine function atan 1 arcus tangens function sinh 1 hyperbolic sine function cosh 1 hyperbolic cosine tanh 1 hyperbolic tangens function asinh 1 hyperbolic arcus sine function acosh 1 hyperbolic arcus tangens function atanh 1 hyperbolic arcur tangens function log2 1 logarithm to the base 2 log10 1 logarithm to the base 10 log 1 logarithm to the base 10 ln 1 logarithm to base e (2.71828...) exp 1 e raised to the power of x sqrt 1 square root of a value sign 1 sign function -1 if x<0; 1 if x>0 rint 1 round to nearest integer abs 1 absolute value min var. min of all arguments max var. max of all arguments sum var. sum of all arguments avg var. mean value of all arguments

Operators Op meaning prioroty = assignement -1 && logical and 1 || logical or 2 <= less or equal 4 >= greater or equal 4 != not equal 4 == equal 4 > greater than 4 < less than 4 + addition 5 - subtraction 5 * multiplication 6 / division 6 ^ raise x to the power of y 7

?: if then else operator C++ style syntax

vars

vector<string> (value field) Variable names in the expression

x

double (value field) Value for variable named x. This is a shorthand. If the expression does not have any variable named x, this the first variable in the sequence vars.

y
double (value field) Value for variable named y. This is a utility for two/three
variable functions where the y value comes from a source separate from that of x. This is a shorthand. If the

expression does not have any variable named y, this the second variable in the sequence vars.

z
double (value field) Value for variable named z. This is a utility for three
variable functions where the z value comes from a source separate from that of x or z. This is a shorthand. If the expression does not have any variable named z, this the third variable in the sequence vars.
var

string,double (lookup field) Lookup table for variable values.

class FuncBase
proc

void (shared message field) Shared message for process and reinit

getResult()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

input()

(destination message field) Handles input values. This generic message works only in cases where the inputs are commutative, so ordering does not matter. In due course will implement a synapse type extendable, identified system of inputs so that arbitrary numbers of inputs can be unambiguaously defined.

process()

(destination message field) Handles process call

reinit()

(destination message field) Handles reinit call

output

double (source message field) Sends out sum on each timestep

result

double (value field) Outcome of function computation

class FuncPool
input()

(destination message field) Handles input to control value of n_

class Function

Function: general purpose function calculator using real numbers. It can parse mathematical expression defining a function and evaluate it and/or its derivative for specified variable values. The variables can be input from other moose objects. Such variables must be named x{i} in the expression and the source field is connected to Function.x[i]’s setVar destination field. In case the input variable is not available as a source field, but is a value field, then the value can be requested by connecting the requestOut message to the get{Field} destination on the target object. Such variables must be specified in the expression as y{i} and connecting the messages should happen in the same order as the y indices. This class handles only real numbers (C-double). Predefined constants are: pi=3.141592..., e=2.718281...

proc

void (shared message field) This is a shared message to receive Process messages from the scheduler objects.The first entry in the shared msg is a MsgDest for the Process operation. It has a single argument, ProcInfo, which holds lots of information about current time, thread, dt and so on. The second entry is a MsgDest for the Reinit operation. It also uses ProcInfo.

getValue()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getRate()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getDerivative()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setMode()

(destination message field) Assigns field value.

getMode()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setExpr()

(destination message field) Assigns field value.

getExpr()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setNumX()

(destination message field) Assigns number of field entries in field array.

getNumX()

(destination message field) Requests number of field entries in field array.The requesting Element must provide a handler for the returned value.

setC()

(destination message field) Assigns field value.

getC()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setIndependent()

(destination message field) Assigns field value.

getIndependent()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

process()

(destination message field) Handles process call, updates internal time stamp.

reinit()

(destination message field) Handles reinit call.

requestOut

PSt6vectorIdSaIdEE (source message field) Sends request for input variable from a field on target object

valueOut

double (source message field) Evaluated value of the function for the current variable values.

rateOut

double (source message field) Value of time-derivative of the function for the current variable values

derivativeOut

double (source message field) Value of derivative of the function for the current variable values

value

double (value field) Result of the function evaluation with current variable values.

rate

double (value field) Derivative of the function at given variable values. This is computed as the difference of the current and previous value of the function divided by the time step.

derivative

double (value field) Derivative of the function at given variable values. This is calulated using 5-point stencil <http://en.wikipedia.org/wiki/Five-point_stencil>__ at current value of independent variable. Note that unlike hand-calculated derivatives, numerical derivatives are not exact.

mode

unsigned int (value field) Mode of operation:

1: only the function value will be sent out.
2: only the derivative with respect to the independent variable will be sent out.
3: only rate (time derivative) will be sent out.
anything else: all three, value, derivative and rate will be sent out.
expr

string (value field) Mathematical expression defining the function. The underlying parser is muParser. Hence the available functions and operators are (from muParser docs):

Functions Name args explanation sin 1 sine function cos 1 cosine function tan 1 tangens function asin 1 arcus sine function acos 1 arcus cosine function atan 1 arcus tangens function sinh 1 hyperbolic sine function cosh 1 hyperbolic cosine tanh 1 hyperbolic tangens function asinh 1 hyperbolic arcus sine function acosh 1 hyperbolic arcus tangens function atanh 1 hyperbolic arcur tangens function log2 1 logarithm to the base 2 log10 1 logarithm to the base 10 log 1 logarithm to the base 10 ln 1 logarithm to base e (2.71828...) exp 1 e raised to the power of x sqrt 1 square root of a value sign 1 sign function -1 if x<0; 1 if x>0 rint 1 round to nearest integer abs 1 absolute value min var. min of all arguments max var. max of all arguments sum var. sum of all arguments avg var. mean value of all arguments

Operators Op meaning prioroty = assignement -1 && logical and 1 || logical or 2 <= less or equal 4 >= greater or equal 4 != not equal 4 == equal 4 > greater than 4 < less than 4 + addition 5 - subtraction 5 * multiplication 6 / division 6 ^ raise x to the power of y 7

?: if then else operator C++ style syntax

independent

string (value field) Index of independent variable. Differentiation is done based on this. Defaults to the first assigned variable.

c

string,double (lookup field) Constants used in the function. These must be assigned before specifying the function expression.

class GapJunction

Implementation of gap junction between two compartments. The shared fields, ‘channel1’ and ‘channel2’ can be connected to the ‘channel’ message of the compartments at either end of the gap junction. The compartments will send their Vm to the gap junction and receive the conductance ‘Gk’ of the gap junction and the Vm of the other compartment.

channel1

void (shared message field) This is a shared message to couple the conductance and Vm from terminal 2 to the compartment at terminal 1. The first entry is source sending out Gk and Vm2, the second entry is destination for Vm1.

channel2

void (shared message field) This is a shared message to couple the conductance and Vm from terminal 1 to the compartment at terminal 2. The first entry is source sending out Gk and Vm1, the second entry is destination for Vm2.

proc

void (shared message field) This is a shared message to receive Process messages from the scheduler objects. The Process should be called second in each clock tick, after the Init message.The first entry in the shared msg is a MsgDest for the Process operation. It has a single argument, ProcInfo, which holds lots of information about current time, thread, dt and so on. The second entry is a MsgDest for the Reinit operation. It also uses ProcInfo.

Vm1()

(destination message field) Handles Vm message from compartment

Vm2()

(destination message field) Handles Vm message from another compartment

setGk()

(destination message field) Assigns field value.

getGk()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

process()

(destination message field) Handles ‘process’ call

reinit()

(destination message field) Handles ‘reinit’ call

channel1Out

double,double (source message field) Sends Gk and Vm from one compartment to the other

channel2Out

double,double (source message field) Sends Gk and Vm from one compartment to the other

Gk

double (value field) Conductance of the gap junction

class Group
group

void (source message field) Handle for grouping Elements

class Gsolve
proc

void (shared message field) Shared message for process and reinit

setStoich()

(destination message field) Assigns field value.

getStoich()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getNumLocalVoxels()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setNVec()

(destination message field) Assigns field value.

getNVec()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setNumAllVoxels()

(destination message field) Assigns field value.

getNumAllVoxels()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setNumPools()

(destination message field) Assigns field value.

getNumPools()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

voxelVol()

(destination message field) Handles updates to all voxels. Comes from parent ChemCompt object.

process()

(destination message field) Handles process call

reinit()

(destination message field) Handles reinit call

setUseRandInit()

(destination message field) Assigns field value.

getUseRandInit()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

stoich

Id (value field) Stoichiometry object for handling this reaction system.

numLocalVoxels

unsigned int (value field) Number of voxels in the core reac-diff system, on the current solver.

numAllVoxels

unsigned int (value field) Number of voxels in the entire reac-diff system, including proxy voxels to represent abutting compartments.

numPools

unsigned int (value field) Number of molecular pools in the entire reac-diff system, including variable, function and buffered.

useRandInit

bool (value field) Flag: True when using probabilistic (random) rounding. When initializing the mol# from floating-point Sinit values, we have two options. One is to look at each Sinit, and round to the nearest integer. The other is to look at each Sinit, and probabilistically round up or down depending on the value. For example, if we had a Sinit value of 1.49, this would always be rounded to 1.0 if the flag is false, and would be rounded to 1.0 and 2.0 in the ratio 51:49 if the flag is true.

nVec

unsigned int,vector<double> (lookup field) vector of pool counts

class HDF5DataWriter

HDF5 file writer for saving data tables. It saves the tables connected to it via requestOut field into an HDF5 file. The path of the table is maintained in the HDF5 file, with a HDF5 group for each element above the table. Thus, if you have a table /data/VmTable in MOOSE, then it will be written as an HDF5 table called VmTable inside an HDF5 Group called data. However Table inside Table is considered a pathological case and is not handled. At every process call it writes the contents of the tables to the file and clears the table vectors. You can explicitly force writing of the data via the flush function.

proc

void (shared message field) Shared message to receive process and reinit

setFlushLimit()

(destination message field) Assigns field value.

getFlushLimit()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

process()

(destination message field) Handle process calls. Write data to file and clear all Table objects associated with this. Hence you want to keep it on a slow clock 1000 times or more slower than that for the tables.

reinit()

(destination message field) Reinitialize the object. If the current file handle is valid, it tries to close that and open the file specified in current filename field.

requestOut

PSt6vectorIdSaIdEE (source message field) Sends request for a field to target object

flushLimit

unsigned int (value field) Buffer size limit for flushing the data from memory to file. Default is 4M doubles.

class HDF5WriterBase

HDF5 file writer base class. This is not to be used directly. Instead, it should be subclassed to provide specific data writing functions. This class provides most basic properties like filename, file opening mode, file open status.

setFilename()

(destination message field) Assigns field value.

getFilename()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getIsOpen()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setMode()

(destination message field) Assigns field value.

getMode()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setChunkSize()

(destination message field) Assigns field value.

getChunkSize()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setCompressor()

(destination message field) Assigns field value.

getCompressor()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setCompression()

(destination message field) Assigns field value.

getCompression()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setStringAttr()

(destination message field) Assigns field value.

getStringAttr()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setDoubleAttr()

(destination message field) Assigns field value.

getDoubleAttr()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setLongAttr()

(destination message field) Assigns field value.

getLongAttr()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setStringVecAttr()

(destination message field) Assigns field value.

getStringVecAttr()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setDoubleVecAttr()

(destination message field) Assigns field value.

getDoubleVecAttr()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setLongVecAttr()

(destination message field) Assigns field value.

getLongVecAttr()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

flush()

(destination message field) Write all buffer contents to file and clear the buffers.

close()

(destination message field) Close the underlying file. This is a safety measure so that file is not in an invalid state even if a crash happens at exit.

filename

string (value field) Name of the file associated with this HDF5 writer object.

isOpen

bool (value field) True if this object has an open file handle.

mode

unsigned int (value field) Depending on mode, if file already exists, if mode=1, data will be appended to existing file, if mode=2, file will be truncated, if mode=4, no writing will happen.

chunkSize

unsigned int (value field) Chunksize for writing array data. Defaults to 100.

compressor

string (value field) Compression type for array data. zlib and szip are supported. Defaults to zlib.

compression

unsigned int (value field) Compression level for array data. Defaults to 6.

stringAttr

string,string (lookup field) String attributes. The key is attribute name, value is attribute value (string).

doubleAttr

string,double (lookup field) Double precision floating point attributes. The key is attribute name, value is attribute value (double).

longAttr

string,long (lookup field) Long integer attributes. The key is attribute name, value is attribute value (long).

stringVecAttr

string,vector<string> (lookup field) String vector attributes. The key is attribute name, value is attribute value (string).

doubleVecAttr

string,vector<double> (lookup field) Double vector attributes. The key is attribute name, value is attribute value (vector of double).

longVecAttr

string,vector<long> (lookup field) Long integer vector attributes. The key is attribute name, value is attribute value (vector of long).

class HHChannel

HHChannel: Hodgkin-Huxley type voltage-gated Ion channel. Something like the old tabchannel from GENESIS, but also presents a similar interface as hhchan from GENESIS.

class HHChannel2D

HHChannel2D: Hodgkin-Huxley type voltage-gated Ion channel. Something like the old tabchannel from GENESIS, but also presents a similar interface as hhchan from GENESIS.

setXindex()

(destination message field) Assigns field value.

getXindex()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setYindex()

(destination message field) Assigns field value.

getYindex()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setZindex()

(destination message field) Assigns field value.

getZindex()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setXpower()

(destination message field) Assigns field value.

getXpower()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setYpower()

(destination message field) Assigns field value.

getYpower()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setZpower()

(destination message field) Assigns field value.

getZpower()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setInstant()

(destination message field) Assigns field value.

getInstant()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setX()

(destination message field) Assigns field value.

getX()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setY()

(destination message field) Assigns field value.

getY()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setZ()

(destination message field) Assigns field value.

getZ()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

concen()

(destination message field) Incoming message from Concen object to specific conc to useas the first concen variable

concen2()

(destination message field) Incoming message from Concen object to specific conc to useas the second concen variable

setNumGateX()

(destination message field) Assigns number of field entries in field array.

getNumGateX()

(destination message field) Requests number of field entries in field array.The requesting Element must provide a handler for the returned value.

setNumGateY()

(destination message field) Assigns number of field entries in field array.

getNumGateY()

(destination message field) Requests number of field entries in field array.The requesting Element must provide a handler for the returned value.

setNumGateZ()

(destination message field) Assigns number of field entries in field array.

getNumGateZ()

(destination message field) Requests number of field entries in field array.The requesting Element must provide a handler for the returned value.

Xindex

string (value field) String for setting X index.

Yindex

string (value field) String for setting Y index.

Zindex

string (value field) String for setting Z index.

Xpower

double (value field) Power for X gate

Ypower

double (value field) Power for Y gate

Zpower

double (value field) Power for Z gate

instant

int (value field) Bitmapped flag: bit 0 = Xgate, bit 1 = Ygate, bit 2 = ZgateWhen true, specifies that the lookup table value should beused directly as the state of the channel, rather than usedas a rate term for numerical integration for the state

X

double (value field) State variable for X gate

Y

double (value field) State variable for Y gate

Z

double (value field) State variable for Y gate

class HHChannelBase

HHChannelBase: Base class for Hodgkin-Huxley type voltage-gated Ion channels. Something like the old tabchannel from GENESIS, but also presents a similar interface as hhchan from GENESIS.

setXpower()

(destination message field) Assigns field value.

getXpower()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setYpower()

(destination message field) Assigns field value.

getYpower()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setZpower()

(destination message field) Assigns field value.

getZpower()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setInstant()

(destination message field) Assigns field value.

getInstant()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setX()

(destination message field) Assigns field value.

getX()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setY()

(destination message field) Assigns field value.

getY()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setZ()

(destination message field) Assigns field value.

getZ()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setUseConcentration()

(destination message field) Assigns field value.

getUseConcentration()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

concen()

(destination message field) Incoming message from Concen object to specific conc to usein the Z gate calculations

createGate()

(destination message field) Function to create specified gate.Argument: Gate type [X Y Z]

setNumGateX()

(destination message field) Assigns number of field entries in field array.

getNumGateX()

(destination message field) Requests number of field entries in field array.The requesting Element must provide a handler for the returned value.

setNumGateY()

(destination message field) Assigns number of field entries in field array.

getNumGateY()

(destination message field) Requests number of field entries in field array.The requesting Element must provide a handler for the returned value.

setNumGateZ()

(destination message field) Assigns number of field entries in field array.

getNumGateZ()

(destination message field) Requests number of field entries in field array.The requesting Element must provide a handler for the returned value.

Xpower

double (value field) Power for X gate

Ypower

double (value field) Power for Y gate

Zpower

double (value field) Power for Z gate

instant

int (value field) Bitmapped flag: bit 0 = Xgate, bit 1 = Ygate, bit 2 = ZgateWhen true, specifies that the lookup table value should beused directly as the state of the channel, rather than usedas a rate term for numerical integration for the state

X

double (value field) State variable for X gate

Y

double (value field) State variable for Y gate

Z

double (value field) State variable for Y gate

useConcentration

int (value field) Flag: when true, use concentration message rather than Vm tocontrol Z gate

class HHGate

HHGate: Gate for Hodkgin-Huxley type channels, equivalent to the m and h terms on the Na squid channel and the n term on K. This takes the voltage and state variable from the channel, computes the new value of the state variable and a scaling, depending on gate power, for the conductance.

getA()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getB()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setAlpha()

(destination message field) Assigns field value.

getAlpha()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setBeta()

(destination message field) Assigns field value.

getBeta()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setTau()

(destination message field) Assigns field value.

getTau()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setMInfinity()

(destination message field) Assigns field value.

getMInfinity()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setMin()

(destination message field) Assigns field value.

getMin()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setMax()

(destination message field) Assigns field value.

getMax()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setDivs()

(destination message field) Assigns field value.

getDivs()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setTableA()

(destination message field) Assigns field value.

getTableA()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setTableB()

(destination message field) Assigns field value.

getTableB()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setUseInterpolation()

(destination message field) Assigns field value.

getUseInterpolation()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setAlphaParms()

(destination message field) Assigns field value.

getAlphaParms()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setupAlpha()

(destination message field) Set up both gates using 13 parameters, as follows:setupAlpha AA AB AC AD AF BA BB BC BD BF xdivs xmin xmaxHere AA-AF are Coefficients A to F of the alpha (forward) termHere BA-BF are Coefficients A to F of the beta (reverse) termHere xdivs is the number of entries in the table,xmin and xmax define the range for lookup.Outside this range the returned value will be the low [high]entry of the table.The equation describing each table is:y(x) = (A + B * x) / (C + exp((x + D) / F))The original HH equations can readily be cast into this form

setupTau()

(destination message field) Identical to setupAlpha, except that the forms specified bythe 13 parameters are for the tau and m-infinity curves ratherthan the alpha and beta terms. So the parameters are:setupTau TA TB TC TD TF MA MB MC MD MF xdivs xmin xmaxAs before, the equation describing each curve is:y(x) = (A + B * x) / (C + exp((x + D) / F))

tweakAlpha()

(destination message field) Dummy function for backward compatibility. It used to convertthe tables from alpha, beta values to alpha, alpha+betabecause the internal calculations used these forms. Notneeded now, deprecated.

tweakTau()

(destination message field) Dummy function for backward compatibility. It used to convertthe tables from tau, minf values to alpha, alpha+betabecause the internal calculations used these forms. Notneeded now, deprecated.

setupGate()
(destination message field) Sets up one gate at a time using the alpha/beta form.Has 9 parameters, as follows:setupGate A B C D F xdivs xmin xmax is_betaThis sets up the gate using the equation::
y(x) = (A + B * x) / (C + exp((x + D) / F))

Deprecated.

alpha

vector<double> (value field) Parameters for voltage-dependent rates, alpha:Set up alpha term using 5 parameters, as follows:y(x) = (A + B * x) / (C + exp((x + D) / F))The original HH equations can readily be cast into this form

beta

vector<double> (value field) Parameters for voltage-dependent rates, beta:Set up beta term using 5 parameters, as follows:y(x) = (A + B * x) / (C + exp((x + D) / F))The original HH equations can readily be cast into this form

tau

vector<double> (value field) Parameters for voltage-dependent rates, tau:Set up tau curve using 5 parameters, as follows:y(x) = (A + B * x) / (C + exp((x + D) / F))

mInfinity

vector<double> (value field) Parameters for voltage-dependent rates, mInfinity:Set up mInfinity curve using 5 parameters, as follows:y(x) = (A + B * x) / (C + exp((x + D) / F))The original HH equations can readily be cast into this form

min

double (value field) Minimum range for lookup

max

double (value field) Minimum range for lookup

divs

unsigned int (value field) Divisions for lookup. Zero means to use linear interpolation

tableA

vector<double> (value field) Table of A entries

tableB

vector<double> (value field) Table of alpha + beta entries

useInterpolation

bool (value field) Flag: use linear interpolation if true, else direct lookup

alphaParms

vector<double> (value field) Set up both gates using 13 parameters, as follows:setupAlpha AA AB AC AD AF BA BB BC BD BF xdivs xmin xmaxHere AA-AF are Coefficients A to F of the alpha (forward) termHere BA-BF are Coefficients A to F of the beta (reverse) termHere xdivs is the number of entries in the table,xmin and xmax define the range for lookup.Outside this range the returned value will be the low [high]entry of the table.The equation describing each table is:y(x) = (A + B * x) / (C + exp((x + D) / F))The original HH equations can readily be cast into this form

A

double,double (lookup field) lookupA: Look up the A gate value from a double. Usually doesso by direct scaling and offset to an integer lookup, usinga fine enough table granularity that there is little error.Alternatively uses linear interpolation.The range of the double is predefined based on knowledge ofvoltage or conc ranges, and the granularity is specified bythe xmin, xmax, and dV fields.

B

double,double (lookup field) lookupB: Look up the B gate value from a double.Note that this looks up the raw tables, which are transformedfrom the reference parameters.

class HHGate2D

HHGate2D: Gate for Hodkgin-Huxley type channels, equivalent to the m and h terms on the Na squid channel and the n term on K. This takes the voltage and state variable from the channel, computes the new value of the state variable and a scaling, depending on gate power, for the conductance. These two terms are sent right back in a message to the channel.

getA()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getB()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setTableA()

(destination message field) Assigns field value.

getTableA()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setTableB()

(destination message field) Assigns field value.

getTableB()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setXminA()

(destination message field) Assigns field value.

getXminA()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setXmaxA()

(destination message field) Assigns field value.

getXmaxA()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setXdivsA()

(destination message field) Assigns field value.

getXdivsA()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setYminA()

(destination message field) Assigns field value.

getYminA()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setYmaxA()

(destination message field) Assigns field value.

getYmaxA()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setYdivsA()

(destination message field) Assigns field value.

getYdivsA()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setXminB()

(destination message field) Assigns field value.

getXminB()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setXmaxB()

(destination message field) Assigns field value.

getXmaxB()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setXdivsB()

(destination message field) Assigns field value.

getXdivsB()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setYminB()

(destination message field) Assigns field value.

getYminB()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setYmaxB()

(destination message field) Assigns field value.

getYmaxB()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setYdivsB()

(destination message field) Assigns field value.

getYdivsB()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

tableA

vector< vector<double> > (value field) Table of A entries

tableB

vector< vector<double> > (value field) Table of B entries

xminA

double (value field) Minimum range for lookup

xmaxA

double (value field) Minimum range for lookup

xdivsA

unsigned int (value field) Divisions for lookup. Zero means to use linear interpolation

yminA

double (value field) Minimum range for lookup

ymaxA

double (value field) Minimum range for lookup

ydivsA

unsigned int (value field) Divisions for lookup. Zero means to use linear interpolation

xminB

double (value field) Minimum range for lookup

xmaxB

double (value field) Minimum range for lookup

xdivsB

unsigned int (value field) Divisions for lookup. Zero means to use linear interpolation

yminB

double (value field) Minimum range for lookup

ymaxB

double (value field) Minimum range for lookup

ydivsB

unsigned int (value field) Divisions for lookup. Zero means to use linear interpolation

A

vector<double>,double (lookup field) lookupA: Look up the A gate value from two doubles, passedin as a vector. Uses linear interpolation in the 2D tableThe range of the lookup doubles is predefined based on knowledge of voltage or conc ranges, and the granularity is specified by the xmin, xmax, and dx field, and their y-axis counterparts.

B

vector<double>,double (lookup field) lookupB: Look up B gate value from two doubles in a vector.

class HSolve
proc

void (shared message field) Handles ‘reinit’ and ‘process’ calls from a clock.

setSeed()

(destination message field) Assigns field value.

getSeed()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setTarget()

(destination message field) Assigns field value.

getTarget()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setDt()

(destination message field) Assigns field value.

getDt()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setCaAdvance()

(destination message field) Assigns field value.

getCaAdvance()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setVDiv()

(destination message field) Assigns field value.

getVDiv()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setVMin()

(destination message field) Assigns field value.

getVMin()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setVMax()

(destination message field) Assigns field value.

getVMax()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setCaDiv()

(destination message field) Assigns field value.

getCaDiv()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setCaMin()

(destination message field) Assigns field value.

getCaMin()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setCaMax()

(destination message field) Assigns field value.

getCaMax()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

process()

(destination message field) Handles ‘process’ call: Solver advances by one time-step.

reinit()

(destination message field) Handles ‘reinit’ call: Solver reads in model.

seed

Id (value field) Use this field to specify path to a ‘seed’ compartment, that is, any compartment within a neuron. The HSolve object uses this seed as a handle to discover the rest of the neuronal model, which means all the remaining compartments, channels, synapses, etc.

target

string (value field) Specifies the path to a compartmental model to be taken over. This can be the path to any container object that has the model under it (found by performing a deep search). Alternatively, this can also be the path to any compartment within the neuron. This compartment will be used as a handle to discover the rest of the model, which means all the remaining compartments, channels, synapses, etc.

dt

double (value field) The time-step for this solver.

caAdvance

int (value field) This flag determines how current flowing into a calcium pool is computed. A value of 0 means that the membrane potential at the beginning of the time-step is used for the calculation. This is how GENESIS does its computations. A value of 1 means the membrane potential at the middle of the time-step is used. This is the correct way of integration, and is the default way.

vDiv

int (value field) Specifies number of divisions for lookup tables of voltage-sensitive channels.

vMin

double (value field) Specifies the lower bound for lookup tables of voltage-sensitive channels. Default is to automatically decide based on the tables of the channels that the solver reads in.

vMax

double (value field) Specifies the upper bound for lookup tables of voltage-sensitive channels. Default is to automatically decide based on the tables of the channels that the solver reads in.

caDiv

int (value field) Specifies number of divisions for lookup tables of calcium-sensitive channels.

caMin

double (value field) Specifies the lower bound for lookup tables of calcium-sensitive channels. Default is to automatically decide based on the tables of the channels that the solver reads in.

caMax

double (value field) Specifies the upper bound for lookup tables of calcium-sensitive channels. Default is to automatically decide based on the tables of the channels that the solver reads in.

class IntFire
proc

void (shared message field) Shared message for process and reinit

setVm()

(destination message field) Assigns field value.

getVm()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setTau()

(destination message field) Assigns field value.

getTau()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setThresh()

(destination message field) Assigns field value.

getThresh()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setRefractoryPeriod()

(destination message field) Assigns field value.

getRefractoryPeriod()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

activation()

(destination message field) Handles value of synaptic activation arriving on this IntFire

process()

(destination message field) Handles process call

reinit()

(destination message field) Handles reinit call

spikeOut

double (source message field) Sends out spike events. The argument is the timestamp of the spike.

Vm

double (value field) Membrane potential

tau

double (value field) charging time-course

thresh

double (value field) firing threshold

refractoryPeriod

double (value field) Minimum time between successive spikes

class IntFireBase

Base class for Integrate-and-fire compartment.

setThresh()

(destination message field) Assigns field value.

getThresh()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setRefractoryPeriod()

(destination message field) Assigns field value.

getRefractoryPeriod()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getHasFired()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

activation()

(destination message field) Handles value of synaptic activation arriving on this object

spikeOut

double (source message field) Sends out spike events. The argument is the timestamp of the spike.

thresh

double (value field) firing threshold

refractoryPeriod

double (value field) Minimum time between successive spikes

hasFired

bool (value field) The object has fired within the last timestep

class Interpol

Interpol: Interpolation class. Handles lookup from a 1-dimensional array of real-numbered values.Returns ‘y’ value based on given ‘x’ value. Can either use interpolation or roundoff to the nearest index.

proc

void (shared message field) Shared message for process and reinit

setXmin()

(destination message field) Assigns field value.

getXmin()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setXmax()

(destination message field) Assigns field value.

getXmax()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getY()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

input()

(destination message field) Interpolates using the input as x value.

process()

(destination message field) Handles process call, updates internal time stamp.

reinit()

(destination message field) Handles reinit call.

lookupOut

double (source message field) respond to a request for a value lookup

xmin

double (value field) Minimum value of x. x below this will result in y[0] being returned.

xmax

double (value field) Maximum value of x. x above this will result in y[last] being returned.

y

double (value field) Looked up value.

class Interpol2D

Interpol2D: Interpolation class. Handles lookup from a 2-dimensional grid of real-numbered values. Returns ‘z’ value based on given ‘x’ and ‘y’ values. Can either use interpolation or roundoff to the nearest index.

lookupReturn2D

void (shared message field) This is a shared message for doing lookups on the table. Receives 2 doubles: x, y. Sends back a double with the looked-up z value.

lookup()

(destination message field) Looks up table value based on indices v1 and v2, and sendsvalue back using the ‘lookupOut’ message

setXmin()

(destination message field) Assigns field value.

getXmin()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setXmax()

(destination message field) Assigns field value.

getXmax()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setXdivs()

(destination message field) Assigns field value.

getXdivs()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setDx()

(destination message field) Assigns field value.

getDx()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setYmin()

(destination message field) Assigns field value.

getYmin()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setYmax()

(destination message field) Assigns field value.

getYmax()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setYdivs()

(destination message field) Assigns field value.

getYdivs()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setDy()

(destination message field) Assigns field value.

getDy()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setTable()

(destination message field) Assigns field value.

getTable()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getZ()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setTableVector2D()

(destination message field) Assigns field value.

getTableVector2D()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

lookupOut

double (source message field) respond to a request for a value lookup

xmin

double (value field) Minimum value for x axis of lookup table

xmax

double (value field) Maximum value for x axis of lookup table

xdivs

unsigned int (value field) # of divisions on x axis of lookup table

dx

double (value field) Increment on x axis of lookup table

ymin

double (value field) Minimum value for y axis of lookup table

ymax

double (value field) Maximum value for y axis of lookup table

ydivs

unsigned int (value field) # of divisions on y axis of lookup table

dy

double (value field) Increment on y axis of lookup table

tableVector2D

vector< vector<double> > (value field) Get the entire table.

table

vector<unsigned int>,double (lookup field) Lookup an entry on the table

z

vector<double>,double (lookup field) Interpolated value for specified x and y. This is provided for debugging. Normally other objects will retrieve interpolated values via lookup message.

class IzhikevichNrn
Izhikevich model of spiking neuron (Izhikevich,EM. 2003. Simple model of spiking neurons. Neural Networks, IEEE Transactions on 14(6). pp 1569-1572).
This class obeys the equations (in physiological units):
dVm/dt = 0.04 * Vm^2 + 5 * Vm + 140 - u + inject du/dt = a * (b * Vm - u)

if Vm >= Vmax then Vm = c and u = u + d Vmax = 30 mV in the paper.

proc

void (shared message field) Shared message to receive Process message from scheduler

channel

void (shared message field) This is a shared message from a IzhikevichNrn to channels.The first entry is a MsgDest for the info coming from the channel. It expects Gk and Ek from the channel as args. The second entry is a MsgSrc sending Vm

process()

(destination message field) Handles process call

reinit()

(destination message field) Handles reinit call

setVmax()

(destination message field) Assigns field value.

getVmax()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setC()

(destination message field) Assigns field value.

getC()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setD()

(destination message field) Assigns field value.

getD()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setA()

(destination message field) Assigns field value.

getA()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setB()

(destination message field) Assigns field value.

getB()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getU()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setVm()

(destination message field) Assigns field value.

getVm()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getIm()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setInject()

(destination message field) Assigns field value.

getInject()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setRmByTau()

(destination message field) Assigns field value.

getRmByTau()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setAccommodating()

(destination message field) Assigns field value.

getAccommodating()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setU0()

(destination message field) Assigns field value.

getU0()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setInitVm()

(destination message field) Assigns field value.

getInitVm()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setInitU()

(destination message field) Assigns field value.

getInitU()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setAlpha()

(destination message field) Assigns field value.

getAlpha()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setBeta()

(destination message field) Assigns field value.

getBeta()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setGamma()

(destination message field) Assigns field value.

getGamma()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

injectMsg()

(destination message field) Injection current into the neuron.

cDest()

(destination message field) Destination message to modify parameter c at runtime.

dDest()

(destination message field) Destination message to modify parameter d at runtime.

bDest()

(destination message field) Destination message to modify parameter b at runtime

aDest()

(destination message field) Destination message modify parameter a at runtime.

handleChannel()

(destination message field) Handles conductance and reversal potential arguments from Channel

VmOut

double (source message field) Sends out Vm

spikeOut

double (source message field) Sends out spike events

VmOut

double (source message field) Sends out Vm

Vmax

double (value field) Maximum membrane potential. Membrane potential is reset to c whenever it reaches Vmax. NOTE: Izhikevich model specifies the PEAK voltage, rather than THRSHOLD voltage. The threshold depends on the previous history.

c

double (value field) Reset potential. Membrane potential is reset to c whenever it reaches Vmax.

d

double (value field) Parameter d in Izhikevich model. Unit is V/s.

a

double (value field) Parameter a in Izhikevich model. Unit is s^{-1}

b

double (value field) Parameter b in Izhikevich model. Unit is s^{-1}

u

double (value field) Parameter u in Izhikevich equation. Unit is V/s

Vm

double (value field) Membrane potential, equivalent to v in Izhikevich equation.

Im

double (value field) Total current going through the membrane. Unit is A.

inject

double (value field) External current injection into the neuron

RmByTau

double (value field) Hidden coefficient of input current term (I) in Izhikevich model. Defaults to 1e9 Ohm/s.

accommodating

bool (value field) True if this neuron is an accommodating one. The equation for recovery variable u is special in this case.

u0

double (value field) This is used for accommodating neurons where recovery variables u is computed as: u += tau*a*(b*(Vm-u0))

initVm

double (value field) Initial membrane potential. Unit is V.

initU

double (value field) Initial value of u.

alpha

double (value field) Coefficient of v^2 in Izhikevich equation. Defaults to 0.04 in physiological unit. In SI it should be 40000.0. Unit is V^-1 s^{-1}

beta

double (value field) Coefficient of v in Izhikevich model. Defaults to 5 in physiological unit, 5000.0 for SI units. Unit is s^{-1}

gamma

double (value field) Constant term in Izhikevich model. Defaults to 140 in both physiological and SI units. unit is V/s.

class Ksolve
xCompt

void (shared message field) Shared message for pool exchange for cross-compartment reactions. Exchanges latest values of all pools that participate in such reactions.

proc

void (shared message field) Shared message for process and reinit. These are used for all regular Ksolve calculations including interfacing with the diffusion calculations by a Dsolve.

init

void (shared message field) Shared message for initProc and initReinit. This is used when the system has cross-compartment reactions.

setMethod()

(destination message field) Assigns field value.

getMethod()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setEpsAbs()

(destination message field) Assigns field value.

getEpsAbs()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setEpsRel()

(destination message field) Assigns field value.

getEpsRel()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setCompartment()

(destination message field) Assigns field value.

getCompartment()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getNumLocalVoxels()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setNVec()

(destination message field) Assigns field value.

getNVec()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setNumAllVoxels()

(destination message field) Assigns field value.

getNumAllVoxels()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setNumPools()

(destination message field) Assigns field value.

getNumPools()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getEstimatedDt()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

voxelVol()

(destination message field) Handles updates to all voxels. Comes from parent ChemCompt object.

xComptIn()

(destination message field) Handles arriving pool ‘n’ values used in cross-compartment reactions.

process()

(destination message field) Handles process call from Clock

reinit()

(destination message field) Handles reinit call from Clock

initProc()

(destination message field) Handles initProc call from Clock

initReinit()

(destination message field) Handles initReinit call from Clock

xComptOut

Id,vector<double> (source message field) Sends ‘n’ of all molecules participating in cross-compartment reactions between any juxtaposed voxels between current compt and another compartment. This includes molecules local to this compartment, as well as proxy molecules belonging elsewhere. A(t+1) = (Alocal(t+1) + AremoteProxy(t+1)) - Alocal(t) A(t+1) = (Aremote(t+1) + Aproxy(t+1)) - Aproxy(t) Then we update A on the respective solvers with: Alocal(t+1) = Aproxy(t+1) = A(t+1) This is equivalent to sending dA over on each timestep.

method

string (value field) Integration method, using GSL. So far only explict. Options are:rk5: The default Runge-Kutta-Fehlberg 5th order adaptive dt methodgsl: alias for the aboverk4: The Runge-Kutta 4th order fixed dt methodrk2: The Runge-Kutta 2,3 embedded fixed dt methodrkck: The Runge-Kutta Cash-Karp (4,5) methodrk8: The Runge-Kutta Prince-Dormand (8,9) method

epsAbs

double (value field) Absolute permissible integration error range.

epsRel

double (value field) Relative permissible integration error range.

compartment

Id (value field) Compartment in which the Ksolve reaction system lives.

numLocalVoxels

unsigned int (value field) Number of voxels in the core reac-diff system, on the current solver.

numAllVoxels

unsigned int (value field) Number of voxels in the entire reac-diff system, including proxy voxels to represent abutting compartments.

numPools

unsigned int (value field) Number of molecular pools in the entire reac-diff system, including variable, function and buffered.

estimatedDt

double (value field) Estimated timestep for reac system based on Euler error

nVec

unsigned int,vector<double> (lookup field) vector of pool counts. Index specifies which voxel.

class LIF

Leaky Integrate-and-Fire neuron

class Leakage

Leakage: Passive leakage channel.

class MMenz
class MarkovChannel

MarkovChannel : Multistate ion channel class.It deals with ion channels which can be found in one of multiple states, some of which are conducting. This implementation assumes the occurence of first order kinetics to calculate the probabilities of the channel being found in all states. Further, the rates of transition between these states can be constant, voltage-dependent or ligand dependent (only one ligand species). The current flow obtained from the channel is calculated in a deterministic method by solving the system of differential equations obtained from the assumptions above.

setLigandConc()

(destination message field) Assigns field value.

getLigandConc()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setVm()

(destination message field) Assigns field value.

getVm()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setNumStates()

(destination message field) Assigns field value.

getNumStates()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setNumOpenStates()

(destination message field) Assigns field value.

getNumOpenStates()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getState()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setInitialState()

(destination message field) Assigns field value.

getInitialState()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setLabels()

(destination message field) Assigns field value.

getLabels()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setGbar()

(destination message field) Assigns field value.

getGbar()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

handleLigandConc()

(destination message field) Deals with incoming messages containing information of ligand concentration

handleState()

(destination message field) Deals with incoming message from MarkovSolver object containing state information of the channel.

ligandConc

double (value field) Ligand concentration.

Vm

double (value field) Membrane voltage.

numStates

unsigned int (value field) The number of states that the channel can occupy.

numOpenStates

unsigned int (value field) The number of states which are open/conducting.

state

vector<double> (value field) This is a row vector that contains the probabilities of finding the channel in each state.

initialState

vector<double> (value field) This is a row vector that contains the probabilities of finding the channel in each state at t = 0. The state of the channel is reset to this value during a call to reinit()

labels

vector<string> (value field) Labels for each state.

gbar

vector<double> (value field) A row vector containing the conductance associated with each of the open/conducting states.

class MarkovGslSolver
proc

void (shared message field) Shared message for process and reinit

getIsInitialized()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setMethod()

(destination message field) Assigns field value.

getMethod()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setRelativeAccuracy()

(destination message field) Assigns field value.

getRelativeAccuracy()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setAbsoluteAccuracy()

(destination message field) Assigns field value.

getAbsoluteAccuracy()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setInternalDt()

(destination message field) Assigns field value.

getInternalDt()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

init()

(destination message field) Initialize solver parameters.

handleQ()

(destination message field) Handles information regarding the instantaneous rate matrix from the MarkovRateTable class.

process()

(destination message field) Handles process call

reinit()

(destination message field) Handles reinit call

stateOut

vector<double> (source message field) Sends updated state to the MarkovChannel class.

isInitialized

bool (value field) True if the message has come in to set solver parameters.

method

string (value field) Numerical method to use.

relativeAccuracy

double (value field) Accuracy criterion

absoluteAccuracy

double (value field) Another accuracy criterion

internalDt

double (value field) internal timestep to use.

class MarkovRateTable
channel

void (shared message field) This message couples the rate table to the compartment. The rate table needs updates on voltage in order to compute the rate table.

proc

void (shared message field) This is a shared message to receive Process message from thescheduler. The first entry is a MsgDest for the Process operation. It has a single argument, ProcInfo, which holds lots of information about current time, thread, dt andso on. The second entry is a MsgDest for the Reinit operation. It also uses ProcInfo.

handleVm()

(destination message field) Handles incoming message containing voltage information.

process()

(destination message field) Handles process call

reinit()

(destination message field) Handles reinit call

init()

(destination message field) Initialization of the class. Allocates memory for all the tables.

handleLigandConc()

(destination message field) Handles incoming message containing ligand concentration.

set1d()

(destination message field) Setting up of 1D lookup table for the (i,j)’th rate.

set2d()

(destination message field) Setting up of 2D lookup table for the (i,j)’th rate.

setconst()

(destination message field) Setting a constant value for the (i,j)’th rate. Internally, this is stored as a 1-D rate with a lookup table containing 1 entry.

setVm()

(destination message field) Assigns field value.

getVm()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setLigandConc()

(destination message field) Assigns field value.

getLigandConc()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getQ()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getSize()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

instratesOut

vector< vector<double> > (source message field) Sends out instantaneous rate information of varying transition ratesat each time step.

Vm

double (value field) Membrane voltage.

ligandConc

double (value field) Ligand concentration.

Q

vector< vector<double> > (value field) Instantaneous rate matrix.

size

unsigned int (value field) Dimension of the families of lookup tables. Is always equal to the number of states in the model.

class MarkovSolver
proc

void (shared message field) This is a shared message to receive Process message from thescheduler. The first entry is a MsgDest for the Process operation. It has a single argument, ProcInfo, which holds lots of information about current time, thread, dt andso on. The second entry is a MsgDest for the Reinit operation. It also uses ProcInfo.

process()

(destination message field) Handles process call

reinit()

(destination message field) Handles reinit call

class MarkovSolverBase
channel

void (shared message field) This message couples the MarkovSolverBase to the Compartment. The compartment needs Vm in order to look up the correct matrix exponential for computing the state.

proc

void (shared message field) This is a shared message to receive Process message from thescheduler. The first entry is a MsgDest for the Process operation. It has a single argument, ProcInfo, which holds lots of information about current time, thread, dt andso on. The second entry is a MsgDest for the Reinit operation. It also uses ProcInfo.

handleVm()

(destination message field) Handles incoming message containing voltage information.

process()

(destination message field) Handles process call

reinit()

(destination message field) Handles reinit call

ligandConc()

(destination message field) Handles incoming message containing ligand concentration.

init()

(destination message field) Setups the table of matrix exponentials associated with the solver object.

getQ()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getState()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setInitialState()

(destination message field) Assigns field value.

getInitialState()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setXmin()

(destination message field) Assigns field value.

getXmin()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setXmax()

(destination message field) Assigns field value.

getXmax()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setXdivs()

(destination message field) Assigns field value.

getXdivs()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getInvdx()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setYmin()

(destination message field) Assigns field value.

getYmin()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setYmax()

(destination message field) Assigns field value.

getYmax()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setYdivs()

(destination message field) Assigns field value.

getYdivs()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getInvdy()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

stateOut

vector<double> (source message field) Sends updated state to the MarkovChannel class.

Q

vector< vector<double> > (value field) Instantaneous rate matrix.

state

vector<double> (value field) Current state of the channel.

initialState

vector<double> (value field) Initial state of the channel.

xmin

double (value field) Minimum value for x axis of lookup table

xmax

double (value field) Maximum value for x axis of lookup table

xdivs

unsigned int (value field) # of divisions on x axis of lookup table

invdx

double (value field) Reciprocal of increment on x axis of lookup table

ymin

double (value field) Minimum value for y axis of lookup table

ymax

double (value field) Maximum value for y axis of lookup table

ydivs

unsigned int (value field) # of divisions on y axis of lookup table

invdy

double (value field) Reciprocal of increment on y axis of lookup table

class MathFunc
proc

void (shared message field) Shared message for process and reinit

setMathML()

(destination message field) Assigns field value.

getMathML()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setFunction()

(destination message field) Assigns field value.

getFunction()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getResult()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

arg1()

(destination message field) Handle arg1

arg2()

(destination message field) Handle arg2

arg3()

(destination message field) Handle arg3

arg4()

(destination message field) Handle arg4

process()

(destination message field) Handle process call

reinit()

(destination message field) Handle reinit call

output

double (source message field) Sends out result of computation

mathML

string (value field) MathML version of expression to compute

function

string (value field) function is for functions of form f(x, y) = x + y

result

double (value field) result value

class MeshEntry

One voxel in a chemical reaction compartment

proc

void (shared message field) Shared message for process and reinit

mesh

void (shared message field) Shared message for updating mesh volumes and subdivisions,typically controls pool volumes

getVolume()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getDimensions()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getMeshType()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getCoordinates()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getNeighbors()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getDiffusionArea()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getDiffusionScaling()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

process()

(destination message field) Handles process call

reinit()

(destination message field) Handles reinit call

getVolume()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

remeshOut

double,unsigned int,unsigned int,vector<unsigned int>,vector<double> (source message field) Tells the target pool or other entity that the compartment subdivision(meshing) has changed, and that it has to redo its volume and memory allocation accordingly.Arguments are: oldvol, numTotalEntries, startEntry, localIndices, volsThe vols specifies volumes of each local mesh entry. It also specifieshow many meshEntries are present on the local node.The localIndices vector is used for general load balancing only.It has a list of the all meshEntries on current node.If it is empty, we assume block load balancing. In this secondcase the contents of the current node go from startEntry to startEntry + vols.size().

remeshReacsOut

void (source message field) Tells connected enz or reac that the compartment subdivision(meshing) has changed, and that it has to redo its volume-dependent rate terms like numKf_ accordingly.

volume

double (value field) Volume of this MeshEntry

dimensions

unsigned int (value field) number of dimensions of this MeshEntry

meshType

unsigned int (value field) The MeshType defines the shape of the mesh entry. 0: Not assigned 1: cuboid 2: cylinder 3. cylindrical shell 4: cylindrical shell segment 5: sphere 6: spherical shell 7: spherical shell segment 8: Tetrahedral

Coordinates

vector<double> (value field) Coordinates that define current MeshEntry. Depend on MeshType.

neighbors

vector<unsigned int> (value field) Indices of other MeshEntries that this one connects to

DiffusionArea

vector<double> (value field) Diffusion area for geometry of interface

DiffusionScaling

vector<double> (value field) Diffusion scaling for geometry of interface

class MgBlock

MgBlock: Hodgkin-Huxley type voltage-gated Ion channel. Something like the old tabchannel from GENESIS, but also presents a similar interface as hhchan from GENESIS.

origChannel()

(destination message field)

setKMg_A()

(destination message field) Assigns field value.

getKMg_A()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setKMg_B()

(destination message field) Assigns field value.

getKMg_B()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setCMg()

(destination message field) Assigns field value.

getCMg()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setZk()

(destination message field) Assigns field value.

getZk()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

KMg_A

double (value field) 1/eta

KMg_B

double (value field) 1/gamma

CMg

double (value field) [Mg] in mM

Zk

double (value field) Charge on ion

class Msg
getE1()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getE2()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getSrcFieldsOnE1()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getDestFieldsOnE2()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getSrcFieldsOnE2()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getDestFieldsOnE1()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getAdjacent()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

e1

Id (value field) Id of source Element.

e2

Id (value field) Id of source Element.

srcFieldsOnE1

vector<string> (value field) Names of SrcFinfos for messages going from e1 to e2. There arematching entries in the destFieldsOnE2 vector

destFieldsOnE2

vector<string> (value field) Names of DestFinfos for messages going from e1 to e2. There arematching entries in the srcFieldsOnE1 vector

srcFieldsOnE2

vector<string> (value field) Names of SrcFinfos for messages going from e2 to e1. There arematching entries in the destFieldsOnE1 vector

destFieldsOnE1

vector<string> (value field) Names of destFinfos for messages going from e2 to e1. There arematching entries in the srcFieldsOnE2 vector

adjacent

ObjId,ObjId (lookup field) The element adjacent to the specified element

class Mstring
setThis()

(destination message field) Assigns field value.

getThis()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setValue()

(destination message field) Assigns field value.

getValue()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

this

string (value field) Access function for entire Mstring object.

value

string (value field) Access function for value field of Mstring object,which happens also to be the entire contents of the object.

class Nernst
getE()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setTemperature()

(destination message field) Assigns field value.

getTemperature()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setValence()

(destination message field) Assigns field value.

getValence()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setCin()

(destination message field) Assigns field value.

getCin()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setCout()

(destination message field) Assigns field value.

getCout()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setScale()

(destination message field) Assigns field value.

getScale()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

ci()

(destination message field) Set internal conc of ion, and immediately send out the updated E

co()

(destination message field) Set external conc of ion, and immediately send out the updated E

Eout

double (source message field) Computed reversal potential

E

double (value field) Computed reversal potential

Temperature

double (value field) Temperature of cell

valence

int (value field) Valence of ion in Nernst calculation

Cin

double (value field) Internal conc of ion

Cout

double (value field) External conc of ion

scale

double (value field) Voltage scale factor

class NeuroMesh
setCell()

(destination message field) Assigns field value.

getCell()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setSubTree()

(destination message field) Assigns field value.

getSubTree()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setSeparateSpines()

(destination message field) Assigns field value.

getSeparateSpines()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getNumSegments()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getNumDiffCompts()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getParentVoxel()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getElecComptList()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getElecComptMap()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getStartVoxelInCompt()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getEndVoxelInCompt()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setDiffLength()

(destination message field) Assigns field value.

getDiffLength()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setGeometryPolicy()

(destination message field) Assigns field value.

getGeometryPolicy()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

cellPortion()

(destination message field) Tells NeuroMesh to mesh up a subpart of a cell. For nowassumed contiguous.The first argument is the cell Id. The second is the wildcardpath of compartments to use for the subpart.

spineListOut

Id,vector<Id>,vector<Id>,vector<unsigned int> (source message field) Request SpineMesh to construct self based on list of electrical compartments that this NeuroMesh has determined are spine shaft and spine head respectively. Also passes in the info about where each spine is connected to the NeuroMesh. Arguments: Cell Id, shaft compartment Ids, head compartment Ids,index of matching parent voxels for each spine

psdListOut

Id,vector<double>,vector<unsigned int> (source message field) Tells PsdMesh to build a mesh. Arguments: Cell Id, Coordinates of each psd, index of matching parent voxels for each spineThe coordinates each have 8 entries:xyz of centre of psd, xyz of vector perpendicular to psd, psd diameter, diffusion distance from parent compartment to PSD

cell

Id (value field) Id for base element of cell model. Uses this to traverse theentire tree of the cell to build the mesh.

subTree

vector<Id> (value field) Set of compartments to model. If they happen to be contiguousthen also set up diffusion between the compartments. Can alsohandle cases where the same cell is divided into multiplenon-diffusively-coupled compartments

separateSpines

bool (value field) Flag: when separateSpines is true, the traversal separates any compartment with the strings ‘spine’, ‘head’, ‘shaft’ or ‘neck’ in its name,Allows to set up separate mesh for spines, based on the same cell model. Requires for the spineListOut message tobe sent to the target SpineMesh object.

numSegments

unsigned int (value field) Number of cylindrical/spherical segments in model

numDiffCompts

unsigned int (value field) Number of diffusive compartments in model

parentVoxel

vector<unsigned int> (value field) Vector of indices of parents of each voxel.

elecComptList

vector<Id> (value field) Vector of Ids of all electrical compartments in this NeuroMesh. Ordering is as per the tree structure built in the NeuroMesh, and may differ from Id order. Ordering matches that used for startVoxelInCompt and endVoxelInCompt

elecComptMap

vector<Id> (value field) Vector of Ids of electrical compartments that map to each voxel. This is necessary because the order of the IDs may differ from the ordering of the voxels. Additionally, there are typically many more voxels than there are electrical compartments. So many voxels point to the same elecCompt.

startVoxelInCompt

vector<unsigned int> (value field) Index of first voxel that maps to each electrical compartment. Each elecCompt has one or more voxels. The voxels in a compartment are numbered sequentially.

endVoxelInCompt

vector<unsigned int> (value field) Index of end voxel that maps to each electrical compartment. In keeping with C and Python convention, this is one more than the last voxel. Each elecCompt has one or more voxels. The voxels in a compartment are numbered sequentially.

diffLength

double (value field) Diffusive length constant to use for subdivisions. The system willattempt to subdivide cell using diffusive compartments ofthe specified diffusion lengths as a maximum.In order to get integral numbersof compartments in each segment, it may subdivide more finely.Uses default of 0.5 microns, that is, half typical lambda.For default, consider a tau of about 1 second for mostreactions, and a diffusion const of about 1e-12 um^2/sec.This gives lambda of 1 micron

geometryPolicy

string (value field) Policy for how to interpret electrical model geometry (which is a branching 1-dimensional tree) in terms of 3-D constructslike spheres, cylinders, and cones.There are three options, default, trousers, and cylinder:default mode: - Use frustrums of cones. Distal diameter is always from compt dia. - For linear dendrites (no branching), proximal diameter is diameter of the parent compartment - For branching dendrites and dendrites emerging from soma, proximal diameter is from compt dia. Don’t worry about overlap. - Place somatic dendrites on surface of spherical soma, or at ends of cylindrical soma - Place dendritic spines on surface of cylindrical dendrites, not emerging from their middle.trousers mode: - Use frustrums of cones. Distal diameter is always from compt dia. - For linear dendrites (no branching), proximal diameter is diameter of the parent compartment - For branching dendrites, use a trouser function. Avoid overlap. - For soma, use some variant of trousers. Here we must avoid overlap - For spines, use a way to smoothly merge into parent dend. Radius of curvature should be similar to that of the spine neck. - Place somatic dendrites on surface of spherical soma, or at ends of cylindrical soma - Place dendritic spines on surface of cylindrical dendrites, not emerging from their middle.cylinder mode: - Use cylinders. Diameter is just compartment dia. - Place somatic dendrites on surface of spherical soma, or at ends of cylindrical soma - Place dendritic spines on surface of cylindrical dendrites, not emerging from their middle. - Ignore spatial overlap.

class Neuron

Neuron - A compartment container

class Neutral

Neutral: Base class for all MOOSE classes. Providesaccess functions for housekeeping fields and operations, messagetraversal, and so on.

parentMsg()

(destination message field) Message from Parent Element(s)

setThis()

(destination message field) Assigns field value.

getThis()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setName()

(destination message field) Assigns field value.

getName()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getMe()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getParent()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getChildren()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getPath()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getClassName()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setNumData()

(destination message field) Assigns field value.

getNumData()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setNumField()

(destination message field) Assigns field value.

getNumField()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setTick()

(destination message field) Assigns field value.

getTick()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getDt()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getValueFields()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getSourceFields()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getDestFields()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getMsgOut()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getMsgIn()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getNeighbors()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getMsgDests()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getMsgDestFunctions()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

childOut

int (source message field) Message to child Elements

this

Neutral (value field) Access function for entire object

name

string (value field) Name of object

me

ObjId (value field) ObjId for current object

parent

ObjId (value field) Parent ObjId for current object

children

vector<Id> (value field) vector of ObjIds listing all children of current object

path

string (value field) text path for object

className

string (value field) Class Name of object

numData

unsigned int (value field) # of Data entries on Element.Note that on a FieldElement this does NOT refer to field entries,but to the number of DataEntries on the parent of the FieldElement.

numField

unsigned int (value field) For a FieldElement: number of entries of self.For a regular Element: One.

tick

int (value field) Clock tick for this Element for periodic execution in the main simulation event loop. A default is normally assigned, based on object class, but one can override to any value between 0 and 19. Assigning to -1 means that the object is disabled and will not be called during simulation execution The actual timestep (dt) belonging to a clock tick is defined by the Clock object.

dt

double (value field) Timestep used for this Element. Zero if not scheduled.

valueFields

vector<string> (value field) List of all value fields on Element.These fields are accessed through the assignment operations in the Python interface.These fields may also be accessed as functions through the set<FieldName> and get<FieldName> commands.

sourceFields

vector<string> (value field) List of all source fields on Element, that is fields that can act as message sources.

destFields

vector<string> (value field) List of all destination fields on Element, that is, fieldsthat are accessed as Element functions.

msgOut

vector<ObjId> (value field) Messages going out from this Element

msgIn

vector<ObjId> (value field) Messages coming in to this Element

neighbors

string,vector<Id> (lookup field) Ids of Elements connected this Element on specified field.

msgDests

string,vector<ObjId> (lookup field) ObjIds receiving messages from the specified SrcFinfo

msgDestFunctions

string,vector<string> (lookup field) Matching function names for each ObjId receiving a msg from the specified SrcFinfo

class OneToAllMsg
setI1()

(destination message field) Assigns field value.

getI1()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

i1

unsigned int (value field) DataId of source Element.

class OneToOneDataIndexMsg
class OneToOneMsg
class PIDController

PID feedback controller.PID stands for Proportional-Integral-Derivative. It is used to feedback control dynamical systems. It tries to create a feedback output such that the sensed (measured) parameter is held at command value. Refer to wikipedia (http://wikipedia.org) for details on PID Controller.

proc

void (shared message field) This is a shared message to receive Process messages from the scheduler objects.The first entry in the shared msg is a MsgDest for the Process operation. It has a single argument, ProcInfo, which holds lots of information about current time, thread, dt and so on. The second entry is a MsgDest for the Reinit operation. It also uses ProcInfo.

setGain()

(destination message field) Assigns field value.

getGain()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setSaturation()

(destination message field) Assigns field value.

getSaturation()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setCommand()

(destination message field) Assigns field value.

getCommand()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getSensed()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setTauI()

(destination message field) Assigns field value.

getTauI()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setTauD()

(destination message field) Assigns field value.

getTauD()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getOutputValue()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getError()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getIntegral()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getDerivative()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getE_previous()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

commandIn()

(destination message field) Command (desired value) input. This is known as setpoint (SP) in control theory.

sensedIn()

(destination message field) Sensed parameter - this is the one to be tuned. This is known as process variable (PV) in control theory. This comes from the process we are trying to control.

gainDest()

(destination message field) Destination message to control the PIDController gain dynamically.

process()

(destination message field) Handle process calls.

reinit()

(destination message field) Reinitialize the object.

output

double (source message field) Sends the output of the PIDController. This is known as manipulated variable (MV) in control theory. This should be fed into the process which we are trying to control.

gain

double (value field) This is the proportional gain (Kp). This tuning parameter scales the proportional term. Larger gain usually results in faster response, but too much will lead to instability and oscillation.

saturation

double (value field) Bound on the permissible range of output. Defaults to maximum double value.

command

double (value field) The command (desired) value of the sensed parameter. In control theory this is commonly known as setpoint(SP).

sensed

double (value field) Sensed (measured) value. This is commonly known as process variable(PV) in control theory.

tauI

double (value field) The integration time constant, typically = dt. This is actually proportional gain divided by integral gain (Kp/Ki)). Larger Ki (smaller tauI) usually leads to fast elimination of steady state errors at the cost of larger overshoot.

tauD

double (value field) The differentiation time constant, typically = dt / 4. This is derivative gain (Kd) times proportional gain (Kp). Larger Kd (tauD) decreases overshoot at the cost of slowing down transient response and may lead to instability.

outputValue
double (value field) Output of the PIDController. This is given by::
gain * ( error + INTEGRAL[ error dt ] / tau_i + tau_d * d(error)/dt )

Where gain = proportional gain (Kp), tau_i = integral gain (Kp/Ki) and tau_d = derivative gain (Kd/Kp). In control theory this is also known as the manipulated variable (MV)

error

double (value field) The error term, which is the difference between command and sensed value.

integral

double (value field) The integral term. It is calculated as INTEGRAL(error dt) = previous_integral + dt * (error + e_previous)/2.

derivative

double (value field) The derivative term. This is (error - e_previous)/dt.

e_previous

double (value field) The error term for previous step.

class Pool
increment()

(destination message field) Increments mol numbers by specified amount. Can be +ve or -ve

decrement()

(destination message field) Decrements mol numbers by specified amount. Can be +ve or -ve

class PoolBase

Abstract base class for pools.

reac

void (shared message field) Connects to reaction

proc

void (shared message field) Shared message for process and reinit

species

void (shared message field) Shared message for connecting to species objects

setN()

(destination message field) Assigns field value.

getN()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setNInit()

(destination message field) Assigns field value.

getNInit()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setDiffConst()

(destination message field) Assigns field value.

getDiffConst()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setMotorConst()

(destination message field) Assigns field value.

getMotorConst()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setConc()

(destination message field) Assigns field value.

getConc()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setConcInit()

(destination message field) Assigns field value.

getConcInit()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setVolume()

(destination message field) Assigns field value.

getVolume()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setSpeciesId()

(destination message field) Assigns field value.

getSpeciesId()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

reacDest()

(destination message field) Handles reaction input

process()

(destination message field) Handles process call

reinit()

(destination message field) Handles reinit call

handleMolWt()

(destination message field) Separate finfo to assign molWt, and consequently diffusion const.Should only be used in SharedMsg with species.

nOut

double (source message field) Sends out # of molecules in pool on each timestep

requestMolWt

void (source message field) Requests Species object for mol wt

n

double (value field) Number of molecules in pool

nInit

double (value field) Initial value of number of molecules in pool

diffConst

double (value field) Diffusion constant of molecule

motorConst

double (value field) Motor transport rate molecule. + is away from soma, - is towards soma. Only relevant for ZombiePool subclasses.

conc

double (value field) Concentration of molecules in this pool

concInit

double (value field) Initial value of molecular concentration in pool

volume

double (value field) Volume of compartment. Units are SI. Utility field, the actual volume info is stored on a volume mesh entry in the parent compartment.This mapping is implicit: the parent compartment must be somewhere up the element tree, and must have matching mesh entries. If the compartment isn’tavailable the volume is just taken as 1

speciesId

unsigned int (value field) Species identifier for this mol pool. Eventually link to ontology.

class PostMaster
proc

void (shared message field) Shared message for process and reinit

getNumNodes()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getMyNode()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setBufferSize()

(destination message field) Assigns field value.

getBufferSize()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

process()

(destination message field) Handles process call

reinit()

(destination message field) Handles reinit call

numNodes

unsigned int (value field) Returns number of nodes that simulation runs on.

myNode

unsigned int (value field) Returns index of current node.

bufferSize

unsigned int (value field) Size of the send a receive buffers for each node.

class PsdMesh
setThickness()

(destination message field) Assigns field value.

getThickness()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

psdList()

(destination message field) Specifies the geometry of the spine,and the associated parent voxelArguments: cell container, disk params vector with 8 entriesper psd, parent voxel index

thickness

double (value field) An assumed thickness for PSD. The volume is computed as thePSD area passed in to each PSD, times this value.defaults to 50 nanometres. For reference, membranes are 5 nm.

class PulseGen

PulseGen: general purpose pulse generator. This can generate any number of pulses with specified level and duration.

proc

void (shared message field) This is a shared message to receive Process messages from the scheduler objects.The first entry in the shared msg is a MsgDest for the Process operation. It has a single argument, ProcInfo, which holds lots of information about current time, thread, dt and so on. The second entry is a MsgDest for the Reinit operation. It also uses ProcInfo.

getOutputValue()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setBaseLevel()

(destination message field) Assigns field value.

getBaseLevel()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setFirstLevel()

(destination message field) Assigns field value.

getFirstLevel()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setFirstWidth()

(destination message field) Assigns field value.

getFirstWidth()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setFirstDelay()

(destination message field) Assigns field value.

getFirstDelay()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setSecondLevel()

(destination message field) Assigns field value.

getSecondLevel()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setSecondWidth()

(destination message field) Assigns field value.

getSecondWidth()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setSecondDelay()

(destination message field) Assigns field value.

getSecondDelay()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setCount()

(destination message field) Assigns field value.

getCount()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setTrigMode()

(destination message field) Assigns field value.

getTrigMode()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setLevel()

(destination message field) Assigns field value.

getLevel()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setWidth()

(destination message field) Assigns field value.

getWidth()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setDelay()

(destination message field) Assigns field value.

getDelay()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

input()

(destination message field) Handle incoming input that determines gating/triggering onset. Note that although this is a double field, the underlying field is integer. So fractional part of input will be truncated

levelIn()

(destination message field) Handle level value coming from other objects

widthIn()

(destination message field) Handle width value coming from other objects

delayIn()

(destination message field) Handle delay value coming from other objects

process()

(destination message field) Handles process call, updates internal time stamp.

reinit()

(destination message field) Handles reinit call.

output

double (source message field) Current output level.

outputValue

double (value field) Output amplitude

baseLevel

double (value field) Basal level of the stimulus

firstLevel

double (value field) Amplitude of the first pulse in a sequence

firstWidth

double (value field) Width of the first pulse in a sequence

firstDelay

double (value field) Delay to start of the first pulse in a sequence

secondLevel

double (value field) Amplitude of the second pulse in a sequence

secondWidth

double (value field) Width of the second pulse in a sequence

secondDelay

double (value field) Delay to start of of the second pulse in a sequence

count

unsigned int (value field) Number of pulses in a sequence

trigMode
unsigned int (value field) Trigger mode for pulses in the sequence.
0 : free-running mode where it keeps looping its output 1 : external trigger, where it is triggered by an external input (and stops after creating the first train of pulses) 2 : external gate mode, where it keeps generating the pulses in a loop as long as the input is high.
level

unsigned int,double (lookup field) Level of the pulse at specified index

width

unsigned int,double (lookup field) Width of the pulse at specified index

delay

unsigned int,double (lookup field) Delay of the pulse at specified index

class RC

RC circuit: a series resistance R shunted by a capacitance C.

proc

void (shared message field) This is a shared message to receive Process messages from the scheduler objects.The first entry in the shared msg is a MsgDest for the Process operation. It has a single argument, ProcInfo, which holds lots of information about current time, thread, dt and so on. The second entry is a MsgDest for the Reinit operation. It also uses ProcInfo.

setV0()

(destination message field) Assigns field value.

getV0()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setR()

(destination message field) Assigns field value.

getR()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setC()

(destination message field) Assigns field value.

getC()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getState()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setInject()

(destination message field) Assigns field value.

getInject()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

injectIn()

(destination message field) Receives input to the RC circuit. All incoming messages are summed up to give the total input current.

process()

(destination message field) Handles process call.

reinit()

(destination message field) Handle reinitialization

output

double (source message field) Current output level.

V0

double (value field) Initial value of ‘state’

R

double (value field) Series resistance of the RC circuit.

C

double (value field) Parallel capacitance of the RC circuit.

state

double (value field) Output value of the RC circuit. This is the voltage across the capacitor.

inject

double (value field) Input value to the RC circuit.This is handled as an input current to the circuit.

class RandSpike

RandSpike object, generates random spikes at.specified mean rate. Based closely on GENESIS randspike.

proc

void (shared message field) Shared message to receive Process message from scheduler

process()

(destination message field) Handles process call

reinit()

(destination message field) Handles reinit call

setRate()

(destination message field) Assigns field value.

getRate()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setRefractT()

(destination message field) Assigns field value.

getRefractT()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setAbs_refract()

(destination message field) Assigns field value.

getAbs_refract()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getHasFired()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

spikeOut

double (source message field) Sends out a trigger for an event.

rate

double (value field) Specifies rate for random spike train. Note that this isprobabilistic, so the instantaneous rate may differ. If the rate is assigned be message and it varies slowly then the average firing rate will approach the specified rate

refractT

double (value field) Refractory Time.

abs_refract

double (value field) Absolute refractory time. Synonym for refractT.

hasFired

bool (value field) True if RandSpike has just fired

class Reac
class ReacBase

Base class for reactions. Provides the MOOSE APIfunctions, but ruthlessly refers almost all of them to derivedclasses, which have to provide the man page output.

sub

void (shared message field) Connects to substrate pool

prd

void (shared message field) Connects to substrate pool

proc

void (shared message field) Shared message for process and reinit

setNumKf()

(destination message field) Assigns field value.

getNumKf()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setNumKb()

(destination message field) Assigns field value.

getNumKb()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setKf()

(destination message field) Assigns field value.

getKf()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setKb()

(destination message field) Assigns field value.

getKb()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getNumSubstrates()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getNumProducts()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

subDest()

(destination message field) Handles # of molecules of substrate

prdDest()

(destination message field) Handles # of molecules of product

process()

(destination message field) Handles process call

reinit()

(destination message field) Handles reinit call

subOut

double,double (source message field) Sends out increment of molecules on product each timestep

prdOut

double,double (source message field) Sends out increment of molecules on product each timestep

numKf

double (value field) Forward rate constant, in # units

numKb

double (value field) Reverse rate constant, in # units

Kf

double (value field) Forward rate constant, in concentration units

Kb

double (value field) Reverse rate constant, in concentration units

numSubstrates

unsigned int (value field) Number of substrates of reaction

numProducts

unsigned int (value field) Number of products of reaction

class Shell
setclock()

(destination message field) Assigns clock ticks. Args: tick#, dt

create()

(destination message field) create( class, parent, newElm, name, numData, isGlobal )

delete()

(destination message field) Destroys Element, all its messages, and all its children. Args: Id

copy()

(destination message field) handleCopy( vector< Id > args, string newName, unsigned int nCopies, bool toGlobal, bool copyExtMsgs ): The vector< Id > has Id orig, Id newParent, Id newElm. This function copies an Element and all its children to a new parent. May also expand out the original into nCopies copies. Normally all messages within the copy tree are also copied. If the flag copyExtMsgs is true, then all msgs going out are also copied.

move()

(destination message field) handleMove( Id orig, Id newParent ): moves an Element to a new parent

addMsg()

(destination message field) Makes a msg. Arguments are: msgtype, src object, src field, dest object, dest field

quit()

(destination message field) Stops simulation running and quits the simulator

useClock()

(destination message field) Deals with assignment of path to a given clock. Arguments: path, field, tick number.

class SimpleSynHandler

The SimpleSynHandler handles simple synapses without plasticity. It uses a priority queue to manage them.

class SingleMsg
setI1()

(destination message field) Assigns field value.

getI1()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setI2()

(destination message field) Assigns field value.

getI2()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

i1

unsigned int (value field) Index of source object.

i2

unsigned int (value field) Index of dest object.

class SparseMsg
getNumRows()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getNumColumns()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getNumEntries()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setProbability()

(destination message field) Assigns field value.

getProbability()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setSeed()

(destination message field) Assigns field value.

getSeed()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setRandomConnectivity()

(destination message field) Assigns connectivity with specified probability and seed

setEntry()

(destination message field) Assigns single row,column value

unsetEntry()

(destination message field) Clears single row,column entry

clear()

(destination message field) Clears out the entire matrix

transpose()

(destination message field) Transposes the sparse matrix

pairFill()

(destination message field) Fills entire matrix using pairs of (x,y) indices to indicate presence of a connection. If the target is a FieldElement itautomagically assigns FieldIndices.

tripletFill()

(destination message field) Fills entire matrix using triplets of (x,y,fieldIndex) to fully specify every connection in the sparse matrix.

numRows

unsigned int (value field) Number of rows in matrix.

numColumns

unsigned int (value field) Number of columns in matrix.

numEntries

unsigned int (value field) Number of Entries in matrix.

probability

double (value field) connection probability for random connectivity.

seed

long (value field) Random number seed for generating probabilistic connectivity.

class Species
pool

void (shared message field) Connects to pools of this Species type

setMolWt()

(destination message field) Assigns field value.

getMolWt()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

handleMolWtRequest()

(destination message field) Handle requests for molWt.

molWtOut

double (source message field) returns molWt.

molWt

double (value field) Molecular weight of species

class SpikeGen
SpikeGen object, for detecting threshold crossings.The threshold detection can work in multiple modes.
If the refractT < 0.0, then it fires an event only at the rising edge of the input voltage waveform
proc

void (shared message field) Shared message to receive Process message from scheduler

process()

(destination message field) Handles process call

reinit()

(destination message field) Handles reinit call

Vm()

(destination message field) Handles Vm message coming in from compartment

setThreshold()

(destination message field) Assigns field value.

getThreshold()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setRefractT()

(destination message field) Assigns field value.

getRefractT()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setAbs_refract()

(destination message field) Assigns field value.

getAbs_refract()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getHasFired()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setEdgeTriggered()

(destination message field) Assigns field value.

getEdgeTriggered()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

spikeOut

double (source message field) Sends out a trigger for an event.

threshold

double (value field) Spiking threshold, must cross it going up

refractT

double (value field) Refractory Time.

abs_refract

double (value field) Absolute refractory time. Synonym for refractT.

hasFired

bool (value field) True if SpikeGen has just fired

edgeTriggered

bool (value field) When edgeTriggered = 0, the SpikeGen will fire an event in each timestep while incoming Vm is > threshold and at least abs_refracttime has passed since last event. This may be problematic if the incoming Vm remains above threshold for longer than abs_refract. Setting edgeTriggered to 1 resolves this as the SpikeGen generatesan event only on the rising edge of the incoming Vm and will remain idle unless the incoming Vm goes below threshold.

class SpikeStats

Object to do some minimal stats on rate of a spike train. Derived from the Stats object and returns the same set of stats.Can take either predigested spike event input, or can handle a continuous sampling of membrane potential Vm and decide if a spike has occured based on a threshold.

setThreshold()

(destination message field) Assigns field value.

getThreshold()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

addSpike()

(destination message field) Handles spike event time input, converts into a rate to do stats upon.

Vm()

(destination message field) Handles continuous voltage input, can be coming in much than update rate of the SpikeStats. Looks for transitions above threshold to register the arrival of a spike. Doesn’t do another spike till Vm falls below threshold.

threshold

double (value field) Spiking threshold. If Vm crosses this going up then the SpikeStats object considers that a spike has happened and adds it to the stats.

class SpineMesh
getParentVoxel()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

spineList()

(destination message field) Specifies the list of electrical compartments for the spine,and the associated parent voxelArguments: cell container, shaft compartments, head compartments, parent voxel index

parentVoxel

vector<unsigned int> (value field) Vector of indices of proximal voxels within this mesh.Spines are at present modeled with just one compartment,so each entry in this vector is always set to EMPTY == -1U

class Stats
proc

void (shared message field) Shared message for process and reinit

getMean()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getSdev()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getSum()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getNum()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getWmean()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getWsdev()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getWsum()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getWnum()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setWindowLength()

(destination message field) Assigns field value.

getWindowLength()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

input()

(destination message field) Handles continuous value input as a time-series. Multiple inputs are allowed, they will be merged.

process()

(destination message field) Handles process call

reinit()

(destination message field) Handles reinit call

requestOut

PSt6vectorIdSaIdEE (source message field) Sends request for a field to target object

mean

double (value field) Mean of all sampled values or of spike rate.

sdev

double (value field) Standard Deviation of all sampled values, or of rate.

sum

double (value field) Sum of all sampled values, or total number of spikes.

num

unsigned int (value field) Number of all sampled values, or total number of spikes.

wmean

double (value field) Mean of sampled values or of spike rate within window.

wsdev

double (value field) Standard Deviation of sampled values, or rate, within window.

wsum

double (value field) Sum of all sampled values, or total number of spikes, within window.

wnum

unsigned int (value field) Number of all sampled values, or total number of spikes, within window.

windowLength

unsigned int (value field) Number of bins for windowed stats. Ignores windowing if this value is zero.

class SteadyState
SteadyState: works out a steady-state value for a reaction system. This class uses the GSL multidimensional root finder algorithms to find the fixed points closest to the current molecular concentrations. When it finds the fixed points, it figures out eigenvalues of the solution, as a way to help classify the fixed points. Note that the method finds unstable as well as stable fixed points.
The SteadyState class also provides a utility function randomInit() to randomly initialize the concentrations, within the constraints of stoichiometry. This is useful if you are trying to find the major fixed points of the system. Note that this is probabilistic. If a fixed point is in a very narrow range of state space the probability of finding it is small and you will have to run many iterations with different initial conditions to find it. The numerical calculations used by the SteadyState solver are prone to failing on individual calculations. All is not lost, because the system reports the solutionStatus. It is recommended that you test this field after every calculation, so you can simply ignore cases where it failed and try again with different starting conditions. Another rule of thumb is that the SteadyState object is more likely to succeed in finding solutions from a new starting point if you numerically integrate the chemical system for a short time (typically under 1 second) before asking it to find the fixed point.
setStoich()

(destination message field) Assigns field value.

getStoich()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getBadStoichiometry()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getIsInitialized()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getNIter()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getStatus()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setMaxIter()

(destination message field) Assigns field value.

getMaxIter()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setConvergenceCriterion()

(destination message field) Assigns field value.

getConvergenceCriterion()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getNumVarPools()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getRank()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getStateType()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getNNegEigenvalues()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getNPosEigenvalues()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getSolutionStatus()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setTotal()

(destination message field) Assigns field value.

getTotal()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getEigenvalues()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setupMatrix()

(destination message field) This function initializes and rebuilds the matrices used in the calculation.

settle()

(destination message field) Finds the nearest steady state to the current initial conditions. This function rebuilds the entire calculation only if the object has not yet been initialized.

resettle()

(destination message field) Finds the nearest steady state to the current initial conditions. This function rebuilds the entire calculation

showMatrices()

(destination message field) Utility function to show the matrices derived for the calculations on the reaction system. Shows the Nr, gamma, and total matrices

randomInit()

(destination message field) Generate random initial conditions consistent with the massconservation rules. Typically invoked in order to scanstates

stoich

Id (value field) Specify the Id of the stoichiometry system to use

badStoichiometry

bool (value field) Bool: True if there is a problem with the stoichiometry

isInitialized

bool (value field) True if the model has been initialized successfully

nIter

unsigned int (value field) Number of iterations done by steady state solver

status

string (value field) Status of solver

maxIter

unsigned int (value field) Max permissible number of iterations to try before giving up

convergenceCriterion

double (value field) Fractional accuracy required to accept convergence

numVarPools

unsigned int (value field) Number of variable molecules in reaction system.

rank

unsigned int (value field) Number of independent molecules in reaction system

stateType

unsigned int (value field) 0: stable; 1: unstable; 2: saddle; 3: osc?; 4: one near-zero eigenvalue; 5: other

nNegEigenvalues

unsigned int (value field) Number of negative eigenvalues: indicates type of solution

nPosEigenvalues

unsigned int (value field) Number of positive eigenvalues: indicates type of solution

solutionStatus

unsigned int (value field) 0: Good; 1: Failed to find steady states; 2: Failed to find eigenvalues

total

unsigned int,double (lookup field) Totals table for conservation laws. The exact mapping ofthis to various sums of molecules is given by the conservation matrix, and is currently a bit opaque.The value of ‘total’ is set to initial conditions whenthe ‘SteadyState::settle’ function is called.Assigning values to the total is a special operation:it rescales the concentrations of all the affectedmolecules so that they are at the specified total.This happens the next time ‘settle’ is called.

eigenvalues

unsigned int,double (lookup field) Eigenvalues computed for steady state

class StimulusTable
proc

void (shared message field) Shared message for process and reinit

setStartTime()

(destination message field) Assigns field value.

getStartTime()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setStopTime()

(destination message field) Assigns field value.

getStopTime()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setLoopTime()

(destination message field) Assigns field value.

getLoopTime()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setStepSize()

(destination message field) Assigns field value.

getStepSize()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setStepPosition()

(destination message field) Assigns field value.

getStepPosition()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setDoLoop()

(destination message field) Assigns field value.

getDoLoop()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

process()

(destination message field) Handles process call, updates internal time stamp.

reinit()

(destination message field) Handles reinit call.

output

double (source message field) Sends out tabulated data according to lookup parameters.

startTime

double (value field) Start time used when table is emitting values. For lookupvalues below this, the table just sends out its zero entry.Corresponds to zeroth entry of table.

stopTime

double (value field) Time to stop emitting values.If time exceeds this, then the table sends out its last entry.The stopTime corresponds to the last entry of table.

loopTime

double (value field) If looping, this is the time between successive cycle starts.Defaults to the difference between stopTime and startTime, so that the output waveform cycles with precisely the same duration as the table contents.If larger than stopTime - startTime, then it pauses at the last table value till it is time to go around again.If smaller than stopTime - startTime, then it begins the next cycle even before the first one has reached the end of the table.

stepSize

double (value field) Increment in lookup (x) value on every timestep. If it isless than or equal to zero, the StimulusTable uses the current timeas the lookup value.

stepPosition

double (value field) Current value of lookup (x) value.If stepSize is less than or equal to zero, this is set tothe current time to use as the lookup value.

doLoop

bool (value field) Flag: Should it loop around to startTime once it has reachedstopTime. Default (zero) is to do a single pass.

class Stoich
setPath()

(destination message field) Assigns field value.

getPath()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setKsolve()

(destination message field) Assigns field value.

getKsolve()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setDsolve()

(destination message field) Assigns field value.

getDsolve()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setCompartment()

(destination message field) Assigns field value.

getCompartment()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getNumVarPools()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getNumAllPools()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getNumProxyPools()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getPoolIdMap()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getNumRates()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getMatrixEntry()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getColumnIndex()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getRowStart()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getProxyPools()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

unzombify()

(destination message field) Restore all zombies to their native state

buildXreacs()

(destination message field) Build cross-reaction terms between current stoich and argument. This function scans the voxels at which there are junctions between different compartments, and orchestrates set up of interfaces between the Ksolves that implement the X reacs at those junctions.

filterXreacs()

(destination message field) Filter cross-reaction terms on current stoichThis function clears out absent rate terms that would otherwise try to compute cross reactions where the junctions are not present.

path

string (value field) Wildcard path for reaction system handled by Stoich

ksolve

Id (value field) Id of Kinetic reaction solver class that works with this Stoich. Must be of class Ksolve, or Gsolve (at present) Must be assigned before the path is set.

dsolve

Id (value field) Id of Diffusion solver class that works with this Stoich. Must be of class Dsolve If left unset then the system will be assumed to work in a non-diffusive, well-stirred cell. If it is going to be used it must be assigned before the path is set.

compartment

Id (value field) Id of chemical compartment class that works with this Stoich. Must be derived from class ChemCompt. If left unset then the system will be assumed to work in a non-diffusive, well-stirred cell. If it is going to be used it must be assigned before the path is set.

numVarPools

unsigned int (value field) Number of time-varying pools to be computed by the numerical engine

numAllPools

unsigned int (value field) Total number of pools handled by the numerical engine. This includes variable ones, buffered ones, and functions

numProxyPools

unsigned int (value field) Number of pools here by proxy as substrates of a cross-compartment reaction.

poolIdMap

vector<unsigned int> (value field) Map to look up the index of the pool from its Id.poolIndex = poolIdMap[ Id::value() - poolOffset ] where the poolOffset is the smallest Id::value. poolOffset is passed back as the last entry of this vector. Any Ids that are not pools return EMPTY=~0.

numRates

unsigned int (value field) Total number of rate terms in the reaction system.

matrixEntry

vector<int> (value field) The non-zero matrix entries in the sparse matrix. Theircolumn indices are in a separate vector and the rowinformatino in a third

columnIndex

vector<unsigned int> (value field) Column Index of each matrix entry

rowStart

vector<unsigned int> (value field) Row start for each block of entries and column indices

proxyPools

Id,vector<Id> (lookup field) Return vector of proxy pools for X-compt reactions between current stoich, and the argument, which is a StoichId. The returned pools belong to the compartment handling the Stoich specified in the argument. If no pools are found, return an empty vector.

class SumFunc

SumFunc object. Adds up all inputs

class SymCompartment

SymCompartment object, for branching neuron models. In symmetric compartments the axial resistance is equally divided on two sides of the node. The equivalent circuit of the passive compartment becomes: (NOTE: you must use a fixed-width font like Courier for correct rendition of the diagrams below):

  Ra/2    B    Ra/2
A-/\/\/\_____/\/\/\-- C
          |
      ____|____
     |         |
     |         \
     |         / Rm
    ---- Cm    \
    ----       /
     |         |
     |       _____
     |        ---  Em
     |_________|
         |
       __|__
       /////

In case of branching, the B-C part of the parent’s axial resistance forms a Y with the A-B part of the children:

                             B'
                             |
                             /
                             \
                             /
                             \
                             /
                             |A'
              B              |
A-----/\/\/\-----/\/\/\------|C
                             |
                             |A"
                             /
                             \
                             /
                             \
                             /
                             |
                             B"

As per basic circuit analysis techniques, the C node is replaced using star-mesh transform. This requires all sibling compartments at a branch point to be connected via ‘sibling’ messages by the user (or by the cell reader in case of prototypes). For the same reason, the child compartment must be connected to the parent by distal-proximal message pair. The calculation of the coefficient for computing equivalent resistances in the mesh is done at reinit.

proximal

void (shared message field) This is a shared message between symmetric compartments. It goes from the proximal end of the current compartment to distal end of the compartment closer to the soma.

distal

void (shared message field) This is a shared message between symmetric compartments. It goes from the distal end of the current compartment to the proximal end of one further from the soma. The Ra values collected from children and sibling nodes are used for computing the equivalent resistance between each pair of nodes using star-mesh transformation. Mathematically this is the same as the proximal message, but the distinction is important for traversal and clarity.

sibling

void (shared message field) This is a shared message between symmetric compartments. Conceptually, this goes from the proximal end of the current compartment to the proximal end of a sibling compartment on a branch in a dendrite. However, this works out to the same as a ‘distal’ message in terms of equivalent circuit. The Ra values collected from siblings and parent node are used for computing the equivalent resistance between each pair of nodes using star-mesh transformation.

sphere

void (shared message field) This is a shared message between a spherical compartment (typically soma) and a number of evenly spaced cylindrical compartments, typically primary dendrites. The sphere contributes the usual Ra/2 to the resistance between itself and children. The child compartments do not connect across to each other through sibling messages. Instead they just connect to the soma through the ‘proximalOnly’ message

cylinder

void (shared message field) This is a shared message between a cylindrical compartment (typically a dendrite) and a number of evenly spaced child compartments, typically dendritic spines, protruding from the curved surface of the cylinder. We assume that the resistance from the cylinder curved surface to its axis is negligible. The child compartments do not need to connect across to each other through sibling messages. Instead they just connect to the parent dendrite through the ‘proximalOnly’ message

proximalOnly

void (shared message field) This is a shared message between a dendrite and a parent compartment whose offspring are spatially separated from each other. For example, evenly spaced dendrites emerging from a soma or spines emerging from a common parent dendrite. In these cases the sibling dendrites do not need to connect to each other through ‘sibling’ messages. Instead they just connect to the parent compartment (soma or dendrite) through this message

raxialSym()

(destination message field) Expects Ra and Vm from other compartment.

sumRaxial()

(destination message field) Expects Ra from other compartment.

raxialSym()

(destination message field) Expects Ra and Vm from other compartment.

sumRaxial()

(destination message field) Expects Ra from other compartment.

raxialSym()

(destination message field) Expects Ra and Vm from other compartment.

sumRaxial()

(destination message field) Expects Ra from other compartment.

raxialSphere()

(destination message field) Expects Ra and Vm from other compartment. This is a special case when other compartments are evenly distributed on a spherical compartment.

raxialCylinder()

(destination message field) Expects Ra and Vm from other compartment. This is a special case when other compartments are evenly distributed on the curved surface of the cylindrical compartment, so we assume that the cylinder does not add any further resistance.

raxialSphere()

(destination message field) Expects Ra and Vm from other compartment. This is a special case when other compartments are evenly distributed on a spherical compartment.

proximalOut

double,double (source message field) Sends out Ra and Vm on each timestep, on the proximal end of a compartment. That is, this end should be pointed toward the soma. Mathematically the same as raxialOut but provides a logical orientation of the dendrite. One can traverse proximalOut messages to get to the soma.

sumRaxialOut

double (source message field) Sends out Ra

distalOut

double,double (source message field) Sends out Ra and Vm on each timestep, on the distal end of a compartment. This end should be pointed away from the soma. Mathematically the same as proximalOut, but gives an orientation to the dendrite and helps traversal.

sumRaxialOut

double (source message field) Sends out Ra

distalOut

double,double (source message field) Sends out Ra and Vm on each timestep, on the distal end of a compartment. This end should be pointed away from the soma. Mathematically the same as proximalOut, but gives an orientation to the dendrite and helps traversal.

sumRaxialOut

double (source message field) Sends out Ra

distalOut

double,double (source message field) Sends out Ra and Vm on each timestep, on the distal end of a compartment. This end should be pointed away from the soma. Mathematically the same as proximalOut, but gives an orientation to the dendrite and helps traversal.

cylinderOut

double,double (source message field) Sends out Ra and Vm to compartments (typically spines) on the curved surface of a cylinder. Ra is set to nearly zero, since we assume that the resistance from axis to surface is negligible.

proximalOut

double,double (source message field) Sends out Ra and Vm on each timestep, on the proximal end of a compartment. That is, this end should be pointed toward the soma. Mathematically the same as raxialOut but provides a logical orientation of the dendrite. One can traverse proximalOut messages to get to the soma.

class SynChan

SynChan: Synaptic channel incorporating weight and delay. Does not handle actual arrival of synaptic events, that is done by one of the derived classes of SynHandlerBase. In use, the SynChan sits on the compartment connected to it by the channel message. One or more of the SynHandler objects connects to the SynChan through the activation message. The SynHandlers each manage multiple synapses, and the handlers can be fixed weight or have a learning rule.

setTau1()

(destination message field) Assigns field value.

getTau1()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setTau2()

(destination message field) Assigns field value.

getTau2()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setNormalizeWeights()

(destination message field) Assigns field value.

getNormalizeWeights()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

activation()

(destination message field) Sometimes we want to continuously activate the channel

modulator()

(destination message field) Modulate channel response

tau1

double (value field) Decay time constant for the synaptic conductance, tau1 >= tau2.

tau2

double (value field) Rise time constant for the synaptic conductance, tau1 >= tau2.

normalizeWeights

bool (value field) Flag. If true, the overall conductance is normalized by the number of individual synapses in this SynChan object.

class SynHandlerBase

Base class for handling synapse arrays converging onto a given channel or integrate-and-fire neuron. This class provides the interface for channels/intFires to connect to a range of synapse types, including simple synapses, synapses with different plasticity rules, and variants yet to be implemented.

proc

void (shared message field) Shared Finfo to receive Process messages from the clock.

setNumSynapses()

(destination message field) Assigns field value.

getNumSynapses()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setNumSynapse()

(destination message field) Assigns number of field entries in field array.

getNumSynapse()

(destination message field) Requests number of field entries in field array.The requesting Element must provide a handler for the returned value.

process()

(destination message field) Handles ‘process’ call. Checks if any spike events are due forhandling at this timestep, and does learning rule stuff if needed

reinit()

(destination message field) Handles ‘reinit’ call. Initializes all the synapses.

activationOut

double (source message field) Sends out level of activation on all synapses converging to this SynHandler

numSynapses

unsigned int (value field) Number of synapses on SynHandler. Duplicate field for num_synapse

class Synapse

Synapse using ring buffer for events.

setWeight()

(destination message field) Assigns field value.

getWeight()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setDelay()

(destination message field) Assigns field value.

getDelay()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

addSpike()

(destination message field) Handles arriving spike messages, inserts into event queue.

weight

double (value field) Synaptic weight

delay

double (value field) Axonal propagation delay to this synapse

class Table
proc

void (shared message field) Shared message for process and reinit

setThreshold()

(destination message field) Assigns field value.

getThreshold()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

input()

(destination message field) Fills data into table. Also handles data sent back following request

spike()

(destination message field) Fills spike timings into the Table. Signal has to exceed thresh

process()

(destination message field) Handles process call, updates internal time stamp.

reinit()

(destination message field) Handles reinit call.

requestOut

PSt6vectorIdSaIdEE (source message field) Sends request for a field to target object

threshold

double (value field) threshold used when Table acts as a buffer for spikes

class TableBase
setVector()

(destination message field) Assigns field value.

getVector()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getOutputValue()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getSize()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getY()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

linearTransform()

(destination message field) Linearly scales and offsets data. Scale first, then offset.

xplot()

(destination message field) Dumps table contents to xplot-format file. Argument 1 is filename, argument 2 is plotname

plainPlot()

(destination message field) Dumps table contents to single-column ascii file. Uses scientific notation. Argument 1 is filename

loadCSV()

(destination message field) Reads a single column from a CSV file. Arguments: filename, column#, starting row#, separator

loadXplot()

(destination message field) Reads a single plot from an xplot file. Arguments: filename, plotnameWhen the file has 2 columns, the 2nd column is loaded.

loadXplotRange()

(destination message field) Reads a single plot from an xplot file, and selects a subset of points from it. Arguments: filename, plotname, startindex, endindexUses C convention: startindex included, endindex not included.When the file has 2 columns, the 2nd column is loaded.

compareXplot()

(destination message field) Reads a plot from an xplot file and compares with contents of TableBase.Result is put in ‘output’ field of table.If the comparison fails (e.g., due to zero entries), the return value is -1.Arguments: filename, plotname, comparison_operationOperations: rmsd (for RMSDifference), rmsr (RMSratio ), dotp (Dot product, not yet implemented).

compareVec()

(destination message field) Compares contents of TableBase with a vector of doubles.Result is put in ‘output’ field of table.If the comparison fails (e.g., due to zero entries), the return value is -1.Arguments: Other vector, comparison_operationOperations: rmsd (for RMSDifference), rmsr (RMSratio ), dotp (Dot product, not yet implemented).

clearVec()

(destination message field) Handles request to clear the data vector

vector

vector<double> (value field) vector with all table entries

outputValue

double (value field) Output value holding current table entry or output of a calculation

size

unsigned int (value field) size of table. Note that this is the number of x divisions +1since it must represent the largest value as well as thesmallest

y

unsigned int,double (lookup field) Value of table at specified index

class TimeTable

TimeTable: Read in spike times from file and send out eventOut messages at the specified times.

proc

void (shared message field) Shared message for process and reinit

setFilename()

(destination message field) Assigns field value.

getFilename()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setMethod()

(destination message field) Assigns field value.

getMethod()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getState()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

process()

(destination message field) Handle process call

reinit()

(destination message field) Handles reinit call

eventOut

double (source message field) Sends out spike time if it falls in current timestep.

filename

string (value field) File to read lookup data from. The file should be contain two columns separated by any space character.

method

int (value field) Method to use for filling up the entries. Currently only method 4 (loading from file) is supported.

state

double (value field) Current state of the time table.

class VClamp

Voltage clamp object for holding neuronal compartments at a specific voltage. This implementation uses a builtin RC circuit to filter the command input and then use a PID to bring the sensed voltage (Vm from compartment) to the filtered command potential. Usage: Connect the currentOut source of VClamp to injectMsg dest of Compartment. Connect the VmOut source of Compartment to set_sensed dest of VClamp. Either set command field to a fixed value, or connect an appropriate source of command potential (like the outputOut message of an appropriately configured PulseGen) to set_command dest. The default settings for the RC filter and PID controller should be fine. For step change in command voltage, good defaults withintegration time step dt are as follows:

time constant of RC filter, tau = 5 * dt proportional gain of PID, gain = Cm/dt where Cm is the membrane capacitance of the compartment integration time of PID, ti = dt derivative time of PID, td = 0
proc

void (shared message field) Shared message to receive Process messages from the scheduler

getCommand()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getCurrent()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getSensed()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setMode()

(destination message field) Assigns field value.

getMode()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setTi()

(destination message field) Assigns field value.

getTi()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setTd()

(destination message field) Assigns field value.

getTd()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setTau()

(destination message field) Assigns field value.

getTau()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setGain()

(destination message field) Assigns field value.

getGain()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

sensedIn()

(destination message field) The VmOut message of the Compartment object should be connected here.

commandIn()

(destination message field) The command voltage source should be connected to this.

process()

(destination message field) Handles ‘process’ call on each time step.

reinit()

(destination message field) Handles ‘reinit’ call

currentOut

double (source message field) Sends out current output of the clamping circuit. This should be connected to the injectMsg field of a compartment to voltage clamp it.

command

double (value field) Command input received by the clamp circuit.

current

double (value field) The amount of current injected by the clamp into the membrane.

sensed

double (value field) Membrane potential read from compartment.

mode

unsigned int (value field) Working mode of the PID controller.

mode = 0, standard PID with proportional, integral and derivative all acting on the error.

mode = 1, derivative action based on command input

mode = 2, proportional action and derivative action are based on command input.

ti

double (value field) Integration time of the PID controller. Defaults to 1e9, i.e. integral action is negligibly small.

td

double (value field) Derivative time of the PID controller. This defaults to 0,i.e. derivative action is unused.

tau

double (value field) Time constant of the lowpass filter at input of the PID controller. This smooths out abrupt changes in the input. Set it to 5 * dt or more to avoid overshoots.

gain

double (value field) Proportional gain of the PID controller.

class Variable

Variable for storing double values. This is used in Function class.

setValue()

(destination message field) Assigns field value.

getValue()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setVar()

(destination message field) Handles incoming variable value.

value

double (value field) Variable value

class VectorTable
setXdivs()

(destination message field) Assigns field value.

getXdivs()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setXmin()

(destination message field) Assigns field value.

getXmin()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setXmax()

(destination message field) Assigns field value.

getXmax()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getInvdx()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

setTable()

(destination message field) Assigns field value.

getTable()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getLookupvalue()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

getLookupindex()

(destination message field) Requests field value. The requesting Element must provide a handler for the returned value.

xdivs

unsigned int (value field) Number of divisions.

xmin

double (value field) Minimum value in table.

xmax

double (value field) Maximum value in table.

invdx

double (value field) Maximum value in table.

table

vector<double> (value field) The lookup table.

lookupvalue

double,double (lookup field) Lookup function that performs interpolation to return a value.

lookupindex

unsigned int,double (lookup field) Lookup function that returns value by index.

class ZombieBufPool
class ZombieCaConc

ZombieCaConc: Calcium concentration pool. Takes current from a channel and keeps track of calcium buildup and depletion by a single exponential process.

class ZombieCompartment

Compartment object, for branching neuron models.

class ZombieEnz
class ZombieFuncPool
input()

(destination message field) Handles input to control value of n_

class ZombieHHChannel

ZombieHHChannel: Hodgkin-Huxley type voltage-gated Ion channel. Something like the old tabchannel from GENESIS, but also presents a similar interface as hhchan from GENESIS.

class ZombieMMenz
class ZombiePool
class ZombieReac
class testSched
process()

(destination message field) handles process call

Table Of Contents

This Page