NEURON
multisplit.h
Go to the documentation of this file.
1 #ifndef multisplit_h
2 #define multisplit_h
3 
4 #include <nrnmpiuse.h>
5 
6 #if 0 /* comment */
7 
8 in the classical order, knowing a node means you know the classical parent with
9 v_parent[node->v_node_index]. Also the effect of the parent on the node equation
10 is given by NODEB(node) and the effect of the node on the parent equation is
11 NODEA(node).
12 
13 One major circumstance of the multisplit order is that a parent child may
14 be reversed. For a single sid0, this happens on the path between the classical
15 root and sid0. If a parent-child has been reversed and given a node we know
16 the classical parent (presently a child) then at the node
17 ClassicalB = ClassicalParentPresentA
18 ClassicalA = ClassicalParentPresentB
19 
20 The other aspect of multisplit, both sid0 and sid1 exist, is more complex
21 because of the two parent nature of the center node on the path between sid0
22 and sid1. Our convention is that v_parent[centernode->v_node_index] is toward
23 sid0. And the other parent is
24 v_parent[c2sid1_parent_index[centernode->v_node_index - backbone_center_begin]]
25 So we need to know what Classical A and B are for the center node and its
26 two parents. A center node may be reversed or not with respect to its classical
27 parent. One of the present parents may or may not be its classical parent.
28 
29 #endif /* end comment */
30 
31 
32 #if 1 || PARANEURON
33 extern double* nrn_classicalNodeA(Node* n);
34 extern double* nrn_classicalNodeB(Node* n);
35 #define ClassicalNODEA(n) (*nrn_classicalNodeA(n))
36 #define ClassicalNODEB(n) (*nrn_classicalNodeB(n))
37 #else
38 #define ClassicalNODEA(n) NODEA(n)
39 #define ClassicalNODEB(n) NODEB(n)
40 #endif
41 
42 
43 #endif /* multisplit_h */
static double order(void *v)
Definition: cvodeobj.cpp:239
#define A(i)
Definition: multisplit.cpp:63
#define B(i)
Definition: multisplit.cpp:64
double * nrn_classicalNodeA(Node *n)
double * nrn_classicalNodeB(Node *n)
static Node * node(Object *)
Definition: netcvode.cpp:340
int const size_t const size_t n
Definition: nrngsl.h:11
static double multisplit(void *v)
Definition: ocbbs.cpp:612
#define parent
Definition: rbtqueue.cpp:47
#define root
Definition: rbtqueue.cpp:53
#define NODEA(n)
Definition: section.h:124
#define NODEB(n)
Definition: section.h:125
Definition: section.h:133
int v_node_index
Definition: section.h:175