Flow of a Navier-Stokes fluid with vertical forcing

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)
../../_images/14fe5798b3c3754b82db446a42204ef29e6b1f07ed1577c0b8fbc1302d4b17a3.png