plasticparcels.kernels#
- plasticparcels.kernels.Biofouling(particle, fieldset, time)[source]#
Settling velocity due to biofouling kernel.
Description#
Kernel to compute the settling velocity of particles due to changes in ambient algal concentrations, growth and death of attached algae based on [2]. The settling velocity of the particle is computed as per [1], however the particle size and density is affected by a biofouling process. The algae attached to the particle \(A\) has a growth rate described by
\(\frac{dA}{dt} = C + G - M - R\)
- Here, \(C\) models fouling of the plastic through collision with algae
\(C = \beta_A \cdot A_A / \theta_{pl}\),
where \(\beta_A\) is the encounter rate, \(A_A\) is the ambient algal concentration, and \(\theta_{pl}\) is the surface area of plastic particle.
- \(G\) models the growth of the algae attached to the surface of the particle
\(G = \mu_A \cdot A\),
where \(\mu_A\) is the algal growth rate.
- \(M\) models the grazing mortality of the algae attached to the surface of the particle
\(M = m_A \cdot A\),
where \(m_A\) is the algal mortality rate.
- \(R\) models the respiration of the algae attached to the surface of the particle
\(R = Q_{10}^{(T-20)/10}R_{20}A\),
where \(Q_{10}\) is the temperature coefficient, which indicates how much the respiration increases when the temperature increases by 10C. \(T\) is the temperature, and \(R_{20}\) is the respiration rate.
- Calculation steps:
Compute the seawater dynamic viscosity from Eq. (27) in [2]
Compute the kinematic viscosity from Eq. (25) in [2]
Compute the dimensionless particle diameter from Eq. (4) in [2], equivalent to Eq. (6) in [1]
Compute the dimensionless settling velocity from Eq. (3) in [2], equivalent to Eq. (8) in [1]
Compute the settling velocity of the particle from Eq. (2) in [2], equivalent to Eq. (9) in [1]
Parameter Requirements#
- particle :
diameter
density
seawater_density
- fieldset :
fieldset.G - Gravity constant. Units [m s-2].
fieldset.conservative_temperature - The conservative temperature field. Units [C].
fieldset.absolute_salinity - The absolute salinity field. Units [g/kg].
fieldset.algae_cell_volume - The volume of 1 algal cell [m-3]
fieldset.biofilm_density - The density of the biofilm [kg m-3]
Kernel Requirements#
- Order of Operations:
This kernel must run after the PolyTEOS10_bsq kernel, which sets the particle.seawater_density variable, relied on by this.
References
[1] Dietrich (1982) - https://doi.org/10.1029/WR018i006p01615 [2] Kooi et al. (2017) - https://doi.org/10.1021/acs.est.6b04702 [3] Menden-Deuer and Lessard (2000) - https://doi.org/10.4319/lo.2000.45.3.0569 [4] Bernard and Remond (2012) - https://doi.org/10.1016/j.biortech.2012.07.022
- plasticparcels.kernels.PolyTEOS10_bsq(particle, fieldset, time)[source]#
A seawater density kernel.
Description:#
A kernel to calculate the seawater density surrounding a particle based on the polyTEOS10-bsq algorithm from Appendix A.2 of https://doi.org/10.1016/j.ocemod.2015.04.002
Parameter Requirements#
- particle :
seawater_density
- fieldset :
fieldset.conservative_temperature - The conservative temperature field. Units [C].
fieldset.absolute_salinity - The absolute salinity field. Units [g/kg].
Kernel Requirements:#
- Order of Operations:
This kernel must be run before any kernel that requires an updated particle.seawater_density value.
References
- Roquet, F., Madec, G., McDougall, T. J., Barker, P. M., 2014: Accurate
polynomial expressions for the density and specific volume of seawater using the TEOS-10 standard. Ocean Modelling.
- McDougall, T. J., D. R. Jackett, D. G. Wright and R. Feistel, 2003:
Accurate and computationally efficient algorithms for potential temperature and density of seawater. Journal of Atmospheric and Oceanic Technology, 20, 730-741.
- plasticparcels.kernels.SettlingVelocity(particle, fieldset, time)[source]#
Settling velocity kernel.
Description#
A kernel to calculate the settling velocity of a particle based on its size and density,and the surrounding seawater properties (density and kinematic viscosity). Based on the settling velocity paper of [1] as implemented in [2].
- Calculation steps:
Compute the seawater dynamic viscosity from Eq. (27) in [2]
Compute the kinematic viscosity from Eq. (25) in [2]
Compute the dimensionless particle diameter from Eq. (4) in [2], equivalent to Eq. (6) in [1]
Compute the dimensionless settling velocity from Eq. (3) in [2], equivalent to Eq. (8) in [1]
Compute the settling velocity of the particle from Eq. (2) in [2], equivalent to Eq. (9) in [1]
Parameter Requirements#
- particle :
diameter
density
seawater_density
- fieldset :
fieldset.G - Gravity constant. Units [m s-2].
fieldset.conservative_temperature - The conservative temperature field. Units [C].
fieldset.absolute_salinity - The absolute salinity field. Units [g/kg].
Kernel Requirements:#
- Order of Operations:
This kernel must run after the PolyTEOS10_bsq kernel, which sets the particle.seawater_density variable, relied on by this.
References
[1] Dietrich (1982) - https://doi.org/10.1029/WR018i006p01615 [2] Kooi et al. (2017) - https://doi.org/10.1021/acs.est.6b04702
- plasticparcels.kernels.StokesDrift(particle, fieldset, time)[source]#
Stokes drift kernel.
Description#
Using the approach in [1] assuming a Phillips wave spectrum to determine the depth dependent Stokes drift. Specifically, the ‘Stokes drift velocity’ \(u_s\) is computed as per Eq. (19) in [1].
- We treat the Stokes drift as a linear addition to the velocity field
\(u(x,t) = u_c(x,t) + C_s * u_s(x,t)\)
where \(u_c\) is the current velocity, \(u_s\) is the Stokes drift velocity, and \(C_s\) is the depth-varying decay factor.
For further description, see https://plastic.oceanparcels.org/en/latest/physicskernels.html#stokes-drift
Parameter Requirements#
- fieldset :
fieldset.Stokes_U and fieldset.Stokes_V, the Stokes drift velocity fields. Units [m s-1]
fieldset.wave_Tp, the peak wave period field (\(T_p\)). Units [s].
Kernel Requirements#
- Order of Operations:
None - can be applied at any time.
References
[1] Breivik (2016) - https://doi.org/10.1016/j.ocemod.2016.01.005
- plasticparcels.kernels.VerticalMixing(particle, fieldset, time)[source]#
A markov-0 kernel for vertical mixing.
Description#
A simple verticle mixing kernel that uses a markov-0 process to determine the vertical displacement of a particle [1]. The deterministic component is determined using forward-difference with a given delta_z.
Parameter Requirements#
- particle:
settling_velocity
- fieldset:
fieldset.mixing_kz - The vertical eddy diffusivity field. Units [m2 s-1].
Kernel Requirements#
- Order of Operations:
To ensure the reflecting boundary condition of the random walk component, this kernel should be performed at the very end. Additionally, this kernel should be performed after the rising/sinking velocity of the particle has been computed.
References
[1] Ross & Sharples (2004) - https://doi.org/10.4319/lom.2004.2.289
- plasticparcels.kernels.WindageDrift(particle, fieldset, time)[source]#
Leeway windage kernel.
Description#
A simple windage kernel that applies a linear relative ‘wind velocity’ to the particle.
- We treat the windage drift as a linear addition to the velocity field
\(u(x,t) = u_c(x,t) + C_w * (u_w(x,t)-u_c(x,t))\)
where \(u_c\) is the ocean current velocity, \(u_w\) is the wind velocity at 10m height, and \(C_w\) is the windage coefficient (usually taken to be in [1%,5%], depending on particle size)
For further description, see https://plastic.oceanparcels.org/en/latest/physicskernels.html#wind-induced-drift-leeway
Parameter Requirements#
- particle :
wind_coefficient - the particle windage coefficient in decimals (usually taken to be between 0.01 and 0.05, depending on particle size).
- fieldset :
fieldset.Wind_U and fieldset.Wind_V, the wind velocity field at 10m height above sea surface. Units [m s-1].
Kernel Requirements#
- Order of Operations:
None - can be applied at any time.
- plasticparcels.kernels.checkErrorThroughSurface(particle, fieldset, time)[source]#
Surface error kernel.
Description#
Kernel to place a particle back on the surface if it goes through the surface.
Kernel Requirements#
- Order of Operations:
This kernel should be performed after all other movement kernels, as it is an error kernel.
- plasticparcels.kernels.checkThroughBathymetry(particle, fieldset, time)[source]#
Bathymetry error kernel.
Description#
A simple kernel to ensure particles are not advected below the bathymetry field.
Parameter Requirements#
- Fieldset:
fieldset.z_start - A field constant representing the minimum depth. Units [m].
fieldset.bathymetry - A 2D field containing the ocean bathymetry. Units [m].
Kernel Requirements#
- Order of Operations:
This kernel should be performed after all other movement kernels, as it samples the bathymetry field using the updated particle position.
- plasticparcels.kernels.deleteParticle(particle, fieldset, time)[source]#
General error kernel.
Description#
Kernel to delete a particle if it throws an error other than ErrorThroughSurface.
Kernel Requirements#
- Order of Operations:
This kernel should be performed after all other movement kernels, as it is an error kernel.
- plasticparcels.kernels.delete_particle_interp(particle, fieldset, time)[source]#
DEPRECATED: Interpolation error kernel.
Description#
Kernel to delete a particle if it throws an interpolation error.
Kernel Requirements#
- Order of Operations:
This kernel should be performed after all other movement kernels, as it is an error kernel.
- plasticparcels.kernels.periodicBC(particle, fieldset, time)[source]#
A periodic boundary condition kernel.
Description#
Kernel to keep the particle between [-180,180] longitude
Kernel Requirements#
- Order of Operations:
This kernel should be performed after all other movement kernels, as it sets the updated particle longitude to be within the [-180,180] longitudinal range.
- plasticparcels.kernels.unbeaching(particle, fieldset, time)[source]#
Unbeaching kernel.
Description#
A simple kernel to ‘unbeach’ particles that have been advected onto non-ocean grid cells. This kernel uses a simple ‘unbeaching’ field, that provides (U,V) velocities with a magnitude of 1 m/s, normal to the grid cell face between an ocean and non-ocean grid cell.
Parameter Requirements#
- Fieldset:
fieldset.unbeach_U - The zonal unbeaching velocity. Units [m s-1].
fieldset.unbeach_V - The meridional unbeaching velocity. Units [m s-1].
Kernel Requirements#
- Order of Operations:
This kernel should be performed after all other movement kernels, as it samples the unbeaching field using the updated particle position.