28 #ifndef vtkParticleTracerBase_h
29 #define vtkParticleTracerBase_h
31 #include "vtkFiltersFlowPathsModule.h"
63 int CachedDataSetId[2];
108 void PrintSelf(ostream& os,
vtkIndent indent);
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);
174 vtkGetObjectMacro ( Integrator, vtkInitialValueProblemSolver );
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(){}
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;
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
record modification and/or execution time
dynamic, self-adjusting array of float
An abstract class for obtaining the interpolated velocity values at a point.
Hold a reference to a vtkObjectBase instance.
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
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...
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.
a simple class to control print indentation
abstract superclass for arrays of numeric data
vtkGetStringMacro(ExtensionsString)
Returns a string listing all available extensions.
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
unsigned long ErrorCode
The error code contains a possible error that occurred while reading or writing the file...
Composite dataset that organizes datasets into blocks.
std::vector< ParticleInformation > ParticleVector
vtkBooleanMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
ParticleDataList::iterator ParticleListIterator
general representation of visualization data
represent and manipulate 3D points
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.