3 Advection equation for a rotation in two dimensional domain

\[ \frac{d f}{dt} + (y \frac{d f}{dx} - x \frac{d f}{dy}) = 0 \]

\[ x \in [-\pi, \pi],\qquad y \in [-\pi, \pi] \qquad \mbox{ and } \qquad t \in [0, 200\pi] \]

using FFTW, LinearAlgebra, Plots, ProgressMeter
using BenchmarkTools
"""
    Mesh( xmin, xmax, nx, ymin, ymax, ny)

mesh information
"""
struct Mesh
    
    nx   :: Int64
    ny   :: Int64
    x    :: Vector{Float64}
    y    :: Vector{Float64}
    kx   :: Vector{Float64}
    ky   :: Vector{Float64}
    
    function Mesh( xmin, xmax, nx, ymin, ymax, ny)
        
        x = range(xmin, stop=xmax, length=nx+1)[1:end-1]  ## we remove the end point
        y = range(ymin, stop=ymax, length=ny+1)[1:end-1]  ## periodic boundary condition
        kx = 2π/(xmax-xmin)*[0:nx÷2-1;nx÷2-nx:-1]
        ky = 2π/(ymax-ymin)*[0:ny÷2-1;ny÷2-ny:-1]

        new( nx, ny, x, y, kx, ky)
    end
end


CC BY-SA 4.0 Pierre Navaro