36 #define execerror hoc_execerror
74 typedef float NodeCoef;
75 typedef double NodeVal;
77 typedef struct Info3Coef {
91 typedef struct Info3Val {
104 #define NODED(n) (*((n)->_d))
105 #define NODERHS(n) (*((n)->_rhs))
110 #define NODEA(n) ((n)->_a)
111 #define NODEB(n) ((n)->_b)
112 #define NODEV(n) ((n)->_v)
113 #define NODEAREA(n) ((n)->_area)
115 #define NODEV(n) (*((n)->_v))
116 #define NODEAREA(n) ((n)->_area)
117 #define NODERINV(n) ((n)->_rinv)
118 #define VEC_A(i) (_nt->_actual_a[(i)])
119 #define VEC_B(i) (_nt->_actual_b[(i)])
120 #define VEC_D(i) (_nt->_actual_d[(i)])
121 #define VEC_RHS(i) (_nt->_actual_rhs[(i)])
122 #define VEC_V(i) (_nt->_actual_v[(i)])
123 #define VEC_AREA(i) (_nt->_actual_area[(i)])
124 #define NODEA(n) (VEC_A((n)->v_node_index))
125 #define NODEB(n) (VEC_B((n)->v_node_index))
165 struct Eqnblock* eqnblock;
180 Info3Coef fromparent;
188 #define nlayer (nrn_nlayer_extracellular)
212 #define PROP_PY_INDEX 10
228 #if defined(__cplusplus)
237 extern double nrn_ghk(
double,
double,
double,
double);
240 #if defined(__cplusplus)
280 typedef struct Eqnblock {
281 struct Eqnblock* eqnblock_next;
282 Pfri eqnblock_triang;
284 double* eqnblock_data;
288 double *eqnblock_row;
289 double *eqnblock_col;
290 double *eqnblock_matrix;
291 double *eqnblock_rhs:
294 The
interface with
EXTRACELLULAR makes things a bit more subtle.
295 It seems clear that we will have to change the meaning of
v to
297 This will avoid requiring two rows and two columns since
298 the state equations will depend only on
v and not vext.
299 In fact,
if vext did not have longitudinal relationships with
300 other vext the extracellular
mechanism could be implemented in
325 #define tstopbit (1 << 15)
326 #define tstopset stoprun |= tstopbit
327 #define tstopunset stoprun &= (~tstopbit)
static double order(void *v)
static void update(NrnThread *)
static VoidFunc functions[]
static Node * node(Object *)
static double take(void *v)
int find(const int, const int, const int, const int, const int)
void node_alloc(Section *, short)
double nrn_ghk(double, double, double, double)
int nrn_nlayer_extracellular
int nrn_is_valid_section_ptr(void *)
Datum * nrn_prop_datum_alloc(int type, int count, Prop *p)
double nrn_diameter(Node *)
struct Point_process Point_process
void nrn_prop_datum_free(int type, Datum *ppd)
Node * nrn_parent_node(Node *)
void nrn_prop_data_free(int type, double *pd)
void nrn_section_free(Section *)
double section_length(Section *)
Section * nrn_section_alloc()
double * nrn_prop_data_alloc(int type, int count, Prop *p)
struct Node * _classical_parent
Represent main neuron object computed by single thread.
struct Pt3d * logical_connection
struct Section * parentsec