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 
28 {
29 public:
31  void PrintSelf(ostream& os, vtkIndent indent) override;
32 
34 
38  virtual void SetController(vtkMultiProcessController* controller);
39  vtkGetObjectMacro(Controller, vtkMultiProcessController);
41 
42 protected:
44  {
48  };
49 
50  typedef std::vector<RemoteParticleInfo> RemoteParticleVector;
51 
53  ~vtkLegacyPParticleTracerBase() override;
54 
55  int RequestUpdateExtent(vtkInformation* request, vtkInformationVector** inputVector,
56  vtkInformationVector* outputVector) override;
57 
58  //
59 
60  vtkPolyData* Execute(vtkInformationVector** inputVector) override;
61  bool SendParticleToAnotherProcess(vtkLegacyParticleTracerBaseNamespace::ParticleInformation& info,
63 
71  void AssignSeedsToProcessors(double time, vtkDataSet* source, int sourceID, int ptId,
73  int& localAssignedCount) override;
74 
79  void AssignUniqueIds(
81 
87  bool SendReceiveParticles(RemoteParticleVector& outofdomain, RemoteParticleVector& received);
88 
89  bool UpdateParticleListFromOtherProcesses() override;
90 
96  bool IsPointDataValid(vtkDataObject* input) override;
97 
98  //
99 
100  //
101 
102  // MPI controller needed when running in parallel
104 
105  // List used for transmitting between processors during parallel operation
106  RemoteParticleVector MPISendList;
107 
108  RemoteParticleVector Tail; // this is to receive the "tails" of traces from other processes
109 private:
111  void operator=(const vtkLegacyPParticleTracerBase&) = delete;
112 };
114 #endif
A particle tracer for vector fields.
vtkMultiProcessController * Controller
vtkLegacyParticleTracerBaseNamespace::ParticleInformation Current
#define VTK_ABI_NAMESPACE_END
vtkLegacyParticleTracerBaseNamespace::ParticleInformation Previous
#define VTK_ABI_NAMESPACE_BEGIN
void PrintSelf(ostream &os, vtkIndent indent) override
std::vector< ParticleInformation > ParticleVector
#define VTKPVVTKEXTENSIONSFILTERSGENERALMPI_EXPORT
std::vector< RemoteParticleInfo > RemoteParticleVector