vtkLegacyPParticleTracerBase.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2 // SPDX-License-Identifier: BSD-3-Clause
15 #ifndef vtkLegacyPParticleTracerBase_h
16 #define vtkLegacyPParticleTracerBase_h
17 
19 #include "vtkSmartPointer.h" // For protected ivars.
20 
21 #include <vector> // STL Header
22 
23 #include "vtkPVVTKExtensionsFiltersGeneralMPIModule.h" // For export macro
24 
27 {
28 public:
30  void PrintSelf(ostream& os, vtkIndent indent) override;
31 
33 
37  virtual void SetController(vtkMultiProcessController* controller);
38  vtkGetObjectMacro(Controller, vtkMultiProcessController);
40 
41 protected:
43  {
47  };
48 
49  typedef std::vector<RemoteParticleInfo> RemoteParticleVector;
50 
52  ~vtkLegacyPParticleTracerBase() override;
53 
54  int RequestUpdateExtent(vtkInformation* request, vtkInformationVector** inputVector,
55  vtkInformationVector* outputVector) override;
56 
57  //
58 
59  vtkPolyData* Execute(vtkInformationVector** inputVector) override;
60  bool SendParticleToAnotherProcess(vtkLegacyParticleTracerBaseNamespace::ParticleInformation& info,
62 
70  void AssignSeedsToProcessors(double time, vtkDataSet* source, int sourceID, int ptId,
72  int& localAssignedCount) override;
73 
78  void AssignUniqueIds(
80 
86  bool SendReceiveParticles(RemoteParticleVector& outofdomain, RemoteParticleVector& received);
87 
88  bool UpdateParticleListFromOtherProcesses() override;
89 
95  bool IsPointDataValid(vtkDataObject* input) override;
96 
97  //
98 
99  //
100 
101  // MPI controller needed when running in parallel
103 
104  // List used for transmitting between processors during parallel operation
105  RemoteParticleVector MPISendList;
106 
107  RemoteParticleVector Tail; // this is to receive the "tails" of traces from other processes
108 private:
110  void operator=(const vtkLegacyPParticleTracerBase&) = delete;
111 };
112 #endif
A particle tracer for vector fields.
vtkMultiProcessController * Controller
vtkLegacyParticleTracerBaseNamespace::ParticleInformation Current
vtkLegacyParticleTracerBaseNamespace::ParticleInformation Previous
void PrintSelf(ostream &os, vtkIndent indent) override
std::vector< ParticleInformation > ParticleVector
#define VTKPVVTKEXTENSIONSFILTERSGENERALMPI_EXPORT
std::vector< RemoteParticleInfo > RemoteParticleVector