Skip to content

This package simulates the behaviors of an ensemble of phytoplankton individuals.

License

Notifications You must be signed in to change notification settings

JuliaOcean/PlanktonIndividuals.jl

Repository files navigation

PlanktonIndividuals.jl

Linux doc doc codecov DOI DOI

animation

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"))