void Neuron::derivs(double *y, double *dydt) { dV = (Iapp - G_Na * (V - E_Na) - G_K * (V - E_K) - G_L * (V - E_L)) / Cm; dm = (m_inf(V) - m) / tau_m(V); dh = (h_inf(V) - h) / tau_h(V); dn = (n_inf(V) - n) / tau_n(V); }
void ConnorStevens::derivs(double *y, double *dydt) { dV = (Iapp - input(0) * 1e6 - G_Na * (V - E_Na) - G_K * (V - E_K) - G_L * (V - E_L) - G_A * (V - E_A)) * 1000 / Cm; dm = (m_inf(V) - m) / tau_m(V); dh = (h_inf(V) - h) / tau_h(V); dn = (n_inf(V) - n) / tau_n(V); da = (a_inf(V) - a) / tau_a(V); db = (b_inf(V) - b) / tau_b(V); IKA = G_A * (V - E_A) * 1e-6 ; // A }
void derivs_one(const double* y, double* dydt, const double* p) { double V=y[0], h=y[1], n=y[2], x=y[3], Ca=y[4]; double V_tilde = C_1*V+C_2, V_Ca=p[0]; dydt[0] = -g_Na*powf(m_inf(V_tilde), 3)*h*(V-V_Na) - g_Ca*x*(V-V_Ca) - (g_K*powf(n, 4)+g_K_Ca*Ca/(0.5+Ca))*(V-V_K) - g_L*(V-V_L); // dV/dt dydt[1] = lambda*(h_inf(V_tilde)-h)/tau_h(V_tilde); // dh/dt dydt[2] = lambda*(n_inf(V_tilde)-n)/tau_n(V_tilde); // dn/dt dydt[3] = (x_inf(V)-x)/tau_x; // dx/dt dydt[4] = rho * (K_c * x * (V_Ca - V) - Ca); // d[Ca2+]/dt }
void Conductance::derivs(double *y,double *dydt) { dm = (m_inf(Vm)-m)/tau_m(Vm); dh = (h_inf(Vm)-h)/tau_h(Vm); dn = (n_inf(Vm)-n)/tau_n(Vm); }