Dev /

DomainSetup

The domain is defined by several global variables: NodeType, MemParams, Volume, MatrixINT, MatrixEXT, MatrixBATH, MatrixE2B, and MatrixB2E. Several other arrays are kept to help process these vectors and sparse matrices: PatchSize, MemparamSize, AuxiliarySize, TissueSplit, StateSplit, MemparamSplit?, AuxiliarySplit?, and others.

NodeType is a byte-vector containing an identifier for every node in the domain. This identifier then relates to which membrane module will process that node. To compute the ionic currents, for example, we call every membrane module, sending it the entire domain to process. Inside every membrane module, then, we scan through the NodeType vector to see which nodes the given module should actually perform computations on. This is a ``standard'' vector to process, node i's data is found at NodeType.data[i].

MemParams is a real-vector containing a list of any spatially variant membrane parameters. Note that since each membrane module may have a different number of spatial parameters, we cannot simply index into this vector to find node i's parameter set. Instead, we must ``walk'' through the vector node-by-node, using the MemparamSize array to determine how many memory-units are between node i and node i+1. The MemparamSize array is sized to the maximum number of membrane modules in the simulation. MemparamSize[t] then gives the number of memory-units (real values) that nodetype t occupies. See the Membrane Module section below for more detail.

Volume is a real-vector containing a list of each node's associated volume. For finite-difference methods, this is simply the product of dx, dy, and dz. For finite-volume or box methods, we use the Voronoi volume of the node. For finite-element methods, you may wish to use the true Voronoi volume (which may require extra computational effort to compute) or some approximation to it (rather than using the intersection of perpendicular bisectors, it may be easier to compute edge midpoints and centroids). This is a ``standard'' vector to process, node i's data is found at Volume.data[i].

MatrixINT is the matrix representation of the diffusion operator. It must include any anisotropy and inhomogeneity that you wish to model. In some very simple cases, we can easily generate this matrix at the beginning of the simulation (ie. 1/2/3-D homogeneous cases).

See also DomainModule

Edit - History - Print - Recent Changes - Search
Page last modified on June 05, 2007, at 12:17 PM