# import from circadapt import CircAdapt import numpy as np import matplotlib.pyplot as plt import time # Create empty model model = CircAdapt("backward_differential") # build model model.add_component('NodePressure', 'Prox') model.add_component('NodePressure', 'Dist') model.add_component('Diode', 'Valve') model.set_component('Valve.prox', 'Prox') model.set_component('Valve.dist', 'Dist') n_points = 100 t_max = 0.85 for i in range(n_points): t = i / (n_points-1) * t_max pressure = 1000+1000*np.sin(np.max([0, -0.3+np.min([t*2*3.14, 3.145+0.3])]))**2 model.set('Model.Prox.Pressure.set_value', pressure) model.set('Model.Prox.Pressure.set_time', t) # run the model model.run(1) # plot results plt.figure(1, clear=True, figsize=(12, 4)) ax1 = plt.subplot(1, 2, 1) P = model.get('Model.Prox.p') ax1.plot(P, label='Proximal') P = model.get('Model.Dist.p') ax1.plot(P, label='Distal') ax2 = plt.subplot(1, 2, 2) ax2.plot(model.get('Model.Valve.q')) # make results look nice ax1.spines[['right', 'top']].set_visible(False) ax2.spines[['right', 'top']].set_visible(False) ax1.set_xlabel('Time [ms]') ax2.set_xlabel('Time [ms]') ax1.set_ylabel('Pressure [Pa]') ax2.set_ylabel('Flow [m/s]') ax1.set_title('Applied pressure over time (input)') ax1.legend() ax2.set_title('Flow over time (output)') plt.draw()