The viscoelastic digital phantoms have been generated using a shear relaxation defined as:
$$G(t) = G_\infty + (G_0 - G\infty)e^{-\beta t}$$.
This formation is equivalent to a standard linear VE material, where $G_\infty$ represents a spring ($\mu_1$) that is in parallel with a series combination of another spring of stiffness $\mu_2$ = $(G_0 - G_\infty)$ and a dashpot with viscosity $\eta = \frac{G_0 - G_\infty}{\beta}$.
The three viscoelastic materials we simulated were:
The following phase velocity plots are associated with the three different VE materials that were simulated.
In [21]:
%matplotlib inline
import matplotlib.pyplot as plt
plt.style.use('fivethirtyeight')
plt.rcParams['font.family'] = 'serif'
plt.rcParams['font.serif'] = 'Ubuntu'
plt.rcParams['font.monospace'] = 'Ubuntu Mono'
plt.rcParams['font.size'] = 14
plt.rcParams['axes.labelsize'] = 14
plt.rcParams['axes.labelweight'] = 'bold'
plt.rcParams['axes.titlesize'] = 14
plt.rcParams['xtick.labelsize'] = 12
plt.rcParams['ytick.labelsize'] = 12
plt.rcParams['legend.fontsize'] = 14
plt.rcParams['figure.titlesize'] = 18
import c_ve_3param
f = range(0, 600)
ve_params = [(10e3, 2e3, 6666.7, 'Phantom 1'), (15e3, 4e3, 5500, 'Phantom 2'), (20e3, 4e3, 4000, 'Phantom 3')] # G0, Ginf, beta
label_positions = [(450, 2.0, 'Phantom 1'), (375,3.1, 'Phantom 2'), (200, 3.4, 'Phantom 3')]
c140_yoffset = [0.1, 0.1, 0.2]
markers_on = [140]
plt.figure(figsize=(10, 8))
for n, ve in enumerate(ve_params):
c = c_ve_3param.calc(f, ve[0], ve[1], ve[2])
h = plt.plot(f, c, '-o', label=ve[3], markevery=markers_on, markersize=12)
plt.xticks(range(0, 600, 140), range(0, 600, 140))
plt.xlabel('Frequency (Hz)')
plt.ylabel('Phase Velocity (m/s)')
plt.title('c @ 140 Hz annotated on plot')
c140 = c_ve_3param.calc(140, ve[0], ve[1], ve[2])
plt.annotate("%.1f" % c140, xy=(140, c140), xycoords='data', xytext=(140, c140+c140_yoffset[n]), textcoords='data', color=h[0].get_color())
plt.text(label_positions[n][0], label_positions[n][1], label_positions[n][2], color=h[0].get_color())
In [ ]: