浏览代码

Adding a progress report

Andrej 2 年之前
父节点
当前提交
da36c0437a
共有 3 个文件被更改,包括 11 次插入43 次删除
  1. 2 43
      pythonScripts/compartmentModel.ipynb
  2. 8 0
      pythonScripts/ivp.py
  3. 1 0
      pythonScripts/runSolver.py

+ 2 - 43
pythonScripts/compartmentModel.ipynb

@@ -2,55 +2,14 @@
  "cells": [
   {
    "cell_type": "code",
-   "execution_count": 53,
+   "execution_count": null,
    "metadata": {},
    "outputs": [
     {
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "Calculating for bodyWeight/0:(925, 16) [300.42769002826583]\n",
-      "Calculating for brainBloodPC/33:(925, 16) [0.08617769624105241]\n",
-      "Calculating for brainPC/12:(925, 16) [0.7755992661694717]\n",
-      "Calculating for fatPC/29:(925, 16) [0.001938998165423679]\n",
-      "Calculating for gutPC/37:(925, 16) [0.3987761199573678]\n",
-      "Calculating for hairPCBlood/10:(925, 16) [24664.976951005923]\n",
-      "Calculating for kidneyPC/23:(925, 16) [1.3788431398568386]\n",
-      "Calculating for liverPC/36:(925, 16) [2.1544424060263103]\n",
-      "Calculating for rbcPC/4:(925, 16) [12.409588258711548]\n",
-      "Calculating for richlyPerfusedPC/28:(925, 16) [0.08617769624105241]\n",
-      "Calculating for slowlyPerfusedPC/8:(925, 16) [0.34471078496420965]\n",
-      "Calculating for cardiacOutputScaled/24:(925, 16) [0.005367027600000001]\n",
-      "Calculating for kidneyFlowFraction/25:(925, 16) [0.00275625]\n",
-      "Calculating for richlyPerfusedFlowFraction/26:(925, 16) [0.0030140099999999997]\n",
-      "Calculating for fatFlowFraction/30:(925, 16) [0.00024335999999999995]\n",
-      "Calculating for slowlyPerfusedFlowFraction/32:(925, 16) [0.00558009]\n",
-      "Calculating for brainBloodFlowFraction/34:(925, 16) [0.00116964]\n",
-      "Calculating for liverInFlowFraction/39:(925, 16) [0.0002166784]\n",
-      "Calculating for liverOutFlowFraction/35:(925, 16) [0.00463761]\n",
-      "Calculating for gutFlowFraction/38:(925, 16) [0.0035676729]\n",
-      "Calculating for plasmaVolumeFraction/2:(925, 16) [1.1289600000000003e-05]\n",
-      "Calculating for redBloodCellsVolumeFraction/3:(925, 16) [3.6e-05]\n",
-      "Calculating for kidneyVolumeFraction/5:(925, 16) [1.44e-06]\n",
-      "Calculating for richlyPerfusedVolumeFraction/27:(925, 16) [0.0009]\n",
-      "Calculating for fatVolumeFraction/31:(925, 16) [0.004292870400000001]\n",
-      "Calculating for hairVolumeFraction/9:(925, 16) [1e-06]\n",
-      "Calculating for slowlyPerfusedVolumeFraction/7:(925, 16) [0.0031359999999999995]\n",
-      "Calculating for brainBloodVolumeFraction/13:(925, 16) [4.41e-06]\n",
-      "Calculating for brainVolumeFraction/14:(925, 16) [3.6e-05]\n",
-      "Calculating for liverVolumeFraction/15:(925, 16) [4.225e-05]\n",
-      "Calculating for gutVolumeFraction/20:(925, 16) [6.502500000000001e-06]\n",
-      "Calculating for intestineVolumeFraction/17:(925, 16) [0.0017640000000000002]\n",
-      "Calculating for kBScaled/16:(925, 16) [2.403409770466711e-13]\n",
-      "Calculating for kBRScaled/11:(925, 16) [2.4034097704667107e-09]\n",
-      "Calculating for kDScaled/21:(925, 16) [2.403409770466711e-13]\n",
-      "Calculating for kFScaled/22:(925, 16) [1.3513331382768287e-12]\n",
-      "Calculating for kHScaled/6:(925, 16) [8.298904480451765e-16]\n",
-      "Calculating for kIScaled/18:(925, 16) [2.4034097704667105e-11]\n",
-      "Calculating for kRBCScaled/1:(925, 16) [5.386106015065777e-05]\n",
-      "Calculating for kRScaled/19:(925, 16) [5.979775546700763e-10]\n",
-      "Done simultaneous LSODA SE\n",
-      "Time: 13.714 s\n"
+      "Using /home/studen/temp\n"
      ]
     }
    ],

+ 8 - 0
pythonScripts/ivp.py

@@ -49,6 +49,13 @@ def dfdySFull(t,S,system):
     #system.fS(y,t) is NxM matrix where M are parameters
     y=mS[:,0]
     mOut=system.M(t).dot(mS)+system.fSY(y,t)
+    try:
+      system.iPrint+=1
+    except AttributeError:
+      system.iPrint=0
+    if system.iPrint>1000:
+       print('At t={:.2f}'.format(t))
+       system.iPrint=0
     return numpy.ravel(mOut)
 
 def jacobiSEFull(t,S,system):
@@ -81,6 +88,7 @@ def solveSimultaneous(model,tmax,atol,rtol,method='LSODA',t0=0,y0=numpy.array([]
 def solveSequential(model,tmax,atol,rtol,method='LSODA',t0=0,y0=numpy.array([]), S1=numpy.array([])):
    if y0.size==0:
       y0=numpy.zeros(model.n)
+   model.iPrint=0
    solIVP=scipy.integrate.solve_ivp(dfdy,[t0, tmax],y0, args=(model,), jac=jacobi,
                                   method=method, atol=atol, rtol=rtol)
    #y is n x nt (odeint nt x n)

+ 1 - 0
pythonScripts/runSolver.py

@@ -64,6 +64,7 @@ def main(parFiles,jobDir):
    setup=parseSetup(setupFile)
    scale=getScale(setup)
    tmax=setup['tmax']*scale
+   print('Using {}'.format(jobDir))
    t0,y0,S1,lut,lutSE=getStartPoint(setup)
    #we should reorder S1 to match model.lutSE
    #S1 is nxm, so we should reorder columns