PlanktonIndividuals.jl
May 4, 2022 ยท View on GitHub

PlanktonIndividuals.jl is a fast individual-based model written in Julia that can be run on both CPU and GPU. It simulates the life cycle of phytoplankton cells as Lagrangian particles in the ocean while nutrients are represented as Eulerian, density-based tracers using a 3rd order advection scheme. The model is used to simulate and interpret the temporal and spacial variations of phytoplankton cell densities and stoichiometry as well as growth and division behaviors induced by diel cycle and physical motions ranging from sub-mesoscale to large scale processes.
Installation
To add PlanktonIndividuals.jl to your Julia environment:
using Pkg; Pkg.add("PlanktonIndividuals.jl")
Use Examples
1. Simple Flow Fields In Two Dimensions
using PlanktonIndividuals
p = dirname(pathof(PlanktonIndividuals))
#include(joinpath(p,"../examples/vertical_2D_example.jl"))
include(joinpath(p,"../examples/horizontal_2D_example.jl"))
2. Closer Look Into One Grid Box
using PlanktonIndividuals
p = dirname(pathof(PlanktonIndividuals))
include(joinpath(p,"../examples/0D_experiment.jl"))
3. Turbulent Flow Fields In Three Dimensions
Here Oceananigans.jl is used to generate velocity fields and then use those to drive the individual-based model.
using PlanktonIndividuals
p = dirname(pathof(PlanktonIndividuals))
include(joinpath(p,"../examples/surface_mixing_3D_example.jl"))