Combination Finite Difference & Spectral Solution to Advection-Diffusion PDE
Vorticity \omega is a measure of local rotation (in a fluid). It is related to the angular velocity
of a solid. Vorticity is generally a vector (valued function). However, it can be viewed as a scalar in
2D because it is always perpendicular to the plane.
If fluid velocity \vec{v} (in 2D) has components u and v
\begin{equation}
\vec{v}(t) = \begin{pmatrix} u(t) \\ v(t) \end{pmatrix}
\end{equation}
then these vector components are related to a scalar quantity called the \textbf{stream function} \psi
as follows
\begin{align}
u = -\psi_y \\
v = \psi_x
\end{align}
so that
\begin{equation}
\vec{v}(t)
= \begin{pmatrix} u(t) \\ v(t) \end{pmatrix}
= \begin{pmatrix} -\psi_y \\ \psi_x \end{pmatrix}
\end{equation}
So \psi is a
scalar valued function
while the components of the fluid velocity vector can be derived from it.
\begin{equation}
\label{eq:hw4_laplacian_eqn}
\nabla^2 \psi = \omega
\end{equation}
Vorticity-Streamfunction PDE
\begin{align}
\omega_t + [\psi,\omega] &= \eta \nabla^2 \omega \\
\omega_t + \psi_x \omega_y - \psi_y \omega_x &= \eta ( \omega_{xx} + \omega_{yy} ) \\
\omega_t + \psi_x \omega_y - \psi_y \omega_x &= \eta D_L \omega \\
\omega_t &= -(\psi_x \omega_y - \psi_y \omega_x) + \eta D_L \omega
\end{align}
where D_L is the Laplacian operator \frac{\partial^2}{\partial x^2} + \frac{\partial^2}{\partial y^2} .
With discretization in space, we can write a finite difference
approximation for the linear operator D_L.
This allows us to solve the Poisson equation by solving the linear system:
\begin{equation}
D_L \vec{\psi} = \vec{\omega}
\end{equation}
This obtains \psi from \omega at step n.
If we use a finite difference approximation in time too
we can write
\begin{align}
\omega_t &= -(\psi_x \omega_y - \psi_y \omega_x) + \eta D_L \omega \\
\frac{\omega^{k+1} - \omega^k }{ \Delta t} &= -(\psi_x \omega_y - \psi_y \omega_x) + \eta D_L \omega
\end{align}
with RHS
f = -(\psi_x \omega_y - \psi_y \omega_x) + \eta D_L \omega
The following video is made in MATLAB after integrating the system with ODE45.
At each time step, the Poisson equation is solved in Fourier space (to speed things up)
Comments
Post a Comment