sedtrails.particle_tracer.diffusion_library
Module Contents
Classes
Abstract base class for diffusion strategies. |
|
Diffusion based on spatial gradients of the velocity field. |
|
Random walk diffusion model. |
|
Main class for calculating diffusion effects. |
API
- class sedtrails.particle_tracer.diffusion_library.DiffusionStrategy
Bases:
abc.ABCAbstract base class for diffusion strategies.
- abstractmethod calculate(dt: float, x: numpy.ndarray, y: numpy.ndarray, u: numpy.ndarray, v: numpy.ndarray, nu: float) Tuple[numpy.ndarray, numpy.ndarray]
Apply diffusion to the given positions and velocities.
dt: Time step for diffusion calculation x: Array of x-coordinates. y: Array of y-coordinates. u: Array of x-velocity components. v: Array of y-velocity components. nu: Diffusion coefficient.
Tuple of updated x and y positions after diffusion (xdif, ydif).
- class sedtrails.particle_tracer.diffusion_library.GradientDiffusion
Bases:
sedtrails.particle_tracer.diffusion_library.DiffusionStrategyDiffusion based on spatial gradients of the velocity field.
- calculate(dt: float, x: numpy.ndarray, y: numpy.ndarray, u: numpy.ndarray, v: numpy.ndarray, nu: float) Tuple[numpy.ndarray, numpy.ndarray]
Example dummy diffusion calculation using gradients of the velocity field.
For unstructured grids, gradients are approximated using nearest-neighbor differences.
- class sedtrails.particle_tracer.diffusion_library.RandomDiffusion
Bases:
sedtrails.particle_tracer.diffusion_library.DiffusionStrategyRandom walk diffusion model.
- calculate(dt: float, x: numpy.ndarray, y: numpy.ndarray, u: numpy.ndarray, v: numpy.ndarray, nu: float) Tuple[float, float]
- class sedtrails.particle_tracer.diffusion_library.DiffusionCalculator(strategy: sedtrails.particle_tracer.diffusion_library.DiffusionStrategy)
Main class for calculating diffusion effects.
Initialization
Initialize with a diffusion strategy.
strategy: DiffusionStrategy object to use
- property strategy: sedtrails.particle_tracer.diffusion_library.DiffusionStrategy
Get the current diffusion strategy.
- calc_diffusion(x: float, y: float, u: numpy.ndarray, v: numpy.ndarray, nu: float, dt: float) Tuple[numpy.ndarray, numpy.ndarray]
Calculate diffusion effect on position.
x: Current x position y: Current y position u: Velocity field x-component (2D array) v: Velocity field y-component (2D array) nu: Diffusion coefficient dt: Current time step
Tuple of (x_diffusion, y_diffusion) representing position changes