Spaces:
Sleeping
Sleeping
Franny Dean
commited on
Commit
·
d4dd864
1
Parent(s):
e65991c
no globals
Browse files- .ipynb_checkpoints/app-checkpoint.py +8 -14
- app.py +8 -14
.ipynb_checkpoints/app-checkpoint.py
CHANGED
|
@@ -388,10 +388,6 @@ def Plv(volume, Emax, Emin, t, Tc, Vd):
|
|
| 388 |
def Elastance(Emax,Emin, t, Tc):
|
| 389 |
t = t-int(t/Tc)*Tc #can remove this if only want 1st ED (and the 1st ES before)
|
| 390 |
tn = t/(0.2+0.15*Tc)
|
| 391 |
-
print(tn)
|
| 392 |
-
print(Emax)
|
| 393 |
-
print(Emin)
|
| 394 |
-
print(Tc)
|
| 395 |
return (Emax-Emin)*1.55*(tn/0.7)**1.9/((tn/0.7)**1.9+1.0)*1.0/((tn/1.17)**21.9+1.0) + Emin
|
| 396 |
|
| 397 |
def solve_ODE_for_volume(Rm, Ra, Emax, Emin, Vd, Tc, start_v, t):
|
|
@@ -550,11 +546,10 @@ def lvad_ode(y, t, Rs, Rm, Ra, Rc, Ca, Cs, Cr, Ls, Emax, Emin, Tc, Vd, ratew):
|
|
| 550 |
return dydt
|
| 551 |
|
| 552 |
#returns pv loop and ef when there is no lvad:
|
| 553 |
-
def f_nolvad(Tc, start_v, Emax, showpvloop):
|
| 554 |
|
| 555 |
N = 20
|
| 556 |
-
|
| 557 |
-
|
| 558 |
start_pla = float(start_v*Elastance(Emax, Emin, 0.0, Tc))
|
| 559 |
start_pao = 75.
|
| 560 |
start_pa = start_pao
|
|
@@ -585,10 +580,10 @@ def f_nolvad(Tc, start_v, Emax, showpvloop):
|
|
| 585 |
return ef, pao_ed, pao_es, ((ved - ves) * 60/Tc ) / 1000, sol[19*60000, 0], sol[19*60000, 1], sol[19*60000, 2], sol[19*60000, 3], sol[19*60000, 4], result_Vlv[18*60000:20*60000], result_Plv[18*60000:20*60000]
|
| 586 |
|
| 587 |
#returns the w at which suction occurs: (i.e. for which the slope of the envelopes of x6 becomes negative)
|
| 588 |
-
def get_suctionw(Tc, start_v, Emax, y00, y01, y02, y03, y04, w0, x60, ratew): #slope is slope0 for w
|
| 589 |
|
| 590 |
N = 70
|
| 591 |
-
|
| 592 |
|
| 593 |
start_pla = float(start_v*Elastance(Emax, Emin, 0.0, Tc))
|
| 594 |
start_pao = 75.
|
|
@@ -657,10 +652,9 @@ def get_suctionw(Tc, start_v, Emax, y00, y01, y02, y03, y04, w0, x60, ratew): #s
|
|
| 657 |
|
| 658 |
return suction_w
|
| 659 |
|
| 660 |
-
def f_lvad(Tc, start_v, Emax, c, slope, w0, x60, y00, y01, y02, y03, y04): #slope is slope0 for w
|
| 661 |
|
| 662 |
N = 70
|
| 663 |
-
global Rs, Rm, Ra, Rc, Ca, Cs, Cr, Ls, Emin, Vd
|
| 664 |
|
| 665 |
y0 = [y00, y01, y02, y03, y04, x60, w0]
|
| 666 |
|
|
@@ -793,7 +787,7 @@ def lvad_plots(Rm, Ra, Emax, Emin, Vd, Tc, start_v, gamma):
|
|
| 793 |
Ls=0.0005
|
| 794 |
|
| 795 |
#get values for periodic loops:
|
| 796 |
-
ef_nolvad, pao_ed, pao_es, co_nolvad, y00, y01, y02, y03, y04, Vlv0, Plv0 = f_nolvad(Tc, start_v, Emax, 0.0)
|
| 797 |
#pao_eds = [pao_ed]
|
| 798 |
#pao_ess = [pao_es]
|
| 799 |
|
|
@@ -801,7 +795,7 @@ def lvad_plots(Rm, Ra, Emax, Emin, Vd, Tc, start_v, gamma):
|
|
| 801 |
w0 = 5000.
|
| 802 |
ratew = 400.
|
| 803 |
x60 = 0.
|
| 804 |
-
suctionw = get_suctionw(Tc, start_v, Emax, y00, y01, y02, y03, y04, w0, x60, ratew)
|
| 805 |
|
| 806 |
#gamma = 1.8
|
| 807 |
c = 0.065 #(in simaan2008dynamical: 0.67, but too fast -> 0.061 gives better shape)
|
|
@@ -809,7 +803,7 @@ def lvad_plots(Rm, Ra, Emax, Emin, Vd, Tc, start_v, gamma):
|
|
| 809 |
w0 = suctionw / gamma #if doesn't work (x6 negative), change gamma down to 1.4 or up to 2.1
|
| 810 |
|
| 811 |
#compute new pv loops and ef with lvad added:
|
| 812 |
-
new_ef, pao_ed, pao_es, CO, MAP, Vlvs, Plvs = f_lvad(Tc, start_v, Emax, c, slope0, w0, x60, y00, y01, y02, y03, y04)
|
| 813 |
|
| 814 |
print("\nParameters: Tc, start_v, Emax:", Tc, start_v, Emax)
|
| 815 |
print("Suction speed:", suctionw)
|
|
|
|
| 388 |
def Elastance(Emax,Emin, t, Tc):
|
| 389 |
t = t-int(t/Tc)*Tc #can remove this if only want 1st ED (and the 1st ES before)
|
| 390 |
tn = t/(0.2+0.15*Tc)
|
|
|
|
|
|
|
|
|
|
|
|
|
| 391 |
return (Emax-Emin)*1.55*(tn/0.7)**1.9/((tn/0.7)**1.9+1.0)*1.0/((tn/1.17)**21.9+1.0) + Emin
|
| 392 |
|
| 393 |
def solve_ODE_for_volume(Rm, Ra, Emax, Emin, Vd, Tc, start_v, t):
|
|
|
|
| 546 |
return dydt
|
| 547 |
|
| 548 |
#returns pv loop and ef when there is no lvad:
|
| 549 |
+
def f_nolvad(Rs, Rm, Ra, Rc, Ca, Cs, Cr, Ls, Emin, Vd, Tc, start_v, Emax, showpvloop):
|
| 550 |
|
| 551 |
N = 20
|
| 552 |
+
|
|
|
|
| 553 |
start_pla = float(start_v*Elastance(Emax, Emin, 0.0, Tc))
|
| 554 |
start_pao = 75.
|
| 555 |
start_pa = start_pao
|
|
|
|
| 580 |
return ef, pao_ed, pao_es, ((ved - ves) * 60/Tc ) / 1000, sol[19*60000, 0], sol[19*60000, 1], sol[19*60000, 2], sol[19*60000, 3], sol[19*60000, 4], result_Vlv[18*60000:20*60000], result_Plv[18*60000:20*60000]
|
| 581 |
|
| 582 |
#returns the w at which suction occurs: (i.e. for which the slope of the envelopes of x6 becomes negative)
|
| 583 |
+
def get_suctionw(Rs, Rm, Ra, Rc, Ca, Cs, Cr, Ls, Emin, Vd, Tc, start_v, Emax, y00, y01, y02, y03, y04, w0, x60, ratew): #slope is slope0 for w
|
| 584 |
|
| 585 |
N = 70
|
| 586 |
+
|
| 587 |
|
| 588 |
start_pla = float(start_v*Elastance(Emax, Emin, 0.0, Tc))
|
| 589 |
start_pao = 75.
|
|
|
|
| 652 |
|
| 653 |
return suction_w
|
| 654 |
|
| 655 |
+
def f_lvad(Rs, Rm, Ra, Rc, Ca, Cs, Cr, Ls, Emin, Vd, Tc, start_v, Emax, c, slope, w0, x60, y00, y01, y02, y03, y04): #slope is slope0 for w
|
| 656 |
|
| 657 |
N = 70
|
|
|
|
| 658 |
|
| 659 |
y0 = [y00, y01, y02, y03, y04, x60, w0]
|
| 660 |
|
|
|
|
| 787 |
Ls=0.0005
|
| 788 |
|
| 789 |
#get values for periodic loops:
|
| 790 |
+
ef_nolvad, pao_ed, pao_es, co_nolvad, y00, y01, y02, y03, y04, Vlv0, Plv0 = f_nolvad(Rs, Rm, Ra, Rc, Ca, Cs, Cr, Ls, Emin, Vd,Tc, start_v, Emax, 0.0)
|
| 791 |
#pao_eds = [pao_ed]
|
| 792 |
#pao_ess = [pao_es]
|
| 793 |
|
|
|
|
| 795 |
w0 = 5000.
|
| 796 |
ratew = 400.
|
| 797 |
x60 = 0.
|
| 798 |
+
suctionw = get_suctionw(Rs, Rm, Ra, Rc, Ca, Cs, Cr, Ls, Emin, Vd, Tc, start_v, Emax, y00, y01, y02, y03, y04, w0, x60, ratew)
|
| 799 |
|
| 800 |
#gamma = 1.8
|
| 801 |
c = 0.065 #(in simaan2008dynamical: 0.67, but too fast -> 0.061 gives better shape)
|
|
|
|
| 803 |
w0 = suctionw / gamma #if doesn't work (x6 negative), change gamma down to 1.4 or up to 2.1
|
| 804 |
|
| 805 |
#compute new pv loops and ef with lvad added:
|
| 806 |
+
new_ef, pao_ed, pao_es, CO, MAP, Vlvs, Plvs = f_lvad(Rs, Rm, Ra, Rc, Ca, Cs, Cr, Ls, Emin, Vd, Tc, start_v, Emax, c, slope0, w0, x60, y00, y01, y02, y03, y04)
|
| 807 |
|
| 808 |
print("\nParameters: Tc, start_v, Emax:", Tc, start_v, Emax)
|
| 809 |
print("Suction speed:", suctionw)
|
app.py
CHANGED
|
@@ -388,10 +388,6 @@ def Plv(volume, Emax, Emin, t, Tc, Vd):
|
|
| 388 |
def Elastance(Emax,Emin, t, Tc):
|
| 389 |
t = t-int(t/Tc)*Tc #can remove this if only want 1st ED (and the 1st ES before)
|
| 390 |
tn = t/(0.2+0.15*Tc)
|
| 391 |
-
print(tn)
|
| 392 |
-
print(Emax)
|
| 393 |
-
print(Emin)
|
| 394 |
-
print(Tc)
|
| 395 |
return (Emax-Emin)*1.55*(tn/0.7)**1.9/((tn/0.7)**1.9+1.0)*1.0/((tn/1.17)**21.9+1.0) + Emin
|
| 396 |
|
| 397 |
def solve_ODE_for_volume(Rm, Ra, Emax, Emin, Vd, Tc, start_v, t):
|
|
@@ -550,11 +546,10 @@ def lvad_ode(y, t, Rs, Rm, Ra, Rc, Ca, Cs, Cr, Ls, Emax, Emin, Tc, Vd, ratew):
|
|
| 550 |
return dydt
|
| 551 |
|
| 552 |
#returns pv loop and ef when there is no lvad:
|
| 553 |
-
def f_nolvad(Tc, start_v, Emax, showpvloop):
|
| 554 |
|
| 555 |
N = 20
|
| 556 |
-
|
| 557 |
-
|
| 558 |
start_pla = float(start_v*Elastance(Emax, Emin, 0.0, Tc))
|
| 559 |
start_pao = 75.
|
| 560 |
start_pa = start_pao
|
|
@@ -585,10 +580,10 @@ def f_nolvad(Tc, start_v, Emax, showpvloop):
|
|
| 585 |
return ef, pao_ed, pao_es, ((ved - ves) * 60/Tc ) / 1000, sol[19*60000, 0], sol[19*60000, 1], sol[19*60000, 2], sol[19*60000, 3], sol[19*60000, 4], result_Vlv[18*60000:20*60000], result_Plv[18*60000:20*60000]
|
| 586 |
|
| 587 |
#returns the w at which suction occurs: (i.e. for which the slope of the envelopes of x6 becomes negative)
|
| 588 |
-
def get_suctionw(Tc, start_v, Emax, y00, y01, y02, y03, y04, w0, x60, ratew): #slope is slope0 for w
|
| 589 |
|
| 590 |
N = 70
|
| 591 |
-
|
| 592 |
|
| 593 |
start_pla = float(start_v*Elastance(Emax, Emin, 0.0, Tc))
|
| 594 |
start_pao = 75.
|
|
@@ -657,10 +652,9 @@ def get_suctionw(Tc, start_v, Emax, y00, y01, y02, y03, y04, w0, x60, ratew): #s
|
|
| 657 |
|
| 658 |
return suction_w
|
| 659 |
|
| 660 |
-
def f_lvad(Tc, start_v, Emax, c, slope, w0, x60, y00, y01, y02, y03, y04): #slope is slope0 for w
|
| 661 |
|
| 662 |
N = 70
|
| 663 |
-
global Rs, Rm, Ra, Rc, Ca, Cs, Cr, Ls, Emin, Vd
|
| 664 |
|
| 665 |
y0 = [y00, y01, y02, y03, y04, x60, w0]
|
| 666 |
|
|
@@ -793,7 +787,7 @@ def lvad_plots(Rm, Ra, Emax, Emin, Vd, Tc, start_v, gamma):
|
|
| 793 |
Ls=0.0005
|
| 794 |
|
| 795 |
#get values for periodic loops:
|
| 796 |
-
ef_nolvad, pao_ed, pao_es, co_nolvad, y00, y01, y02, y03, y04, Vlv0, Plv0 = f_nolvad(Tc, start_v, Emax, 0.0)
|
| 797 |
#pao_eds = [pao_ed]
|
| 798 |
#pao_ess = [pao_es]
|
| 799 |
|
|
@@ -801,7 +795,7 @@ def lvad_plots(Rm, Ra, Emax, Emin, Vd, Tc, start_v, gamma):
|
|
| 801 |
w0 = 5000.
|
| 802 |
ratew = 400.
|
| 803 |
x60 = 0.
|
| 804 |
-
suctionw = get_suctionw(Tc, start_v, Emax, y00, y01, y02, y03, y04, w0, x60, ratew)
|
| 805 |
|
| 806 |
#gamma = 1.8
|
| 807 |
c = 0.065 #(in simaan2008dynamical: 0.67, but too fast -> 0.061 gives better shape)
|
|
@@ -809,7 +803,7 @@ def lvad_plots(Rm, Ra, Emax, Emin, Vd, Tc, start_v, gamma):
|
|
| 809 |
w0 = suctionw / gamma #if doesn't work (x6 negative), change gamma down to 1.4 or up to 2.1
|
| 810 |
|
| 811 |
#compute new pv loops and ef with lvad added:
|
| 812 |
-
new_ef, pao_ed, pao_es, CO, MAP, Vlvs, Plvs = f_lvad(Tc, start_v, Emax, c, slope0, w0, x60, y00, y01, y02, y03, y04)
|
| 813 |
|
| 814 |
print("\nParameters: Tc, start_v, Emax:", Tc, start_v, Emax)
|
| 815 |
print("Suction speed:", suctionw)
|
|
|
|
| 388 |
def Elastance(Emax,Emin, t, Tc):
|
| 389 |
t = t-int(t/Tc)*Tc #can remove this if only want 1st ED (and the 1st ES before)
|
| 390 |
tn = t/(0.2+0.15*Tc)
|
|
|
|
|
|
|
|
|
|
|
|
|
| 391 |
return (Emax-Emin)*1.55*(tn/0.7)**1.9/((tn/0.7)**1.9+1.0)*1.0/((tn/1.17)**21.9+1.0) + Emin
|
| 392 |
|
| 393 |
def solve_ODE_for_volume(Rm, Ra, Emax, Emin, Vd, Tc, start_v, t):
|
|
|
|
| 546 |
return dydt
|
| 547 |
|
| 548 |
#returns pv loop and ef when there is no lvad:
|
| 549 |
+
def f_nolvad(Rs, Rm, Ra, Rc, Ca, Cs, Cr, Ls, Emin, Vd, Tc, start_v, Emax, showpvloop):
|
| 550 |
|
| 551 |
N = 20
|
| 552 |
+
|
|
|
|
| 553 |
start_pla = float(start_v*Elastance(Emax, Emin, 0.0, Tc))
|
| 554 |
start_pao = 75.
|
| 555 |
start_pa = start_pao
|
|
|
|
| 580 |
return ef, pao_ed, pao_es, ((ved - ves) * 60/Tc ) / 1000, sol[19*60000, 0], sol[19*60000, 1], sol[19*60000, 2], sol[19*60000, 3], sol[19*60000, 4], result_Vlv[18*60000:20*60000], result_Plv[18*60000:20*60000]
|
| 581 |
|
| 582 |
#returns the w at which suction occurs: (i.e. for which the slope of the envelopes of x6 becomes negative)
|
| 583 |
+
def get_suctionw(Rs, Rm, Ra, Rc, Ca, Cs, Cr, Ls, Emin, Vd, Tc, start_v, Emax, y00, y01, y02, y03, y04, w0, x60, ratew): #slope is slope0 for w
|
| 584 |
|
| 585 |
N = 70
|
| 586 |
+
|
| 587 |
|
| 588 |
start_pla = float(start_v*Elastance(Emax, Emin, 0.0, Tc))
|
| 589 |
start_pao = 75.
|
|
|
|
| 652 |
|
| 653 |
return suction_w
|
| 654 |
|
| 655 |
+
def f_lvad(Rs, Rm, Ra, Rc, Ca, Cs, Cr, Ls, Emin, Vd, Tc, start_v, Emax, c, slope, w0, x60, y00, y01, y02, y03, y04): #slope is slope0 for w
|
| 656 |
|
| 657 |
N = 70
|
|
|
|
| 658 |
|
| 659 |
y0 = [y00, y01, y02, y03, y04, x60, w0]
|
| 660 |
|
|
|
|
| 787 |
Ls=0.0005
|
| 788 |
|
| 789 |
#get values for periodic loops:
|
| 790 |
+
ef_nolvad, pao_ed, pao_es, co_nolvad, y00, y01, y02, y03, y04, Vlv0, Plv0 = f_nolvad(Rs, Rm, Ra, Rc, Ca, Cs, Cr, Ls, Emin, Vd,Tc, start_v, Emax, 0.0)
|
| 791 |
#pao_eds = [pao_ed]
|
| 792 |
#pao_ess = [pao_es]
|
| 793 |
|
|
|
|
| 795 |
w0 = 5000.
|
| 796 |
ratew = 400.
|
| 797 |
x60 = 0.
|
| 798 |
+
suctionw = get_suctionw(Rs, Rm, Ra, Rc, Ca, Cs, Cr, Ls, Emin, Vd, Tc, start_v, Emax, y00, y01, y02, y03, y04, w0, x60, ratew)
|
| 799 |
|
| 800 |
#gamma = 1.8
|
| 801 |
c = 0.065 #(in simaan2008dynamical: 0.67, but too fast -> 0.061 gives better shape)
|
|
|
|
| 803 |
w0 = suctionw / gamma #if doesn't work (x6 negative), change gamma down to 1.4 or up to 2.1
|
| 804 |
|
| 805 |
#compute new pv loops and ef with lvad added:
|
| 806 |
+
new_ef, pao_ed, pao_es, CO, MAP, Vlvs, Plvs = f_lvad(Rs, Rm, Ra, Rc, Ca, Cs, Cr, Ls, Emin, Vd, Tc, start_v, Emax, c, slope0, w0, x60, y00, y01, y02, y03, y04)
|
| 807 |
|
| 808 |
print("\nParameters: Tc, start_v, Emax:", Tc, start_v, Emax)
|
| 809 |
print("Suction speed:", suctionw)
|