Biothermodynamics Series: Work Done by Human Heart (Python Implementation)

The heart is a vital organ of the human body that acts as a pump and performs work by circulating blood throughout different parts of the body. The schematic diagram of this circulatory system is described in the following figure:

Description of the circulatory system:

  • O₂ poor blood is brought to the right atrium via venae cavae.
  • From there, blood goes to the right ventricle.
  • Blood then reaches the lungs via pulmonary arteries.
  • There it becomes O₂ rich by the exchange of O₂ and CO₂.
  • This O₂ reach blood, via the pulmonary veins, reaches the left atrium, and from there to the left ventricle,
  • Heart muscles then contract and pumps out the blood to the required parts of the body.
With the help of electric signal, heart muscles contract and relax and thus pump blood in and out of it. By some assumptions, the whole process can be modeled thermodynamically. In this article, we will model this pumping work of the heart.

Thermodynamic Modelling:

  • The right and left sides of the heart are modeled as two control volume regions, named system 1 and system 2. These systems only include the blood that fills these cavities, heart muscles are not included here.
  • Work is performed on these systems via the contraction and relaxation of the heart muscle.

Cardiovascular data of an average adult:

  • Heart rate- 65 beats/min
  • Stroke volume (Vout)  - 70 mL/beat ( the volume of blood discharged from the ventricle to the aorta with each heartbeat )
  • The pressure difference between the inlet and outlet of the 2 systems:
    ∆p = 15 mm Hg (right side)
    ∆p = 91 mm Hg (left side)
  • The density of blood = 1.056 g/mL

Calculation:

Volumetric flow rate of blood pumped out (vout )  = Heart rate * stroke volume

                                                                                 = ( 65*70) mL/min

                                                                                 = 4550 mL/min                                        

So, the mass flow rate of blood pumped out,  mout = vout

                                                                                 = (4550 * 1.056) g/min 

                                                                                 = 4804.8 g/min

                                                                                 = 288,288 g/hr

From the first law of thermodynamics:

dE/dt = Q - W + min ( h+ PE+KE) + mout ( h+ PE+KE)                                (1)

Now, following reasonable assumptions are considered here, 

  • Pumping process is considered isothermal, so Q = 0.
  • No change in kinetic and potential energy over time is considered
  • No change in internal energy. So Δh = Δ(pV)
  • No change of overall energy with time.
In real case, pumping work, however, can generate heat. Also, there is irreversibilities involved, which are omitted for simplicity.
Here, min= mout
So, the final form of equation (1) is,
0= -W + (mout*v)*( pin-pout)
0= -W + (mout/ρ)*( pin-pout)
So, finally, 
W= (mout/ρ)*(-Δp)
for right side,
Wright= -(288,288/ 1.056) mL/hr *15 mm Hg
                                      = -(288,288/1.056)/10^6*(15*10^5/760) J/hr =-546 J/hr
Similarlt for left side,
 
Wleft= -(288,288/ 1.056) mL/hr *91 mm Hg
                                     = -(288,288/1.056)/10^6*(91*10^5/760) J/hr =-3312 J/hr
So, total work performed, -(546+3312)= -3858 J/hr
Here, the negative sign indicates that work is performed on the system (by the contraction of the heart muscle).

Effect of beat rate and volume of the blood pumped on work performed:

In the above example, a fixed beating rate and stroke volume were used. In the following python code, we will try to visualize their effects on the work done by the heart via a python code.

Python implementation:

from mpl_toolkits import mplot3d
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt

# Cardiovascular data
rho=1.056 #density of blood in g/mL
delP_right= 15 #pressure difference in mmHg
delP_left= 91 # pressure difference in mmHg
z=np.linspace(50,100,11)  #mL of blood per beat
b= np.linspace(50,100,11) #beat per minute
v=b*z           #volumetric flow rate of blood
m=v*rho*60     #mass flow rate in g/hr
w_right=-m*(delP_right)*101325/(10**6*rho*760)
w_left=-m*(delP_left)*101325/(10**6*rho*760)
w=w_right+w_left
#plotting
ax = plt.axes(projection='3d')
ax.plot3D(z,b,w,'red')
ax.set_xlabel('Blood volume/beat')
ax.set_ylabel('Beating rate')
ax.set_zlabel('Work done by heart')


Reference:

This problem is an example problem taken from the book "BIOTHERMODYNAMICS :Principles and Applications :  Mustafa Ozilgen • Esra Sorgüven"

Comments