The streamfunction-velocity formulation of the steady-state Navier-Stokes equations for incompressible fluids#
When \(\Omega\) is a simply connected 2D domain, there exists a unique function \(\psi\) such that \(\mathbf{u} = \boldsymbol{\nabla} \times \psi:= \left( \partial_y \psi, - \partial_x \psi \right)\); substituting this expression for \(\mathbf{u}\) into \eqref{eq:steady-navier-stokes} leads to the so-called ``streamfunction-velocity formulation’’ of the steady-state Navier-Stokes equations for an incompressible fluid. For more details we refer the reader to \cite{TAGLIABUE2014277}. The variational formulation is then given by:
where \(V \subset H^2(\Omega)\) and
Linearization of the streamfunction-velocity linear form#
In the sequel, we use SymPDE to linearize the streamfunction-velocity formulation, starting from a \texttt{LinearForm}. As presented in the previous example, we shall write our weak formulation as a linear form where the velocity \(\mathbf{u}\) (\textit{i.e.} \texttt{u}) is considered as a \textit{field}, which is implemented in Python code \ref{code:steady-navier-stokes-nl}. Using the function \texttt{linearize} allows us to construct the bilinear form associated to the linearization of the given linear form, around the field \texttt{psi}, see Python code \ref{code:steady-streamfunction-velocity-lin}. To get an \texttt{Equation}, the user can add the left-hand-side for the Navier-Stokes equation to the linear form, the appropriate essential boundary conditions, then use the \texttt{NewtonIteration} as presented in the previous example.