from PySDM import Builder
from PySDM.backends import CPU
from PySDM.physics import si
from PySDM.environments import Box
import numpy as np
from matplotlib import pyplot
from open_atmos_jupyter_utils import show_plot
volumes = np.linspace(.01 * si.um**3, 1 * si.um**3, num=100)
builder = Builder(n_sd=100, backend=CPU())
builder.set_environment(Box(dt=np.nan, dv=np.nan))
builder.request_attribute('terminal velocity')
particulator = builder.build(attributes={'n': np.ones_like(volumes), 'volume': volumes})
v_term = particulator.attributes['terminal velocity'].to_ndarray()
pyplot.plot(volumes / si.um**3, v_term / (si.mm / si.s))
pyplot.xlabel(r'volume [$\mu m^3$]')
pyplot.ylabel(r'terminal velocity [$mm/s$]')
pyplot.grid()
show_plot('terminal_velocities.pdf')
HTML(value="<a href='./terminal_velocities.pdf' target='_blank'>./terminal_velocities.pdf</a><br>")