public override void dydt(double[] dydt, double t, double[] y, IStimulus stimulus) { double En = y[0]; double Ei = y[1]; double Rbb = getRbb(y); alpha(a, y); beta(b, y); dydt[0] = -(Iion_n(y) - stimulus.GetValue(t) - (Ei - En) / Rbb) / (Cn + Cm); dydt[1] = -(Iion_i(y) + (Ei - En) / Rbb - Cm * dydt[0]) / Ci; if (ClampKo == 1) { dydt[2] = 0; } else { dydt[2] = (jK_i(y) + jPump(y)) / Vpa; } for (int n = 0; n < Ngating; ++n) { dydt[n + 3] = a[n] * (1 - y[n + 3]) - b[n] * y[n + 3]; } }
public virtual void dydt(double[] dydt, double t, double[] y, IStimulus stimulus) { double En = y[0]; double Ei = y[1]; alpha(a, y); beta(b, y); dydt[0] = -(Iion_n(y) - stimulus.GetValue(t) - (Ei - En) / Ril) / (Cn + Cm); dydt[1] = -(Iion_i(y) + (Ei - En) / Ril - Cm * dydt[0]) / Ci; for (int n = 0; n < Ngating; ++n) dydt[n + 2] = a[n] * (1 - y[n + 2]) - b[n] * y[n + 2]; }
public virtual void dydt(double[] dydt, double t, double[] y, IStimulus stimulus) { double En = y[0]; double Ei = y[1]; alpha(a, y); beta(b, y); dydt[0] = -(Iion_n(y) - stimulus.GetValue(t) - (Ei - En) / Ril) / (Cn + Cm); dydt[1] = -(Iion_i(y) + (Ei - En) / Ril - Cm * dydt[0]) / Ci; for (int n = 0; n < Ngating; ++n) { dydt[n + 2] = a[n] * (1 - y[n + 2]) - b[n] * y[n + 2]; } }
private void CompileLines(IStimulus stimulus) { lines = new List <Line>(); var analyser = new TimeAnalyser(); stimulus.Visit(analyser); analyser.TimePoints.Sort(); time = analyser.TimePoints.Distinct().ToArray(); for (int n = 0; n < time.Length - 1; ++n) { lines.Add(new Line() { Time = time[n], Value = stimulus.GetValue(time[n]), Slope = stimulus.GetSlope(time[n]), Length = time[n + 1] - time[n], Count = CPARDevice.TimeToCount(time[n + 1] - time[n]) }); } }
public override void dydt(double[] dydt, double t, double[] y, IStimulus stimulus) { double En = y[0]; double Ei = y[1]; double Rbb = getRbb(y); alpha(a, y); beta(b, y); dydt[0] = -(Iion_n(y) - stimulus.GetValue(t) - (Ei - En) / Rbb) / (Cn + Cm); dydt[1] = -(Iion_i(y) + (Ei - En) / Rbb - Cm * dydt[0]) / Ci; if (ClampKo == 1) dydt[2] = 0; else dydt[2] = (jK_i(y) + jPump(y))/Vpa; for (int n = 0; n < Ngating; ++n) dydt[n + 3] = a[n] * (1 - y[n + 3]) - b[n] * y[n + 3]; }