Buche-Silberstein model
For more information, see Buche and Silberstein, 2021.
[1]:
from polymers import constitutive
BucheSilberstein = constitutive.hyperelastic_damage.BucheSilberstein
[2]:
import numpy as np
import matplotlib.pyplot as plt
[3]:
increment = 0.01
stretch = np.hstack((
np.arange(1.0, 1.5, step=increment), np.arange(1.5, 1.0, step=-increment),
np.arange(1.0, 2.0, step=increment), np.arange(2.0, 1.0, step=-increment),
np.arange(1.0, 2.5, step=increment), np.arange(2.5, 1.0, step=-increment),
np.arange(1.0, 3.0, step=increment), np.arange(3.0, 1.0, step=-increment),
np.arange(1.0, 3.5, step=increment), np.arange(3.5, 1.0, step=-increment),
))
time = np.linspace(0, 600, len(stretch))
plt.plot(time, stretch)
plt.xlabel(r'$t$ [seconds]')
plt.ylabel(r'$F_{11}(t)$')
plt.show()
[4]:
network_1 = BucheSilberstein(
method=3,
nondimensional_critical_extension=1.17,
nondimensional_link_stiffness=6000,
number_of_links=39,
swelling_ratio=15.625
)
nondimensional_stress_1, probability_1 = network_1.uniaxial_tension(stretch)
n_over_beta_1 = 0.2
stress_1 = n_over_beta_1 / probability_1[0] * nondimensional_stress_1
stress = stress_1 + 0.3*(stretch**2 - 1/stretch)
data = np.genfromtxt('../../../../data/doi/10.1126/science.1248494/fig4c1.csv')
plt.plot(data[:, 0], data[:, 1], 'o', color='tab:orange', mfc='none', label='Experiment')
plt.plot(stretch, stress, color='tab:blue', label='Model')
plt.xlabel(r'$F_{11}(t)$')
plt.ylabel(r'$\sigma_{11}(t)$ [MPa]')
plt.legend()
plt.show()
[5]:
emission = 1e9*np.gradient(1 - probability_1)/np.gradient(time)
data = np.genfromtxt('../../../../data/doi/10.1126/science.1248494/fig4c2.csv')
plt.plot(data[:, 0], data[:, 1], 'o', color='tab:orange', mfc='none', label='Experiment')
plt.plot(stretch, 1e-6*emission, color='tab:blue', label='Model')
plt.xlabel(r'$F_{11}(t)$')
plt.ylabel(r'Photon count $\times 10^{-6}$')
plt.legend()
plt.show()