-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSachse_fibroblast.cpp
68 lines (52 loc) · 1.65 KB
/
Sachse_fibroblast.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include "Sachse_fibroblast.h"
//in this file there are the realizations of the right hand side functions that difine the dynamics of cardiac fibroblast
// according to the model of Sachse et. al. These functions are used in the routine "void OdeSolve_fib(int i, double *V, Fibroblast *FB)"
//integrating the fibroblasts dynamics.
double Vf_function(double V, double O_shkr)
{
double I_kir, I_shkr, I_b;
double O_kir = 1./(a_kir+exp(b_kir*(V-E_k)*FbyRT));
I_kir = G_kir*O_kir*sqrt(K_0/1000.)*(V-E_k);
I_shkr = P_shkr*O_shkr*V*F*FbyRT*(K_i-K_0*exp(-V*FbyRT))/(1.-exp(-V*FbyRT));
I_b = G_b*(V-E_b);
return -1./Cf*(I_kir+I_b+I_shkr);
}
double C0_function(double C0, double C1, double V)
{
double kv, k_v;
kv = kv0*exp(V*zv*FbyRT);
k_v = k_v0*exp(V*z_v*FbyRT);
return -4.*kv*C0+k_v*C1;
}
double C1_function(double C0, double C1, double C2, double V)
{
double kv, k_v;
kv = kv0*exp(V*zv*FbyRT);
k_v = k_v0*exp(V*z_v*FbyRT);
return 4.*kv*C0-(3.*kv+k_v)*C1+2.*k_v*C2;
}
double C2_function(double C1, double C2, double C3, double V)
{
double kv, k_v;
kv = kv0*exp(V*zv*FbyRT);
k_v = k_v0*exp(V*z_v*FbyRT);
return 3.*kv*C1-(2.*kv+2.*k_v)*C2+3.*k_v*C3;
}
double C3_function(double C2, double C3, double C4, double V)
{
double kv, k_v;
kv = kv0*exp(V*zv*FbyRT);
k_v = k_v0*exp(V*z_v*FbyRT);
return 2.*kv*C2-(kv+3.*k_v)*C3+4.*k_v*C4;
}
double C4_function(double C3, double C4, double O_shkr, double V)
{
double kv, k_v;
kv = kv0*exp(V*zv*FbyRT);
k_v = k_v0*exp(V*z_v*FbyRT);
return kv*C3-(ko+4.*k_v)*C4+k_o*O_shkr;
}
double O_function(double C4, double O_shkr)
{
return ko*C4-k_o*O_shkr;
}