# Boundary layer on a rotating disk

Von Kármán, 1921 showed that the steady flow of an incompressible liquid of kinematic viscosity $\nu$ induced by an infinite plane disk rotating at angular velocity $\Omega$ can be described by a similarity solution. In effect, using $\zeta =z\sqrt{\Omega /\nu }$ and setting the axial velocity $U$, radial velocity $V$ and azimuthal velocity $W$ as $U=\sqrt{\nu \Omega }F\left(\zeta \right)\phantom{\rule{1em}{0ex}}V=\Omega rH\left(\zeta \right)\phantom{\rule{1em}{0ex}}W=\Omega rG\left(\zeta \right)$ the Navier-Stokes equations reduce to a couple of ODEs: $F‴-F\phantom{\rule{0.167em}{0ex}}Fʺ+F{ʹ}^{2}/2+2{G}^{2}=0\phantom{\rule{1em}{0ex}}\mathrm{\text{and}}\phantom{\rule{1em}{0ex}}Gʺ-F\phantom{\rule{0.167em}{0ex}}Gʹ+G\phantom{\rule{0.167em}{0ex}}Fʹ=0$ with boundary conditions $F\left(0\right)=Fʹ\left(0\right)=0\phantom{\rule{0.222em}{0ex}}G\left(0\right)=1.\phantom{\rule{1em}{0ex}}\mathrm{\text{and}}\phantom{\rule{1em}{0ex}}Fʹ\left(\infty \right)=G\left(\infty \right)=0.$ where the prime denotes differentiation with respect to $\zeta$.

To reproduce this solution numerically, we use the axisymmetric Navier–Stokes solver with azimuthal velocity (swirl).

#include "grid/multigrid.h"
#include "axi.h"
#include "navier-stokes/centered.h"
#include "navier-stokes/swirl.h"


The left boundary is the rotating disk with $\Omega =1$ and a no-slip condition for the tangential velocity i.e.

u.t[left] = dirichlet(0);
w[left]   = dirichlet(y);

We use an open (outflow) boundary condition for the right boundary.

u.n[right] = neumann(0);
p[right] = dirichlet(0);
pf[right] = dirichlet(0);

The top boundary condition is more tricky but the following seems to work.

u.n[top] = neumann(0);
p[top] = neumann(0);

We use a constant viscosity but it needs to be weighted by the (axisymmetric) metric.

face vector muv[];

event properties (i++) {
foreach_face()
muv.x[] = 0.2*fm.x[];
}

The computational domain is $12×12$ and we limit the timestep.

int main()
{
size (12);
N = 128;
μ = muv;
DT = 2e-2;
run();
}

We wait until the boundary layer is fully developed and quasi-stationary. We only consider values close to the origin to minimize the influence of boundaries (von Kármán’s solution is valid in an infinite domain).

event end (t = 20)
{
foreach()
if (x*x + y*y < 8)
fprintf (stderr, "%g %g %.4g %.4g\n", x, y, u.x[], w[]);
}

## References

 [karman1921] Th V Karman. Über laminare und turbulente reibung. ZAMM-Journal of Applied Mathematics and Mechanics/Zeitschrift für Angewandte Mathematik und Mechanik, 1(4):233-252, 1921.