Make turbulence with words.
To install from a Julia REPL:
julia> ]
pkg> add TurbulentWords
pkg> instantiate
TurbulentWords.jl requires Julia v1.6 or later but we encourage using Julia v1.10.
using TurbulentWords
using CairoMakie
fig = Figure(size=(2400, 300))
ax = Axis(fig[1, 1])
word = word_to_array("Ναταλια")
heatmap!(ax, word)
fig
![image](https://private-user-images.githubusercontent.com/15271942/280401203-2902699a-db72-4e27-bfac-6c4cb4476fa1.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTA4MDg3MjMsIm5iZiI6MTcxMDgwODQyMywicGF0aCI6Ii8xNTI3MTk0Mi8yODA0MDEyMDMtMjkwMjY5OWEtZGI3Mi00ZTI3LWJmYWMtNmM0Y2I0NDc2ZmExLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDAzMTklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwMzE5VDAwMzM0M1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTFlYmQ0OTM2MzNmMmY0MDMxMjc1M2Q2OWJjODljMDEyMTUwZTQ3MTgwMjc0N2VmY2ZiODgxNDE2YjBjMzI4OTkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.WYvdi-iUBIaQSUiua0lFa2k6eCHZln5z1JepnEca_fI)
using TurbulentWords
using Oceananigans
using CairoMakie
u, v, ψ, ζ = word_to_flow("TEMPESTUOUS", vpad=50)
fig = Figure(size = (800, 800))
ax1 = Axis(fig[1, 1], title="Vorticity, ∂v/∂x - ∂u/∂y")
ax2 = Axis(fig[2, 1], title="Streamfunction, ψ")
ax3 = Axis(fig[3, 1], title="u = - ∂ψ/∂y")
ax4 = Axis(fig[4, 1], title="v = + ∂ψ/∂x")
[hidedecorations!(ax) for ax in (ax1, ax2, ax3, ax4)]
heatmap!(ax1, interior(ζ, :, :, 1), colormap=:balance, colorrange = (-1.2, 1.2))
heatmap!(ax2, interior(ψ, :, :, 1), colormap=:speed)
heatmap!(ax3, interior(u, :, :, 1), colormap=:balance)
heatmap!(ax4, interior(v, :, :, 1), colormap=:balance)
fig
using TurbulentWords
using Oceananigans
using CairoMakie
simulation = word_to_simulation("STORMY")
simulation.stop_time = 5
run!(simulation)
model = simulation.model
u, v, w = model.velocities
ζ = Field(∂x(v) - ∂y(u)) |> compute!
fig = Figure()
ax = Axis(fig[1, 1])
hidedecorations!(ax)
heatmap!(ax, interior(ζ, :, :, 1), colormap=:balance)
fig
using TurbulentWords
using Oceananigans
using CairoMakie
simulation = word_to_simulation("ROILING", dynamics=:buoyancy_driven)
simulation.stop_time = 0.3
run!(simulation)
b = simulation.model.tracers.b
fig = Figure()
ax = Axis(fig[1, 1])
hidedecorations!(ax)
heatmap!(ax, interior(b, :, 1, :), colormap=:balance)
fig
It's too cool (hot?) to stop at just 0.3 though
simulation.stop_time = 0.5
run!(simulation)
heatmap!(ax, interior(b, :, 1, :), colormap=:balance)
fig