If you’ve worked in computational fluid dynamics, then you’re probably aware of the Taylor-Green vortex – at least the two-dimensional case. A simple google search will land you on this wikipedia page. The classic solution there is presented in the form
u=cosxsinyF(t);v=−sinxcosyF(t);F(t)=e−2νt
There are also many variants on this form, some that exchange the sine and cosine such as McDermott and Almgren et. al – but the most interesting variation, is that presented by McDermott, and presents a non-stationary form (in space) – i.e. the vortices advect in space on an Eulerian computational grid.
There are four points that I want to address in this post:
- It seems that the wrong paper is always cited when referring to the original work for this TG Vortex solution
- In light of the previous point, we should call the 2D solution the Taylor vortex and keep the Taylor-Green designation to the 3D initial condition
- How the heck do you obtain solutions that are non-stationary in space (Thanks to Lee Shunn for opening my mind about this)
- Finally, I want to actually derive the TG vortex solution and discuss it a bit further
Point 1: We are citing the wrong paper
I am the first to admit – I have always cited the wrong paper when referring to the 2d TG vortex – namely:
Taylor, G. I., & Green, A. E. (1937). Mechanism of the production of small eddies from large ones. Proceedings of the Royal Society of London. Series A-Mathematical and Physical Sciences, 158(895), 499.
For the life of me I cannot figure out how to recover the 2D solution from that paper. The correct paper to cite for the 2D vortex is the following:
G.I. Taylor F.R.S. (1923) LXXV. On the decay of vortices in a viscous fluid, The London, Edinburgh, and Dublin Philosophical Magazine and Journal of Science, 46:274, 671-674, DOI: 10.1080/14786442308634295
In light of the previous point, we should refer to the 2D solution as the Taylor vortex and reserve the Taylor-Green designation for the 3D case.
Point 3: How to obtain “advecting” solutions on an Eulerian grid?
Simple – Thanks to the mysterious art of Galilean transformations! Let’s say you find a solution for the velocity field u(x,t) in an inertial reference frame $(\mathbf{x},t)$ and now you want your solution in a moving frame $(\mathbf{x}’=\mathbf{x} – \mathbf {c} t, t)$, then, the solution in the moving frame, $\mathbf{u}’$ is
u′=u(x−ct)=u(x,t)–c
So that – in practice – where we implement our solutions on an Eulerian grid, we simply set
u(x,t)=c+u(x−ct)
I owe it to Lee Shunn of Cascade Technologies for pointing that out to me in a private communication regarding one of his manufactured solutions for variable density flows.
Point 4: How did Taylor do it?
Taylor is like Euler – not only virtue of their names rhyming – but also by virtue of their contributions to Fluid mechanics. His approach was based on a vorticity-streamfunction approach (heavily used in the rocket-motor stability analysis community – see Culick, Flandro, Majdalani, Saad) to eliminate the pressure. In two-dimensions, the only non-zero component of vorticity is
ωz=∂v∂x–∂u∂y
Now, using the streamfunction ($u=-\frac{\partial \psi}{\partial y}$, $v = \frac{\partial \psi}{\partial x}$)
ωz=∇2ψ
Great so far. Now we write the vorticity transport equation
∂ωz∂t+u⋅∇ωz=ν∇2ωz
or
(∂∂t+u⋅∇−ν∇2)ωz=0
Now Taylor makes a beautiful assumption: he sets $\omega_z = k \psi$. As I will explain later (maybe in the future), this is entire possible – this only means that lines of constant vorticity are also lines of constant streamfunction. More generally, this type of flow belongs to a general class of flows known as Generalized Beltrami flows where $\nabla\times\mathbf{u}\times\boldsymbol{\Omega} = 0$.
In 2d, this implies that the vorticity is an arbitrary function of $\psi$, i.e. $\omega_z = f(\psi)$. Taylor’s choice is simply $f(\psi) = k \psi$. This assumption leads to two simplifications:
- We now have $\nabla ^2 \psi = k \psi$
- The advection term in the vorticity equation disappears by virtue of the fact that $\mathbf{u}$ is perpendicular to $\nabla \psi$
The vorticity transport equation now reduces to
∂ψ∂t−νψ=0
which leads to the general solution
ψ=F(x,y)e−kνt
where $F(x,y)$ is a solution to the vorticity equation (substitute $\psi = F e^{k\nu t}$ into the vorticity equation $\nabla^2 \psi = k \psi$)
∇F2=kF(x,y)
Generic solutions for $F$ are therefore of the sine, cosine, or exponential type. Taylor then proceeds to set a solution of the form
F(x,y)=Acos(πxd)cos(πyd)
Substitution into (???) leads to
k=2π2d2
and the final solution is
ψ=Acos(πxd)cos(πyd)e−2π2d2νt
This leads to the classical velocity field for the 2D Taylor vortex
u=Aπdcos(πxd)sin(πyd)e−2π2d2νt;v=–Aπdsin(πxd)cos(πyd)e−2π2d2νt
or, more generally
ψ=Acos(αx)cos(βy)e−(α2+β2)νt
u=Aβcos(αx)sin(βy)e−(α2+β2)νt;v=–Aαsin(αx)cos(βy)e−(α2+β2)νt
If implemented in an Eulerian computational code, this solution will just decay in time. To obtain advecting solutions, apply the Galilean transformation discussed above. This leads to solutions of the form
u=uf+Aβcos[α(x−uft)]sin[β(y–vft)]e−(α2+β2)νt;v=vf–Aαsin[α(x−uft)]cos[β(y–vft)]e−(α2+β2)νt
Another interesting form (used by Almgren and McDermott) is
ψ=−Acos(αx)cos(βy)e−(α2+β2)νt
u=−Aβcos(αx)sin(βy)e−(α2+β2)νt;v=Aαsin(αx)cos(βy)e−(α2+β2)νt
or, for an advecting solution
u=uf–Aβcos[α(x−uft)]sin[β(y–vft)]e−(α2+β2)νt;v=vf+Aαsin[α(x−uft)]cos[β(y–vft)]e−(α2+β2)νt
Generalized Beltrami Flows
Taylor’s vortex belongs a class of flows known as generalized Beltrami flows. These are flows where $\nabla\times\mathbf{u}\times\boldsymbol{\Omega} = 0$.
To be continued…
33 Comments