37 #ifndef vtkPLagrangianParticleTracker_h
38 #define vtkPLagrangianParticleTracker_h
40 #include "vtkFiltersParallelFlowPathsModule.h"
46 class ParticleFeedManager;
47 class ParticleIdManager;
48 class ParticleStreamManager;
69 int nVar, std::queue<vtkLagrangianParticle*>& particles)
override;
85 void GetParticleFeed(std::queue<vtkLagrangianParticle*>& particleQueue)
override;
87 std::queue<vtkLagrangianParticle*>& particleQueue,
vtkPolyData* particlePathsOutput,
93 void ReceiveParticles(std::queue<vtkLagrangianParticle*>& particleQueue);
98 void ReceiveTransferredParticleIds();
ParticleStreamManager * StreamManager
ParticleFeedManager * FeedManager
virtual void GetParticleFeed(std::queue< vtkLagrangianParticle * > &particleQueue)
represent and manipulate point attribute data
static vtkLagrangianParticleTracker * New()
virtual bool FinalizeOutputs(vtkPolyData *particlePathsOutput, vtkDataObject *interactionOutput)
ParticleIdManager * TransferredParticleIdManager
parallel Lagrangian particle tracker
vtkNew< vtkMultiBlockDataSet > TmpSurfaceInputMB
abstract class to specify dataset behavior
concrete dataset represents vertices, lines, polygons, and triangle strips
std::mutex StreamManagerMutex
vtkNew< vtkUnstructuredGrid > TmpSurfaceInput
a simple class to control print indentation
virtual void DeleteParticle(vtkLagrangianParticle *particle)
This method is thread safe Call the ParticleAboutToBeDeleted model method and delete the particle...
dataset represents arbitrary combinations of all possible cell types
virtual int Integrate(vtkInitialValueProblemSolver *integrator, vtkLagrangianParticle *, std::queue< vtkLagrangianParticle * > &, vtkPolyData *particlePathsOutput, vtkPolyLine *particlePath, vtkDataObject *interactionOutput)
This method is thread safe.
abstract superclass for arrays of numeric data
virtual int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
This is called by the superclass.
Process communication using MPI.
Basis class for Lagrangian particles.
virtual bool UpdateSurfaceCacheIfNeeded(vtkDataObject *&surfaces)
virtual void GenerateParticles(const vtkBoundingBox *bounds, vtkDataSet *seeds, vtkDataArray *initialVelocities, vtkDataArray *initialIntegrationTimes, vtkPointData *seedData, int nVar, std::queue< vtkLagrangianParticle * > &particles)
Composite dataset that organizes datasets into blocks.
std::mutex OutOfDomainParticleMapMutex
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
std::map< vtkIdType, vtkLagrangianParticle * > OutOfDomainParticleMap
virtual vtkIdType GetNewParticleId()
Get an unique id for a particle This method is thread safe.
general representation of visualization data
Filter to inject and track particles in a flow.
cell represents a set of 1D lines
Fast, simple class for representing and operating on 3D bounds.
Integrate a set of ordinary differential equations (initial value problem) in time.
vtkMPIController * Controller