28 #ifndef vtkParticleTracerBase_h 29 #define vtkParticleTracerBase_h 31 #include "vtkFiltersFlowPathsModule.h" 63 int CachedDataSetId[2];
109 void PrintParticleHistories();
117 vtkGetMacro(ComputeVorticity,
bool);
118 void SetComputeVorticity(
bool);
125 vtkGetMacro(TerminalSpeed,
double);
126 void SetTerminalSpeed(
double);
134 vtkGetMacro(RotationScale,
double);
135 void SetRotationScale(
double);
144 vtkGetMacro(IgnorePipelineTime,
int);
158 vtkGetMacro(ForceReinjectionEveryNSteps,
int);
159 void SetForceReinjectionEveryNSteps(
int);
169 void SetTerminationTime(
double t);
170 vtkGetMacro(TerminationTime,
double);
176 void SetIntegratorType(
int type);
177 int GetIntegratorType();
184 vtkGetMacro(StartTime,
double);
185 void SetStartTime(
double t);
199 vtkGetMacro(StaticSeeds,
int);
213 vtkGetMacro(StaticMesh,
int);
232 vtkSetStringMacro(ParticleFileName);
242 vtkGetMacro(EnableParticleWriting,
int);
253 vtkGetMacro(DisableResetCache,
int);
262 void RemoveAllSources();
341 virtual std::vector<vtkDataSet*> GetSeedSources(
vtkInformationVector* inputVector,
int timeStep);
346 int InitializeInterpolator();
367 virtual void AssignSeedsToProcessors(
370 int &localAssignedCount);
376 virtual void AssignUniqueIds(
383 void UpdateParticleList(
396 void IntegrateParticle(
398 double currenttime,
double terminationtime,
416 bool ComputeDomainExitLocation(
417 double pos[4],
double p2[4],
double intersection[4],
436 bool InsideBounds(
double point[]);
444 double GetCacheDataTime(
int i);
445 double GetCacheDataTime();
447 virtual void ResetCache();
458 void GetPointDataArrayNames(
vtkDataSet* input, std::vector<std::string>& names);
461 vtkGetMacro(ReinjectionCounter,
int);
462 vtkGetMacro(CurrentTimeValue,
double);
498 bool SetTerminationTimeNoModify(
double t);
502 double IntegrationStep;
504 bool ComputeVorticity;
505 double RotationScale;
506 double TerminalSpeed;
509 int ReinjectionCounter;
512 int AllFixedGeometry;
516 std::vector<double> InputTimeValues;
518 double TerminationTime;
519 double CurrentTimeValue;
523 int TerminationTimeStep;
527 int ForceReinjectionEveryNSteps;
533 char *ParticleFileName;
534 int EnableParticleWriting;
551 std::vector<bounds> CachedBounds[2];
574 unsigned int NumberOfParticles();
579 static const double Epsilon;
int IgnorePipelineTime
ProtoPD is used just to keep track of the input array names and number of components for copy allocat...
A helper class for interpolating between times during particle tracing.
abstract class to write particle data to file
represent and manipulate point attribute data
abstract class to specify dataset behavior
virtual int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
This is called by the superclass.
record modification and/or execution time
dynamic, self-adjusting array of float
An abstract class for obtaining the interpolated velocity values at a point.
virtual bool SendParticleToAnotherProcess(vtkParticleTracerBaseNamespace::ParticleInformation &, vtkParticleTracerBaseNamespace::ParticleInformation &, vtkPointData *)
concrete dataset represents vertices, lines, polygons, and triangle strips
ParticleVector::iterator ParticleIterator
provides thread-safe access to cells
int DisableResetCache
ProtoPD is used just to keep track of the input array names and number of components for copy allocat...
Proxy object to connect input/output ports.
dynamic, self-adjusting array of double
virtual void AddRestartSeeds(vtkInformationVector **)
For restarts of particle paths, we add in the ability to add in particles from a previous computation...
vtkParticleTracerBaseNamespace::ParticleDataList ParticleHistories
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...
virtual int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
This is called by the superclass.
virtual void AppendToExtraPointDataArrays(vtkParticleTracerBaseNamespace::ParticleInformation &)
dynamic, self-adjusting array of char
dynamic, self-adjusting array of int
abstract superclass for composite (multi-block or AMR) datasets
Superclass for algorithms that produce only polydata as output.
vtkSmartPointer< vtkPolyData > Output
virtual void Initialize()
a simple class to control print indentation
virtual int RequestInformation(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
vtkIdType UniqueIdCounter
ProtoPD is used just to keep track of the input array names and number of components for copy allocat...
abstract superclass for arrays of numeric data
vtkGetStringMacro(ExtensionsString)
Returns a string listing all available extensions.
int ProcessRequest(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
see vtkAlgorithm for details
vtkSetMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
virtual void InitializeExtraPointDataArrays(vtkPointData *vtkNotUsed(outputPD))
Methods to append values to existing point data arrays that may only be desired on specific concrete ...
std::list< ParticleInformation > ParticleDataList
boost::graph_traits< vtkGraph * >::vertex_descriptor source(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
object to represent cell connectivity
Composite dataset that organizes datasets into blocks.
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
std::vector< ParticleInformation > ParticleVector
vtkBooleanMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
vtkSmartPointer< vtkPointData > ParticlePointData
ProtoPD is used just to keep track of the input array names and number of components for copy allocat...
ParticleDataList::iterator ParticleListIterator
general representation of visualization data
represent and manipulate 3D points
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
virtual bool UpdateParticleListFromOtherProcesses()
this is used during classification of seed points and also between iterations of the main loop as par...
Integrate a set of ordinary differential equations (initial value problem) in time.
A particle tracer for vector fields.
Multiprocessing communication superclass.