Flow of a Navier-Stokes fluid with vertical forcing#
\[\begin{split}
\mathbb{S}_{\psi,\omega}
\begin{cases}
\Omega = [0, L_x] \times [0, L_y] \\
\psi_{\text{D}}\vert_{\partial\Omega}=0 & \text{no-penetration on entire boundary}\\
\omega_{\text{D}}\vert_{\partial\Omega}=0 & \text{no-stress on entire boundary}\\
f_x = 0 & \text{zero horizontal forcing} \\
f_y(x,y) = 5y\sin(6\pi x/L_x) & \text{variable vertical forcing} \\
\end{cases}
\end{split}\]
import numpy as np
from lucifex.sim import run
from lucifex.plt import plot_colormap, plot_contours, save_figure
from py.F32_navier_stokes_forced import navier_stokes_forced
Lx = 2.0
fy = lambda x: 5 * x[1] * np.sin(6 * np.pi * x[0] / Lx)
simulation = navier_stokes_forced(
Lx=Lx,
Ly=1.0,
Nx=64,
Ny=64,
fy=fy,
)
n_stop = 100
dt_init = 1e-6
n_init = 5
run(simulation, n_stop=n_stop, dt_init=dt_init, n_init=n_init)
psi = simulation['psi']
time_index = -1
fig, ax = plot_colormap(psi.series[time_index], title=f'$\psi(t={psi.time_series[-1]:.3f})$', x_label='$x$', y_label='$y$')
plot_contours(fig, ax, psi.series[time_index], use_cache=True, colors='cyan')
save_figure(f'psi(x,y,t={psi.time_series[time_index]:.3f})', thumbnail=True)(fig)