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);
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();
278 int IgnorePipelineTime;
279 int DisableResetCache;
333 virtual
void Initialize(){}
370 int &localAssignedCount);
398 double currenttime,
double terminationtime,
417 double pos[4],
double p2[4],
double intersection[4],
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;
represent and manipulate 3D points
void TestParticles(vtkParticleTracerBaseNamespace::ParticleVector &candidates, std::vector< int > &passed)
void CreateProtoPD(vtkDataObject *input)
A particle tracer for vector fields.
vtkIntArray * GetParticleIds(vtkPointData *)
vtkIntArray * GetInjectedPointIds(vtkPointData *)
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 ...
vtkIntArray * GetInjectedStepIds(vtkPointData *)
dynamic, self-adjusting array of float
double GetCacheDataTime(int i)
record modification and/or execution time
bool InsideBounds(double point[])
vtkFloatArray * GetParticleAge(vtkPointData *)
std::list< ParticleInformation > ParticleDataList
Hold a reference to a vtkObjectBase instance.
vtkFloatArray * GetParticleRotation(vtkPointData *)
virtual void AddRestartSeeds(vtkInformationVector **)
For restarts of particle paths, we add in the ability to add in particles from a previous computation...
std::vector< ParticleInformation > ParticleVector
virtual std::vector< vtkDataSet * > GetSeedSources(vtkInformationVector *inputVector, int timeStep)
Method to get the data set seed sources.
abstract superclass for arrays of numeric data
bool IsPointDataValid(vtkCompositeDataSet *input, std::vector< std::string > &arrayNames)
bool ComputeDomainExitLocation(double pos[4], double p2[4], double intersection[4], vtkGenericCell *cell)
This is an old routine kept for possible future use.
Composite dataset that organizes datasets into blocks.
abstract superclass for composite (multi-block or AMR) datasets
virtual void AssignSeedsToProcessors(double time, vtkDataSet *source, int sourceID, int ptId, vtkParticleTracerBaseNamespace::ParticleVector &localSeedPoints, int &localAssignedCount)
all the injection/seed points according to which processor they belong to.
boost::graph_traits< vtkGraph * >::vertex_descriptor source(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
dynamic, self-adjusting array of char
void TestParticles(vtkParticleTracerBaseNamespace::ParticleVector &candidates, vtkParticleTracerBaseNamespace::ParticleVector &passed, int &count)
inside our data.
void GetPointDataArrayNames(vtkDataSet *input, std::vector< std::string > &names)
ParticleDataList::iterator ParticleListIterator
vtkFloatArray * GetParticleVorticity(vtkPointData *)
vtkIntArray * GetErrorCodeArr(vtkPointData *)
Multiprocessing communication superclass.
virtual void AssignUniqueIds(vtkParticleTracerBaseNamespace::ParticleVector &localSeedPoints)
give each one a uniqu ID.
vtkTemporalInterpolatedVelocityField * GetInterpolator()
a simple class to control print indentation
object to represent cell connectivity
dynamic, self-adjusting array of int
vtkFloatArray * GetParticleAngularVel(vtkPointData *)
abstract class to write particle data to file
void CalculateVorticity(vtkGenericCell *cell, double pcoords[3], vtkDoubleArray *cellVectors, double vorticity[3])
virtual int OutputParticles(vtkPolyData *poly)=0
vtkGetStringMacro(ExtensionsString)
Returns a string listing all available extensions.
abstract class to specify dataset behavior
An abstract class for obtaining the interpolated velocity values at a point.
vtkBooleanMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
vtkSetMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
virtual bool SendParticleToAnotherProcess(vtkParticleTracerBaseNamespace::ParticleInformation &, vtkParticleTracerBaseNamespace::ParticleInformation &, vtkPointData *)
void UpdateParticleList(vtkParticleTracerBaseNamespace::ParticleVector &candidates)
and sending between processors, into a list, which is used as the master list on this processor
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...
vtkCharArray * GetParticleSourceIds(vtkPointData *)
Proxy object to connect input/output ports.
void IntegrateParticle(vtkParticleTracerBaseNamespace::ParticleListIterator &it, double currenttime, double terminationtime, vtkInitialValueProblemSolver *integrator)
particle between the two times supplied.
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
int InitializeInterpolator()
virtual bool IsPointDataValid(vtkDataObject *input)
Methods that check that the input arrays are ordered the same on all data sets.
Integrate a set of ordinary differential equations (initial value problem) in time.
ParticleVector::iterator ParticleIterator
general representation of visualization data
double GetCacheDataTime()
int UpdateDataCache(vtkDataObject *td)
void AddParticle(vtkParticleTracerBaseNamespace::ParticleInformation &info, double *velocity)
virtual void ResetCache()
Superclass for algorithms that produce only polydata as output.