4.6 Structure to store data for advection

"""

    advection! = AmpereAdvection( mesh ) 

    ∂f/∂t − v ∂f/∂x  = 0
    ∂E/∂t = −J = ∫ fv dv
    ∂f/∂t − E(x) ∂f/∂v  = 0

"""
struct AmpereAdvection 
    
    mesh :: UniformMesh
    kx   :: Vector{Float64}

    function AmpereAdvection( mesh )
        
        nx  = mesh.length
        dx  = mesh.step
        Lx  = mesh.stop - mesh.start
        kx  = zeros(Float64, nx)
        kx .= 2π/Lx .* [0:nx÷2-1;-nx÷2:-1]
        new( mesh, kx)
      
    end

end


CC BY-SA 4.0 Pierre Navaro