16 #ifndef vtkLegacyParticleTracerBase_h 17 #define vtkLegacyParticleTracerBase_h 19 #include "vtkDeprecation.h" 61 int CachedDataSetId[2];
92 struct ParticleTracerFunctor;
101 friend struct vtkLegacyParticleTracerBaseNamespace::ParticleTracerFunctor;
112 void PrintSelf(ostream& os,
vtkIndent indent)
override;
113 void PrintParticleHistories();
121 vtkGetMacro(ComputeVorticity,
bool);
122 void SetComputeVorticity(
bool);
129 vtkGetMacro(TerminalSpeed,
double);
130 void SetTerminalSpeed(
double);
138 vtkGetMacro(RotationScale,
double);
139 void SetRotationScale(
double);
162 vtkGetMacro(ForceReinjectionEveryNSteps,
int);
163 void SetForceReinjectionEveryNSteps(
int);
173 void SetTerminationTime(
double t);
174 vtkGetMacro(TerminationTime,
double);
180 void SetIntegratorType(
int type);
181 int GetIntegratorType();
188 vtkGetMacro(StartTime,
double);
189 void SetStartTime(
double t);
213 LINEAR_TRANSFORMATION = 2,
226 virtual void SetMeshOverTime(
int meshOverTime);
233 vtkGetMacro(MeshOverTime,
int);
246 VTK_DEPRECATED_IN_9_2_0(
"Use SetMeshOverTime instead")
249 this->SetMeshOverTime(staticMesh ? STATIC : DIFFERENT);
251 VTK_DEPRECATED_IN_9_2_0(
"Use GetMeshOverTime instead")
252 virtual
vtkTypeBool GetStaticMesh() {
return this->MeshOverTime == STATIC; }
258 INTERPOLATOR_WITH_CELL_LOCATOR
272 void SetInterpolatorType(
int interpolatorType);
281 void SetInterpolatorTypeToDataSetPointLocator();
289 void SetInterpolatorTypeToCellLocator();
307 vtkSetFilePathMacro(ParticleFileName);
308 vtkGetFilePathMacro(ParticleFileName);
318 vtkBooleanMacro(EnableParticleWriting,
vtkTypeBool);
337 void RemoveAllSources();
345 vtkGetMacro(ForceSerialExecution,
bool);
346 vtkSetMacro(ForceSerialExecution,
bool);
347 vtkBooleanMacro(ForceSerialExecution,
bool);
375 int FillInputPortInformation(
int port,
vtkInformation* info)
override;
418 virtual int OutputParticles(
vtkPolyData* poly) = 0;
425 virtual std::vector<vtkDataSet*> GetSeedSources(
vtkInformationVector* inputVector,
int timeStep);
428 int InitializeInterpolator();
454 virtual void AssignUniqueIds(
476 std::atomic<vtkIdType>& particleCount, std::mutex& eraseMutex,
bool sequential);
493 bool ComputeDomainExitLocation(
494 double pos[4],
double p2[4],
double intersection[4],
vtkGenericCell* cell);
512 bool InsideBounds(
double point[]);
514 void CalculateVorticity(
519 double GetCacheDataTime(
int i);
520 double GetCacheDataTime();
522 virtual void ResetCache();
535 void GetPointDataArrayNames(
vtkDataSet* input, std::vector<std::string>& names);
538 vtkGetMacro(ReinjectionCounter,
int);
539 vtkGetMacro(CurrentTimeValue,
double);
581 bool SetTerminationTimeNoModify(
double t);
585 double IntegrationStep;
587 bool ComputeVorticity;
588 double RotationScale;
589 double TerminalSpeed;
592 int ReinjectionCounter;
599 std::vector<double> InputTimeValues;
601 double TerminationTime;
602 double CurrentTimeValue;
607 int TerminationTimeStep;
611 int ForceReinjectionEveryNSteps;
617 char* ParticleFileName;
634 using bounds =
struct bounds_t;
635 std::vector<bounds> CachedBounds[2];
664 unsigned int NumberOfParticles();
668 static const double Epsilon;
A particle tracer for vector fields.
std::list< ParticleInformation > ParticleDataList
virtual int GetMeshOverTimeMinValue()
virtual void AddRestartSeeds(vtkInformationVector **)
For restarts of particle paths, we add in the ability to add in particles from a previous computation...
void SetMeshOverTimeToDifferent()
vtkTypeBool IgnorePipelineTime
ProtoPD is used just to keep track of the input array names and number of components for copy allocat...
#define VTK_ABI_NAMESPACE_END
void SetMeshOverTimeToStatic()
MeshOverTimeTypes
Types of Variance of Mesh over time.
vtkLegacyParticleTracerBaseNamespace::ParticleDataList ParticleHistories
ProtoPD is used just to keep track of the input array names and number of components for copy allocat...
virtual int GetMeshOverTimeMaxValue()
vtkSmartPointer< vtkPolyData > Output
vtkIdType UniqueIdCounter
ProtoPD is used just to keep track of the input array names and number of components for copy allocat...
vtkSmartPointer< vtkPointData > ProtoPD
ProtoPD is used just to keep track of the input array names and number of components for copy allocat...
vtkTypeBool DisableResetCache
ProtoPD is used just to keep track of the input array names and number of components for copy allocat...
#define VTK_ABI_NAMESPACE_BEGIN
ParticleDataList::iterator ParticleListIterator
virtual void Initialize()
bool ForceSerialExecution
A Parallel Particle tracer for unsteady vector fields.
std::vector< ParticleInformation > ParticleVector
virtual bool SendParticleToAnotherProcess(vtkLegacyParticleTracerBaseNamespace::ParticleInformation &, vtkLegacyParticleTracerBaseNamespace::ParticleInformation &, vtkPointData *)
virtual bool UpdateParticleListFromOtherProcesses()
this is used during classification of seed points and also between iterations of the main loop as par...
virtual void SetToExtraPointDataArrays(vtkIdType, vtkLegacyParticleTracerBaseNamespace::ParticleInformation &)
ParticleVector::iterator ParticleIterator
void SetMeshOverTimeToLinearTransformation()
void SetMeshOverTimeToSameTopology()
virtual void InitializeExtraPointDataArrays(vtkPointData *vtkNotUsed(outputPD))
Methods to append values to existing point data arrays that may only be desired on specific concrete ...
#define VTKPVVTKEXTENSIONSFILTERSGENERALMPI_EXPORT
vtkSmartPointer< vtkPointData > ParticlePointData
ProtoPD is used just to keep track of the input array names and number of components for copy allocat...