TEST BiCKLEY JET NOT DISTRIBUTED
Example taken from https://github.com/CoherentStructures/CoherentStructures.jl
Code
#using Distributed
#nprocs() == 1 && addprocs()
#@everywhere begin
import Pkg
Pkg.activate("/Users/julios/JULIA/CoherentStructures_julia1.9.jl/")
# end
#@everywhere
using CoherentStructures, StreamMacros
const bickley = @velo_from_stream psi begin
psi = psi₀ + psi₁
psi₀ = - U₀ * L₀ * tanh(y / L₀)
psi₁ = U₀ * L₀ * sech(y / L₀)^2 * re_sum_term
re_sum_term = Σ₁ + Σ₂ + Σ₃
Σ₁ = ε₁ * cos(k₁*(x - c₁*t))
Σ₂ = ε₂ * cos(k₂*(x - c₂*t))
Σ₃ = ε₃ * cos(k₃*(x - c₃*t))
k₁ = 2/r₀ ; k₂ = 4/r₀ ; k₃ = 6/r₀
ε₁ = 0.0075 ; ε₂ = 0.15 ; ε₃ = 0.3
c₂ = 0.205U₀ ; c₃ = 0.461U₀; c₁ = c₃ + (√5-1)*(c₂-c₃)
U₀ = 62.66e-6; L₀ = 1770e-3; r₀ = 6371e-3
end
#@everywhere
using OrdinaryDiffEq, Tensors
q = 81
const tspan = range(0., stop=3456000., length=q)
ny = 61
nx = (22ny) ÷ 6
xmin, xmax, ymin, ymax = 0.0 - 2.0, 6.371π + 2.0, -3.0, 3.0
xspan = range(xmin, stop=xmax, length=nx)
yspan = range(ymin, stop=ymax, length=ny)
P = tuple.(xspan, yspan')
const δ = 1.e-6
const D = SymmetricTensor{2,2}((2., 0., 1/2))
mCG_tensor = u -> av_weighted_CG_tensor(bickley, u, tspan, δ; D=(_ -> D), tolerance=1e-6, solver=Tsit5())
#C̅ = pmap(mCG_tensor, P; batch_size=ceil(Int, length(P)/nprocs()^2))
C̅ = map(mCG_tensor, P)
p = LCSParameters(2.0)
vortices, singularities = ellipticLCS(C̅, xspan, yspan, p)
using Plots
trace = tensor_invariants(C̅)[5]
fig = plot_vortices(vortices, singularities, (xmin, ymin), (xmax, ymax);
bg=trace, xspan=xspan, yspan=yspan, title="DBS field and transport barriers", showlabel=false)
Plots.plot(fig)
Detecting vortices 100%|█████████████████████████████████| Time: 0:00:16
num_barriers: 7
[ Info: Found 7 elliptic barriers in total.