28 #ifndef vtkParticleTracerBase_h 29 #define vtkParticleTracerBase_h 31 #include "vtkFiltersFlowPathsModule.h" 67 int CachedDataSetId[2];
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);
202 vtkSetMacro(StaticSeeds,
int);
203 vtkGetMacro(StaticSeeds,
int);
216 vtkSetMacro(StaticMesh,
int);
217 vtkGetMacro(StaticMesh,
int);
236 vtkSetStringMacro(ParticleFileName);
237 vtkGetStringMacro(ParticleFileName);
247 vtkBooleanMacro(EnableParticleWriting,
vtkTypeBool);
266 void RemoveAllSources();
335 virtual int OutputParticles(
vtkPolyData* poly) = 0;
342 virtual std::vector<vtkDataSet*> GetSeedSources(
vtkInformationVector* inputVector,
int timeStep);
347 int InitializeInterpolator();
408 bool ComputeDomainExitLocation(
409 double pos[4],
double p2[4],
double intersection[4],
vtkGenericCell* cell);
427 bool InsideBounds(
double point[]);
429 void CalculateVorticity(
434 double GetCacheDataTime(
int i);
435 double GetCacheDataTime();
437 virtual void ResetCache();
448 void GetPointDataArrayNames(
vtkDataSet* input, std::vector<std::string>& names);
451 vtkGetMacro(ReinjectionCounter,
int);
452 vtkGetMacro(CurrentTimeValue,
double);
486 double delT,
int subSteps);
488 bool SetTerminationTimeNoModify(
double t);
492 double IntegrationStep;
494 bool ComputeVorticity;
495 double RotationScale;
496 double TerminalSpeed;
499 int ReinjectionCounter;
502 int AllFixedGeometry;
506 std::vector<double> InputTimeValues;
508 double TerminationTime;
509 double CurrentTimeValue;
514 int TerminationTimeStep;
518 int ForceReinjectionEveryNSteps;
524 char* ParticleFileName;
542 std::vector<bounds> CachedBounds[2];
565 unsigned int NumberOfParticles();
570 static const double Epsilon;
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
boost::graph_traits< vtkGraph * >::vertex_descriptor source(boost::graph_traits< vtkGraph *>::edge_descriptor e, vtkGraph *)
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.
vtkTypeBool DisableResetCache
ProtoPD is used just to keep track of the input array names and number of components for copy allocat...
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
vtkTypeBool ProcessRequest(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
see vtkAlgorithm for details
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
vtkTypeBool IgnorePipelineTime
ProtoPD is used just to keep track of the input array names and number of components for copy allocat...
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
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.