36 #define execerror hoc_execerror 73 typedef float NodeCoef;
74 typedef double NodeVal;
76 typedef struct Info3Coef {
90 typedef struct Info3Val {
103 #define NODED(n) (*((n)->_d)) 104 #define NODERHS(n) (*((n)->_rhs)) 109 #define NODEA(n) ((n)->_a) 110 #define NODEB(n) ((n)->_b) 111 #define NODEV(n) ((n)->_v) 112 #define NODEAREA(n) ((n)->_area) 114 #define NODEV(n) (*((n)->_v)) 115 #define NODEAREA(n) ((n)->_area) 116 #define NODERINV(n) ((n)->_rinv) 117 #define VEC_A(i) (_nt->_actual_a[(i)]) 118 #define VEC_B(i) (_nt->_actual_b[(i)]) 119 #define VEC_D(i) (_nt->_actual_d[(i)]) 120 #define VEC_RHS(i) (_nt->_actual_rhs[(i)]) 121 #define VEC_V(i) (_nt->_actual_v[(i)]) 122 #define VEC_AREA(i) (_nt->_actual_area[(i)]) 123 #define NODEA(n) (VEC_A((n)->v_node_index)) 124 #define NODEB(n) (VEC_B((n)->v_node_index)) 164 struct Eqnblock *eqnblock;
179 Info3Coef fromparent;
187 #define nlayer (nrn_nlayer_extracellular) 211 #define PROP_PY_INDEX 10 227 #if defined(__cplusplus) 236 extern double nrn_ghk(
double,
double,
double,
double);
239 #if defined(__cplusplus) 279 typedef struct Eqnblock {
280 struct Eqnblock *eqnblock_next;
281 Pfri eqnblock_triang;
283 double *eqnblock_data;
287 double *eqnblock_row;
288 double *eqnblock_col;
289 double *eqnblock_matrix;
290 double *eqnblock_rhs:
293 The
interface with EXTRACELLULAR makes things a bit more subtle.
294 It seems clear that we will have to change the meaning of v to
295 be membrane potential so that the internal potential is v + vext.
296 This will avoid requiring two rows and two columns since
297 the state equations will depend only on v and not vext.
298 In fact, if vext did not have longitudinal relationships with
299 other vext the extracellular mechanism could be implemented in
317 #define ForAllSections(sec) \ 318 ITERATE(qsec, section_list) { Section* sec = hocSEC(qsec); 327 #define tstopbit (1 << 15) 328 #define tstopset stoprun |= tstopbit 329 #define tstopunset stoprun &= (~tstopbit)
struct Section * parentsec
struct Point_process Point_process
Represent main neuron object computed by single thread.
int nrn_nlayer_extracellular
static void update(NrnThread *)
double * nrn_prop_data_alloc(int type, int count, Prop *p)
struct Node * _classical_parent
void nrn_prop_datum_free(int type, Datum *ppd)
struct Pt3d * logical_connection
static void take(HCONV hc, const char *name)
void nrn_section_free(Section *)
static VoidFunc functions[]
double nrn_diameter(Node *)
Node * nrn_parent_node(Node *)
Section * nrn_section_alloc()
double nrn_ghk(double, double, double, double)
int nrn_is_valid_section_ptr(void *)
void nrn_prop_data_free(int type, double *pd)
int find(const int, const int, const int, const int, const int)
void node_alloc(Section *, short)
double section_length(Section *)
static Node * node(Object *)
Datum * nrn_prop_datum_alloc(int type, int count, Prop *p)