Go to the documentation of this file.
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);
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);
198 vtkSetMacro(StaticSeeds,
int);
199 vtkGetMacro(StaticSeeds,
int);
212 vtkSetMacro(StaticMesh,
int);
213 vtkGetMacro(StaticMesh,
int);
232 vtkSetStringMacro(ParticleFileName);
233 vtkGetStringMacro(ParticleFileName);
243 vtkBooleanMacro(EnableParticleWriting,
vtkTypeBool);
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;
551 std::vector<bounds> CachedBounds[2];
574 unsigned int NumberOfParticles();
579 static const double Epsilon;
represent and manipulate 3D points
A particle tracer for vector fields.
vtkSmartPointer< vtkPolyData > Output
represent and manipulate point attribute data
virtual void InitializeExtraPointDataArrays(vtkPointData *vtkNotUsed(outputPD))
Methods to append values to existing point data arrays that may only be desired on specific concrete ...
dynamic, self-adjusting array of float
record modification and/or execution time
virtual int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
This is called by the superclass.
vtkSmartPointer< vtkPointData > ParticlePointData
std::list< ParticleInformation > ParticleDataList
vtkTypeBool DisableResetCache
virtual void AddRestartSeeds(vtkInformationVector **)
For restarts of particle paths, we add in the ability to add in particles from a previous computation...
virtual void Initialize()
std::vector< ParticleInformation > ParticleVector
abstract superclass for arrays of numeric data
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
Composite dataset that organizes datasets into blocks.
abstract superclass for composite (multi-block or AMR) datasets
vtkParticleTracerBaseNamespace::ParticleDataList ParticleHistories
boost::graph_traits< vtkGraph * >::vertex_descriptor source(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
vtkIdType UniqueIdCounter
dynamic, self-adjusting array of char
vtkTypeBool IgnorePipelineTime
ParticleDataList::iterator ParticleListIterator
vtkSmartPointer< vtkPointData > ProtoPD
ProtoPD is used just to keep track of the input array names and number of components for copy allocat...
virtual int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
This is called by the superclass.
Multiprocessing communication superclass.
a simple class to control print indentation
object to represent cell connectivity
dynamic, self-adjusting array of int
abstract class to write particle data to file
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
abstract class to specify dataset behavior
An abstract class for obtaining the interpolated velocity values at a point.
virtual bool SendParticleToAnotherProcess(vtkParticleTracerBaseNamespace::ParticleInformation &, vtkParticleTracerBaseNamespace::ParticleInformation &, vtkPointData *)
virtual void AppendToExtraPointDataArrays(vtkParticleTracerBaseNamespace::ParticleInformation &)
virtual bool UpdateParticleListFromOtherProcesses()
this is used during classification of seed points and also between iterations of the main loop as par...
Proxy object to connect input/output ports.
A helper class for interpolating between times during particle tracing.
concrete dataset represents vertices, lines, polygons, and triangle strips
provides thread-safe access to cells
dynamic, self-adjusting array of double
Integrate a set of ordinary differential equations (initial value problem) in time.
ParticleVector::iterator ParticleIterator
general representation of visualization data
int ProcessRequest(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
see vtkAlgorithm for details
virtual int RequestInformation(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
Superclass for algorithms that produce only polydata as output.