Skip to content

Instantly share code, notes, and snippets.

@agarny
Created July 28, 2019 17:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save agarny/9239d12eeacba594954021ff750c54ae to your computer and use it in GitHub Desktop.
Save agarny/9239d12eeacba594954021ff750c54ae to your computer and use it in GitHub Desktop.
from math import *
import numpy as np
def initializeConstants(states, variables):
states[0] = 0.9308
states[1] = 6.181512e-9
states[2] = 4.595622e-10
states[3] = 0.069199
states[4] = 0.409551
states[5] = 0.844449
states[6] = 0.017929
states[7] = 0.259947
states[8] = 0.653777
states[9] = 0.217311
states[10] = 0.158521
states[11] = 0.138975
states[12] = 9.15641e-6
states[13] = 0.435148
states[14] = 0.009508
states[15] = 0.447724
states[16] = 0.003058
states[17] = 0.846702
states[18] = 0.268909
states[19] = 0.020484
states[20] = 0.430836
states[21] = 0.014523
states[22] = 0.283185
states[23] = 0.011068
states[24] = 0.709051
states[25] = 0.00277
states[26] = 0.011845
states[27] = 0.845304
states[28] = 0.1162
states[29] = 0.001921
states[30] = 6.226104e-5
states[31] = -47.787168
states[32] = 5.0
variables[0] = 0.45
variables[1] = 2.5
variables[2] = 15.0
variables[3] = 1.0
variables[4] = 500.0
variables[5] = 5.0
variables[6] = 10000.0
variables[7] = 660.0
variables[8] = 148041085.1
variables[9] = 0.045
variables[10] = 10.0
variables[11] = 2.5
variables[12] = 0.031
variables[13] = 0.062
variables[14] = 542.0
variables[15] = 445.0
variables[16] = 446.0
variables[17] = 7.51
variables[18] = 751.0
variables[19] = 1.642e6
variables[20] = 175.4
variables[21] = 88800.0
variables[22] = 227700.0
variables[23] = 2277.0
variables[24] = 0.000286113
variables[25] = 5.0
variables[26] = 5.0e-5
variables[27] = 5.469e-5
variables[28] = 0.04
variables[29] = 67.0
variables[30] = 0.02
variables[31] = 3.9
variables[32] = 0.46
variables[33] = 0.0012
variables[34] = 0.0116
variables[35] = 1.8
variables[36] = 140.0
variables[37] = 5.4
variables[38] = 140.0
variables[39] = 5.7e-5
variables[40] = 96485.3415
variables[41] = 8314.472
variables[42] = 310.0
variables[43] = 0.0
variables[44] = 1.0
variables[45] = 0.0
variables[46] = 0.0
variables[47] = -45.0
variables[48] = -35.0
variables[49] = 0.5
variables[50] = 0.5
variables[51] = 0.4578
variables[52] = -16.4508
variables[53] = 4.3371
variables[54] = 0.000338
variables[55] = 0.0075
variables[56] = 0.0
variables[57] = 0.0
variables[58] = 0.04132
variables[59] = 0.0
variables[60] = 1.0
variables[61] = 0.00345
variables[62] = 0.00424
variables[63] = 0.00065
variables[64] = 0.1539e-3
variables[65] = 0.0223
variables[66] = 0.0
variables[67] = 395.3
variables[68] = 1628.0
variables[69] = 2.289
variables[70] = 561.4
variables[71] = 26.44
variables[72] = 4.663
variables[73] = 3.343
variables[74] = 0.0207
variables[75] = 26.44
variables[76] = 3.663
variables[77] = 0.1369
variables[78] = 0.0
variables[79] = 0.4315
variables[80] = 0.0
variables[81] = 1.4
variables[82] = 14.0
variables[83] = 0.08105
variables[84] = 1.0e-5
variables[85] = 45.0
variables[86] = 0.5927
variables[87] = 0.0
variables[88] = 0.00427
variables[89] = 0.0
variables[90] = 3.5e-3
def computeComputedConstants(variables):
variables[92] = 1.2 if (variables[46] > 0.0) else 1.0
variables[94] = variables[38]/(variables[72]+variables[38])
variables[101] = -0.25 if (variables[46] > 0.0) else 0.7*variables[45]/(0.00009+variables[45]) if (variables[45] > 0.0) else 0.0
variables[102] = variables[25]*(1.0-variables[101])
variables[112] = 0.000000001*3.14159265358979*pow(variables[31], 2.0)*variables[29]
variables[113] = 0.000000001*2.0*3.14159265358979*variables[30]*(variables[31]-variables[30]/2.0)*variables[29]
variables[114] = variables[33]*variables[112]
variables[115] = variables[32]*variables[112]-variables[113]
variables[116] = variables[34]*variables[112]
variables[117] = variables[41]*variables[42]/variables[40]
variables[119] = variables[88]/(variables[37]/(variables[37]+variables[85]))
variables[120] = variables[119]/(variables[86]+1.0)
variables[121] = variables[86]*variables[120]
variables[122] = variables[121]*variables[37]/(variables[37]+variables[85])
variables[123] = variables[120]*variables[37]/(variables[37]+variables[85])
variables[124] = -1.0-9.898*pow(1.0*variables[45], 0.618)/(pow(1.0*variables[45], 0.618)+0.00122423) if (variables[45] > 0.0) else 0.0
variables[125] = 7.5 if (variables[46] > 0.0) else 0.0
variables[127] = 1.23 if (variables[46] > 0.0) else 1.0
variables[128] = 0.31*variables[45]/(variables[45]+0.00009)
variables[129] = -8.0 if (variables[46] > 0.0) else 0.0
variables[130] = -27.0 if (variables[46] > 0.0) else 0.0
variables[133] = 1.2*variables[63] if (variables[46] > 0.0) else variables[63]
variables[135] = -14.0 if (variables[46] > 0.0) else 0.0
variables[136] = (3.5988-0.025641)/(1.0+0.0000012155/pow(1.0*variables[45], 1.6951))+0.025641
variables[138] = variables[117]*log(variables[37]/variables[36])
def computeRates(voi, states, rates, variables):
variables[97] = variables[2]-(variables[2]-variables[3])/(1.0+pow(variables[0]/states[4], variables[1]))
variables[99] = variables[4]*variables[97]
variables[98] = variables[6]/variables[97]
rates[0] = variables[5]*states[3]-variables[99]*states[30]*states[0]-(variables[98]*pow(states[30], 2.0)*states[0]-variables[7]*states[1])
rates[1] = variables[98]*pow(states[30], 2.0)*states[0]-variables[7]*states[1]-(variables[99]*states[30]*states[1]-variables[5]*states[2])
rates[2] = variables[99]*states[30]*states[1]-variables[5]*states[2]-(variables[7]*states[2]-variables[98]*pow(states[30], 2.0)*states[3])
rates[3] = variables[7]*states[2]-variables[98]*pow(states[30], 2.0)*states[3]-(variables[5]*states[3]-variables[99]*states[30]*states[0])
variables[105] = (states[13]-states[4])/variables[28]
variables[95] = variables[8]*states[1]*(states[4]-states[30])
variables[111] = variables[20]*states[4]*(1.0-states[11])-variables[15]*states[11]
rates[4] = variables[105]-(variables[95]+variables[10]*variables[111])
variables[131] = variables[54]/(variables[54]+states[30])
variables[132] = 0.001*variables[131]/variables[55]
rates[5] = (variables[131]-states[5])/variables[132]
variables[106] = variables[21]*states[12]*(1.0-states[6])-variables[16]*states[6]
rates[6] = variables[106]
variables[107] = variables[22]*states[12]*(1.0-(states[7]+states[8]))-variables[17]*states[7]
rates[7] = variables[107]
variables[108] = variables[23]*variables[11]*(1.0-(states[7]+states[8]))-variables[18]*states[8]
rates[8] = variables[108]
variables[109] = variables[19]*states[12]*(1.0-states[9])-variables[14]*states[9]
rates[9] = variables[109]
variables[110] = variables[19]*states[30]*(1.0-states[10])-variables[14]*states[10]
rates[10] = variables[110]
rates[11] = variables[111]
variables[103] = (states[30]-states[12])/variables[27]
variables[104] = variables[102]/(1.0+exp((-states[12]+variables[24])/variables[26]))
rates[12] = 1.0*(variables[103]*variables[113]-variables[104]*variables[116])/variables[115]-(variables[9]*variables[109]+variables[12]*variables[106]+variables[13]*variables[107])
rates[13] = variables[104]-variables[105]*variables[114]/variables[116]
variables[118] = variables[48] if ((voi > variables[49]) & (voi < variables[49]+variables[50])) else variables[47]
variables[140] = variables[118] if (variables[43] >= 1.0) else states[31]
variables[145] = 0.01329+0.99921/(1.0+exp((variables[140]+97.134-variables[124]-variables[125]-variables[89])/8.1752)) if (variables[140] < -(80.0-variables[124]-variables[125]-variables[89])) else 0.0002501*exp(-(variables[140]-variables[124]-variables[125]-variables[89])/12.861)
variables[144] = 1.0/(0.36*(variables[140]+148.8-variables[124]-variables[125])/(exp(0.066*(variables[140]+148.8-variables[124]-variables[125]))-1.0)+0.1*(variables[140]+87.3-variables[124]-variables[125])/(1.0-exp(-0.2*(variables[140]+87.3-variables[124]-variables[125]))))-0.054
rates[14] = (variables[145]-states[14])/variables[144]
variables[149] = 1.0/(1.0+exp(-(variables[140]+42.0504)/8.3106))
variables[150] = variables[140]+41.0
variables[151] = 2000.0 if (fabs(variables[150]) < variables[84]) else 200.0*variables[150]/(1.0-exp(-0.1*variables[150]))
variables[152] = 8000.0*exp(-0.056*(variables[140]+66.0))
variables[153] = 1.0/(variables[151]+variables[152])
rates[15] = (variables[149]-states[15])/variables[153]
variables[154] = 1.0/(1.0+exp((variables[140]+69.804)/4.4565))
variables[155] = 20.0*exp(-0.125*(variables[140]+75.0))
variables[156] = 2000.0/(320.0*exp(-0.1*(variables[140]+75.0))+1.0)
variables[157] = 1.0/(variables[155]+variables[156])
rates[16] = (variables[154]-states[16])/variables[157]
variables[170] = 1.0/(1.0+exp((variables[140]+37.4+variables[57])/(5.3+variables[56])))
variables[171] = 0.001*(44.3+230.0*exp(-pow((variables[140]+36.0)/10.0, 2.0)))
rates[17] = (variables[170]-states[17])/variables[171]
variables[173] = 1.0/(1.0+exp(-(variables[140]+38.3)/5.5))
variables[174] = 0.001/(1.068*exp((variables[140]+38.3)/30.0)+1.068*exp(-(variables[140]+38.3)/30.0))
rates[18] = (variables[173]-states[18])/variables[174]
variables[175] = 1.0/(1.0+exp((variables[140]+58.7)/3.8))
variables[176] = 1.0/(16.67*exp(-(variables[140]+75.0)/83.3)+16.67*exp((variables[140]+75.0)/15.38))+variables[59]
rates[19] = (variables[175]-states[19])/variables[176]
variables[178] = 1.0/(1.0+exp((variables[140]+49.0)/13.0))
variables[179] = 0.001*0.6*(65.17/(0.57*exp(-0.08*(variables[140]+44.0))+0.065*exp(0.1*(variables[140]+45.93)))+10.1)
rates[20] = (variables[178]-states[20])/variables[179]
variables[180] = 1.0/(1.0+exp(-(variables[140]-19.3)/15.0))
variables[181] = 0.001*0.66*1.4*(15.59/(1.037*exp(0.09*(variables[140]+30.61))+0.369*exp(-0.12*(variables[140]+23.84)))+2.98)
rates[21] = (variables[180]-states[21])/variables[181]
variables[185] = 1.0/(1.0+exp(-(variables[140]+10.0144)/7.6607))
variables[186] = 0.84655354/(4.2*exp(variables[140]/17.0)+0.15*exp(-variables[140]/21.6))
rates[22] = (variables[185]-states[22])/variables[186]
variables[187] = 1.0/(30.0*exp(variables[140]/10.0)+exp(-variables[140]/12.0))
rates[23] = (variables[185]-states[23])/variables[187]
variables[189] = 1.0/(1.0+exp((variables[140]+28.6)/17.1))
variables[188] = 1.0/(100.0*exp(-variables[140]/54.645)+656.0*exp(variables[140]/106.157))
rates[24] = (variables[189]-states[24])/variables[188]
variables[195] = 10.0*exp(0.0133*(variables[140]+40.0))
variables[196] = variables[136]/(variables[136]+variables[195])
variables[197] = 1.0/(variables[136]+variables[195])
rates[25] = (variables[196]-states[25])/variables[197]
variables[159] = 1.0/(1.0+exp((variables[140]+6.0)/-8.6))
variables[160] = 0.009/(1.0+exp((variables[140]+5.0)/12.0))+0.0005
rates[26] = (variables[159]-states[26])/variables[160]
variables[161] = 1.0/(1.0+exp((variables[140]+7.5)/10.0))
variables[162] = 0.59/(1.0+exp((variables[140]+60.0)/10.0))+3.05
rates[27] = (variables[161]-states[27])/variables[162]
variables[191] = sqrt(1.0/(1.0+exp(-(variables[140]+0.6383-variables[135])/10.7071)))
variables[192] = 28.0/(1.0+exp(-(variables[140]-40.0-variables[135])/3.0))
variables[193] = 1.0*exp(-(variables[140]-variables[135]-5.0)/25.0)
variables[205] = 1.0/(variables[192]+variables[193])
rates[28] = (variables[191]-states[28])/variables[205]
variables[167] = 1.0/(1.0+exp(-(variables[140]-variables[52]-variables[129])/(variables[53]*(1.0+variables[130]/100.0))))
variables[168] = -41.80001 if (variables[140] == -41.8) else 0.0 if (variables[140] == 0.0) else -6.80001 if (variables[140] == -6.8) else variables[140]
variables[203] = -0.02839*(variables[168]+41.8)/(exp(-(variables[168]+41.8)/2.5)-1.0)-0.0849*(variables[168]+6.8)/(exp(-(variables[168]+6.8)/4.8)-1.0)
variables[169] = -1.80001 if (variables[140] == -1.8) else variables[140]
variables[204] = 0.01143*(variables[169]+1.8)/(exp((variables[169]+1.8)/2.5)-1.0)
variables[210] = 0.001/(variables[203]+variables[204])
rates[29] = (variables[167]-states[29])/variables[210]
variables[163] = 2.0*variables[51]*(variables[140]-0.0)/(variables[117]*(1.0-exp(-1.0*(variables[140]-0.0)*2.0/variables[117])))*(states[30]-variables[35]*exp(-2.0*(variables[140]-0.0)/variables[117]))*states[29]*states[17]*states[5]
variables[172] = 2.0*variables[58]*variables[140]/(variables[117]*(1.0-exp(-1.0*variables[140]*2.0/variables[117])))*(states[30]-variables[35]*exp(-2.0*variables[140]/variables[117]))*states[18]*states[19]
variables[202] = 1.0+variables[35]/variables[76]*(1.0+exp(variables[78]*variables[140]/variables[117]))+variables[38]/variables[68]*(1.0+variables[38]/variables[70]*(1.0+variables[38]/variables[72]))
variables[208] = variables[35]/variables[76]*exp(variables[78]*variables[140]/variables[117])/variables[202]
variables[91] = states[32]
variables[200] = 1.0+states[30]/variables[74]*(1.0+exp(-variables[77]*variables[140]/variables[117])+variables[91]/variables[75])+variables[91]/variables[67]*(1.0+variables[91]/variables[69]*(1.0+variables[91]/variables[71]))
variables[206] = states[30]/variables[74]*exp(-variables[77]*variables[140]/variables[117])/variables[200]
variables[93] = variables[91]/(variables[71]+variables[91])
variables[201] = exp(variables[79]*variables[140]/(2.0*variables[117]))
variables[199] = exp(-variables[79]*variables[140]/(2.0*variables[117]))
variables[207] = variables[91]/variables[67]*variables[91]/variables[69]*(1.0+variables[91]/variables[71])*exp(variables[79]*variables[140]/(2.0*variables[117]))/variables[200]
variables[212] = variables[201]*variables[93]*(variables[207]+variables[206])+variables[199]*variables[206]*(variables[94]+variables[201])
variables[209] = variables[38]/variables[68]*variables[38]/variables[70]*(1.0+variables[38]/variables[72])*exp(-variables[79]*variables[140]/(2.0*variables[117]))/variables[202]
variables[211] = variables[199]*variables[94]*(variables[209]+variables[208])+variables[208]*variables[201]*(variables[93]+variables[199])
variables[214] = variables[209]*variables[94]*(variables[207]+variables[206])+variables[207]*variables[208]*(variables[94]+variables[201])
variables[213] = variables[207]*variables[93]*(variables[209]+variables[208])+variables[206]*variables[209]*(variables[93]+variables[199])
variables[215] = (1.0-variables[80])*variables[73]*(variables[212]*variables[208]-variables[211]*variables[206])/(variables[211]+variables[212]+variables[213]+variables[214])
rates[30] = variables[95]*variables[114]/variables[113]-((variables[163]+variables[172]-2.0*variables[215])/(2.0*variables[40]*variables[113])+variables[103]+variables[9]*variables[110])
variables[137] = variables[117]*log(variables[38]/variables[91])
variables[141] = states[14]*variables[122]*(variables[140]-variables[137])*(1.0-variables[87])
variables[142] = states[14]*variables[123]*(variables[140]-variables[138])*(1.0-variables[87])
variables[143] = variables[141]+variables[142]
variables[158] = variables[64]*states[26]*states[27]*(variables[140]-variables[138])
variables[194] = variables[60]*variables[61]*(variables[140]-variables[138])*(1.0+exp((variables[140]+20.0)/20.0))*states[25] if (variables[45] > 0.0) else 0.0
variables[165] = 0.0000185*variables[51]*(variables[140]-0.0)/(variables[117]*(1.0-exp(-1.0*(variables[140]-0.0)/variables[117])))*(variables[91]-variables[38]*exp(-1.0*(variables[140]-0.0)/variables[117]))*states[29]*states[17]*states[5]
variables[164] = 0.000365*variables[51]*(variables[140]-0.0)/(variables[117]*(1.0-exp(-1.0*(variables[140]-0.0)/variables[117])))*(variables[36]-variables[37]*exp(-1.0*(variables[140]-0.0)/variables[117]))*states[29]*states[17]*states[5]
variables[166] = (variables[163]+variables[164]+variables[165])*(1.0-variables[128])*1.0*variables[127]
variables[126] = variables[117]*log((variables[38]+0.12*variables[37])/(variables[91]+0.12*variables[36]))
variables[146] = variables[65]*pow(states[15], 3.0)*states[16]*(variables[140]-variables[126])
variables[147] = variables[66]*pow(states[15], 3.0)*(variables[140]-variables[126])
variables[148] = variables[146]+variables[147]
variables[198] = variables[92]*variables[83]*pow(1.0+pow(variables[81]/variables[37], 1.2), -1.0)*pow(1.0+pow(variables[82]/variables[91], 1.3), -1.0)*pow(1.0+exp(-(variables[140]-variables[137]+110.0)/20.0), -1.0)
variables[177] = variables[90]*(variables[140]-variables[138])*states[20]*states[21]
variables[134] = variables[117]*log((variables[37]+0.12*variables[38])/(variables[36]+0.12*variables[91]))
variables[190] = variables[133]*(variables[140]-variables[134])*pow(states[28], 2.0)
variables[182] = variables[62]*(variables[140]-variables[138])*(0.9*states[23]+0.1*states[22])*states[24]
variables[216] = variables[143]+variables[182]+variables[190]+variables[177]+variables[198]+variables[215]+variables[148]+variables[166]+variables[172]+variables[194]+variables[158]
rates[31] = -variables[216]/variables[39]
rates[32] = (1.0-variables[44])*-1.0*(variables[148]+variables[141]+variables[165]+3.0*variables[198]+3.0*variables[215])/(1.0*(variables[115]+variables[113])*variables[40])
def computeVariables(voi, states, rates, variables):
variables[91] = states[32]
variables[93] = variables[91]/(variables[71]+variables[91])
variables[95] = variables[8]*states[1]*(states[4]-states[30])
variables[96] = states[4]-states[30]
variables[97] = variables[2]-(variables[2]-variables[3])/(1.0+pow(variables[0]/states[4], variables[1]))
variables[98] = variables[6]/variables[97]
variables[99] = variables[4]*variables[97]
variables[100] = states[0]+states[1]+states[2]+states[3]
variables[103] = (states[30]-states[12])/variables[27]
variables[104] = variables[102]/(1.0+exp((-states[12]+variables[24])/variables[26]))
variables[105] = (states[13]-states[4])/variables[28]
variables[106] = variables[21]*states[12]*(1.0-states[6])-variables[16]*states[6]
variables[107] = variables[22]*states[12]*(1.0-(states[7]+states[8]))-variables[17]*states[7]
variables[108] = variables[23]*variables[11]*(1.0-(states[7]+states[8]))-variables[18]*states[8]
variables[109] = variables[19]*states[12]*(1.0-states[9])-variables[14]*states[9]
variables[110] = variables[19]*states[30]*(1.0-states[10])-variables[14]*states[10]
variables[111] = variables[20]*states[4]*(1.0-states[11])-variables[15]*states[11]
variables[126] = variables[117]*log((variables[38]+0.12*variables[37])/(variables[91]+0.12*variables[36]))
variables[131] = variables[54]/(variables[54]+states[30])
variables[132] = 0.001*variables[131]/variables[55]
variables[134] = variables[117]*log((variables[37]+0.12*variables[38])/(variables[36]+0.12*variables[91]))
variables[137] = variables[117]*log(variables[38]/variables[91])
variables[139] = 0.5*variables[117]*log(variables[35]/states[30])
variables[140] = variables[118] if (variables[43] >= 1.0) else states[31]
variables[141] = states[14]*variables[122]*(variables[140]-variables[137])*(1.0-variables[87])
variables[142] = states[14]*variables[123]*(variables[140]-variables[138])*(1.0-variables[87])
variables[143] = variables[141]+variables[142]
variables[144] = 1.0/(0.36*(variables[140]+148.8-variables[124]-variables[125])/(exp(0.066*(variables[140]+148.8-variables[124]-variables[125]))-1.0)+0.1*(variables[140]+87.3-variables[124]-variables[125])/(1.0-exp(-0.2*(variables[140]+87.3-variables[124]-variables[125]))))-0.054
variables[145] = 0.01329+0.99921/(1.0+exp((variables[140]+97.134-variables[124]-variables[125]-variables[89])/8.1752)) if (variables[140] < -(80.0-variables[124]-variables[125]-variables[89])) else 0.0002501*exp(-(variables[140]-variables[124]-variables[125]-variables[89])/12.861)
variables[146] = variables[65]*pow(states[15], 3.0)*states[16]*(variables[140]-variables[126])
variables[147] = variables[66]*pow(states[15], 3.0)*(variables[140]-variables[126])
variables[148] = variables[146]+variables[147]
variables[149] = 1.0/(1.0+exp(-(variables[140]+42.0504)/8.3106))
variables[150] = variables[140]+41.0
variables[151] = 2000.0 if (fabs(variables[150]) < variables[84]) else 200.0*variables[150]/(1.0-exp(-0.1*variables[150]))
variables[152] = 8000.0*exp(-0.056*(variables[140]+66.0))
variables[153] = 1.0/(variables[151]+variables[152])
variables[154] = 1.0/(1.0+exp((variables[140]+69.804)/4.4565))
variables[155] = 20.0*exp(-0.125*(variables[140]+75.0))
variables[156] = 2000.0/(320.0*exp(-0.1*(variables[140]+75.0))+1.0)
variables[157] = 1.0/(variables[155]+variables[156])
variables[158] = variables[64]*states[26]*states[27]*(variables[140]-variables[138])
variables[159] = 1.0/(1.0+exp((variables[140]+6.0)/-8.6))
variables[160] = 0.009/(1.0+exp((variables[140]+5.0)/12.0))+0.0005
variables[161] = 1.0/(1.0+exp((variables[140]+7.5)/10.0))
variables[162] = 0.59/(1.0+exp((variables[140]+60.0)/10.0))+3.05
variables[163] = 2.0*variables[51]*(variables[140]-0.0)/(variables[117]*(1.0-exp(-1.0*(variables[140]-0.0)*2.0/variables[117])))*(states[30]-variables[35]*exp(-2.0*(variables[140]-0.0)/variables[117]))*states[29]*states[17]*states[5]
variables[164] = 0.000365*variables[51]*(variables[140]-0.0)/(variables[117]*(1.0-exp(-1.0*(variables[140]-0.0)/variables[117])))*(variables[36]-variables[37]*exp(-1.0*(variables[140]-0.0)/variables[117]))*states[29]*states[17]*states[5]
variables[165] = 0.0000185*variables[51]*(variables[140]-0.0)/(variables[117]*(1.0-exp(-1.0*(variables[140]-0.0)/variables[117])))*(variables[91]-variables[38]*exp(-1.0*(variables[140]-0.0)/variables[117]))*states[29]*states[17]*states[5]
variables[166] = (variables[163]+variables[164]+variables[165])*(1.0-variables[128])*1.0*variables[127]
variables[167] = 1.0/(1.0+exp(-(variables[140]-variables[52]-variables[129])/(variables[53]*(1.0+variables[130]/100.0))))
variables[168] = -41.80001 if (variables[140] == -41.8) else 0.0 if (variables[140] == 0.0) else -6.80001 if (variables[140] == -6.8) else variables[140]
variables[169] = -1.80001 if (variables[140] == -1.8) else variables[140]
variables[170] = 1.0/(1.0+exp((variables[140]+37.4+variables[57])/(5.3+variables[56])))
variables[171] = 0.001*(44.3+230.0*exp(-pow((variables[140]+36.0)/10.0, 2.0)))
variables[172] = 2.0*variables[58]*variables[140]/(variables[117]*(1.0-exp(-1.0*variables[140]*2.0/variables[117])))*(states[30]-variables[35]*exp(-2.0*variables[140]/variables[117]))*states[18]*states[19]
variables[173] = 1.0/(1.0+exp(-(variables[140]+38.3)/5.5))
variables[174] = 0.001/(1.068*exp((variables[140]+38.3)/30.0)+1.068*exp(-(variables[140]+38.3)/30.0))
variables[175] = 1.0/(1.0+exp((variables[140]+58.7)/3.8))
variables[176] = 1.0/(16.67*exp(-(variables[140]+75.0)/83.3)+16.67*exp((variables[140]+75.0)/15.38))+variables[59]
variables[177] = variables[90]*(variables[140]-variables[138])*states[20]*states[21]
variables[178] = 1.0/(1.0+exp((variables[140]+49.0)/13.0))
variables[179] = 0.001*0.6*(65.17/(0.57*exp(-0.08*(variables[140]+44.0))+0.065*exp(0.1*(variables[140]+45.93)))+10.1)
variables[180] = 1.0/(1.0+exp(-(variables[140]-19.3)/15.0))
variables[181] = 0.001*0.66*1.4*(15.59/(1.037*exp(0.09*(variables[140]+30.61))+0.369*exp(-0.12*(variables[140]+23.84)))+2.98)
variables[182] = variables[62]*(variables[140]-variables[138])*(0.9*states[23]+0.1*states[22])*states[24]
variables[183] = 1.0/(1.0+exp(-(variables[140]+23.2)/6.6))/(0.84655354/(37.2*exp(variables[140]/11.9)+0.96*exp(-variables[140]/18.5)))
variables[184] = 4.0*((37.2*exp(variables[140]/15.9)+0.96*exp(-variables[140]/22.5))/0.84655354-1.0/(1.0+exp(-(variables[140]+23.2)/10.6))/(0.84655354/(37.2*exp(variables[140]/15.9)+0.96*exp(-variables[140]/22.5))))
variables[185] = 1.0/(1.0+exp(-(variables[140]+10.0144)/7.6607))
variables[186] = 0.84655354/(4.2*exp(variables[140]/17.0)+0.15*exp(-variables[140]/21.6))
variables[187] = 1.0/(30.0*exp(variables[140]/10.0)+exp(-variables[140]/12.0))
variables[188] = 1.0/(100.0*exp(-variables[140]/54.645)+656.0*exp(variables[140]/106.157))
variables[189] = 1.0/(1.0+exp((variables[140]+28.6)/17.1))
variables[190] = variables[133]*(variables[140]-variables[134])*pow(states[28], 2.0)
variables[191] = sqrt(1.0/(1.0+exp(-(variables[140]+0.6383-variables[135])/10.7071)))
variables[192] = 28.0/(1.0+exp(-(variables[140]-40.0-variables[135])/3.0))
variables[193] = 1.0*exp(-(variables[140]-variables[135]-5.0)/25.0)
variables[194] = variables[60]*variables[61]*(variables[140]-variables[138])*(1.0+exp((variables[140]+20.0)/20.0))*states[25] if (variables[45] > 0.0) else 0.0
variables[195] = 10.0*exp(0.0133*(variables[140]+40.0))
variables[196] = variables[136]/(variables[136]+variables[195])
variables[197] = 1.0/(variables[136]+variables[195])
variables[198] = variables[92]*variables[83]*pow(1.0+pow(variables[81]/variables[37], 1.2), -1.0)*pow(1.0+pow(variables[82]/variables[91], 1.3), -1.0)*pow(1.0+exp(-(variables[140]-variables[137]+110.0)/20.0), -1.0)
variables[199] = exp(-variables[79]*variables[140]/(2.0*variables[117]))
variables[200] = 1.0+states[30]/variables[74]*(1.0+exp(-variables[77]*variables[140]/variables[117])+variables[91]/variables[75])+variables[91]/variables[67]*(1.0+variables[91]/variables[69]*(1.0+variables[91]/variables[71]))
variables[201] = exp(variables[79]*variables[140]/(2.0*variables[117]))
variables[202] = 1.0+variables[35]/variables[76]*(1.0+exp(variables[78]*variables[140]/variables[117]))+variables[38]/variables[68]*(1.0+variables[38]/variables[70]*(1.0+variables[38]/variables[72]))
variables[203] = -0.02839*(variables[168]+41.8)/(exp(-(variables[168]+41.8)/2.5)-1.0)-0.0849*(variables[168]+6.8)/(exp(-(variables[168]+6.8)/4.8)-1.0)
variables[204] = 0.01143*(variables[169]+1.8)/(exp((variables[169]+1.8)/2.5)-1.0)
variables[205] = 1.0/(variables[192]+variables[193])
variables[206] = states[30]/variables[74]*exp(-variables[77]*variables[140]/variables[117])/variables[200]
variables[207] = variables[91]/variables[67]*variables[91]/variables[69]*(1.0+variables[91]/variables[71])*exp(variables[79]*variables[140]/(2.0*variables[117]))/variables[200]
variables[208] = variables[35]/variables[76]*exp(variables[78]*variables[140]/variables[117])/variables[202]
variables[209] = variables[38]/variables[68]*variables[38]/variables[70]*(1.0+variables[38]/variables[72])*exp(-variables[79]*variables[140]/(2.0*variables[117]))/variables[202]
variables[210] = 0.001/(variables[203]+variables[204])
variables[211] = variables[199]*variables[94]*(variables[209]+variables[208])+variables[208]*variables[201]*(variables[93]+variables[199])
variables[212] = variables[201]*variables[93]*(variables[207]+variables[206])+variables[199]*variables[206]*(variables[94]+variables[201])
variables[213] = variables[207]*variables[93]*(variables[209]+variables[208])+variables[206]*variables[209]*(variables[93]+variables[199])
variables[214] = variables[209]*variables[94]*(variables[207]+variables[206])+variables[207]*variables[208]*(variables[94]+variables[201])
variables[215] = (1.0-variables[80])*variables[73]*(variables[212]*variables[208]-variables[211]*variables[206])/(variables[211]+variables[212]+variables[213]+variables[214])
variables[216] = variables[143]+variables[182]+variables[190]+variables[177]+variables[198]+variables[215]+variables[148]+variables[166]+variables[172]+variables[194]+variables[158]
NB_OF_STATES = 33
NB_OF_VARIABLES = 217
DELTA_T = 0.00001
def outputData(voi, states, variables):
print(f"{voi}", end="")
for state in states:
print(f",{state}", end="")
for variable in variables:
print(f",{variable}", end="")
print("")
states = np.zeros(NB_OF_STATES)
rates = np.zeros(NB_OF_STATES)
variables = np.zeros(NB_OF_VARIABLES)
initializeConstants(states, variables)
computeComputedConstants(variables)
computeRates(0.0, states, rates, variables)
computeVariables(0.0, states, rates, variables)
outputData(0.0, states, variables)
for i in range(300000+1):
voi = i*DELTA_T
computeRates(voi, states, rates, variables)
for j in range(NB_OF_STATES):
states[j] += DELTA_T*rates[j]
if fmod(i+1, 100) == 0:
computeVariables(voi, states, rates, variables)
outputData((i+1)*DELTA_T, states, variables)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment