Skip to content

LagrangianParticleTracker Filter

This is a very flexible and adaptive filter to inject and track particles in a flow. It takes three inputs :

  • port 0 : Flow Input, a volumic dataset containing data to integrate with
  • port 1 : Seed (source) Input, a dataset containing point to generate particles with
  • port 2 : Optional Surface Input, containing dataset to interact with

It has two outputs :

  • port 0 : ParticlePaths : a polyData of polyLines showing the paths of particles in the flow
  • port 1 : ParticleInteractions : empty if no surface input, contains a polydata of vertex with the same composite layout of surface input if any, showing all interactions between particles and the surface input

The most important parameters of this filter is it's integrationModel. Only one integration model implementation exist currently in ParaView vtkLagrangianMatidaIntegrationModel but the design enables plugin developpers to expand this tracker by creating new models. A model can define :

  • The number of integration variable and new user defined integration variable
  • the way the particle are integrated
  • the way particles intersect and interact with the surface
  • the way freeFlight termination is handled see vtkLagrangianBasicIntegrationModel for more information

It also let the user choose the Locator to use when integrating in the flow, as well as the Integrator to use. Integration steps are also highly configurable, step, step min and step max are passed down to the integrator (hence min and max does not matter with a non adaptive integrator like RK4/5)

a IntegrationModel is a very specific vtkFunctionSet with a lot of features allowing inherited classes to concentrate on the mathematical part of the code. a Particle is basically a class wrapper around three table containing variables about the particle at previous, current and next position. The particle is passed to the integrator, which use the integration model to integrate the particle in the flow.

Merge request reports