Have a personal or library account? Click to login
VaMpy: A Python Package to Solve 1D Blood Flow Problems Cover

VaMpy: A Python Package to Solve 1D Blood Flow Problems

Open Access
|Jun 2017

Figures & Tables

jors-5-159-g1.png
Figure 1

Example geometry of a bifurcation implemented in VaMpy. The example represents the common carotid artery (parent vessel) and its two daughter vessels, which are used for validation purposes of the software. Artery segments have an upstream and downstream radius, where the downstream radius has to be equal to or smaller than the upstream radius. The radius of the vessel then is r0(z)= Ruexp(log(Rd/Ru)z/L).

jors-5-159-g2.png
Figure 2

Illustration of the LW method. The solution is fully known at time step n (black circles) and we are looking for the solution at grid point m at time step n + 1 (white circle). To determine the unknown solution, two intermediate solutions at half grid points m ± 1/2 and at half time step n + 1/2 are determined from grid points m – 1, m and m + 1 at current time step n. The intermediate solutions are then used in conjunction with the known solution at grid point m and current time step n to calculate the unknown solution at grid point m and next time step n + 1 [4].

pos = 0 # identifier for the next artery
arteries[pos] = Artery (Ru, Rd) # list containing artery
                                                   # objects
radii_u = [Ru] # list containing upstream radii of arteries
radii_d = [Rd] # list containing downstream radii of
                        # arteries
 
for j in range (depth):
       # lists for storage of upstream/downstream radii
       # of arteries on the next depth level
       new_radii_u = []
       new_radii_d = []
 
       for i in range (length (radii_u)):
          # set daughter vessel radii using scaling
          # parameters a and b
          ra_u = radii_u[i] * a
          rb_u = radii_u[i] * b
          ra_d = radii_d[i] * a
          rb_d = radii_d[i] * b
          pos + = 1
          # first daughter vessel using scaling
          # parameter a
          arteries[pos] = Artery (ra_u, ra_d)
          pos + = 1
          # second daughter vessel using scaling
          # parameter b
          arteries[pos] = Artery (rb_u, rb_d)
 
          # store new radii for next iteration over j
          new_radii_u[i] = ra_u
          new_radii_u[i] = rb_u
          new_radii_d[i] = ra_d
          new_radii_d[i] = rb_d
       radii_u = new_radii_u
       radii_d = new_radii_d
jors-5-159-g3.png
Figure 3

One pulse in the common carotid artery using VaMpy: a) flow rate, b) pressure. Comparison with the results for the same simulation in [4] validates the implementation of the blood flow equations in VaMpy.

DOI: https://doi.org/10.5334/jors.159 | Journal eISSN: 2049-9647
Language: English
Submitted on: Dec 13, 2016
|
Accepted on: May 18, 2017
|
Published on: Jun 8, 2017
Published by: Ubiquity Press
In partnership with: Paradigm Publishing Services
Publication frequency: 1 issue per year

© 2017 Alexandra K. Diem, Neil W. Bressloff, published by Ubiquity Press
This work is licensed under the Creative Commons Attribution 4.0 License.