OceanTracker 0.5: fast adaptable Lagrangian particle tracking in structured and unstructured grids
Ross Vennell, Laurin Steidle, Malcolm Smeaton, Romain Chaput, Ben KnightParticle tracking is frequently used to compute particle movements within hydrodynamic ocean models; however, modelling millions of particles is computationally challenging. OceanTracker is designed to reduce the time required to obtain results from particle tracking. Firstly, OceanTracker is computationally efficient, allowing users to simulate large numbers of particles in complex coastal environments, enabling improved statistics and exploration of a wider range of cases within acceptable run times. Secondly, OceanTracker can calculate multiple particle statistics during the computational run, eliminating the need to record and post-process large volumes of particle trajectories. The adaptability of OceanTracker's modular computational pipeline allows users to add and modify components that govern particle physics, behaviour, and statistics. The computational pipeline is entirely assembled from user-provided parameters, supplied as a JSON or YMAL text file or built using helper methods. Coders can easily modify existing components through code inheritance. Currently, OceanTracker supports hydrodynamic model output both for unstructured (SCHISM, FVCOM, DELFT3D-FM) and structured (ROMS, NEMO/GLORYS) grids. Computing the trajectories for more than one million particles with OceanTracker on a single computer core is more than ten times faster than the OpenDrift code and twice as fast as the Parcels code, despite treating structured grids as unstructured, which might be expected to be computationally slower than structured grids due to the time required to locate each particle within a hydrodynamic grid cell. In addition to its single-core performance, OceanTracker can run computations in parallel across available cores. This can further increase speed by up to an order of magnitude on currently available multicore desktop processors.