28 #ifndef vtkParticleTracerBase_h 29 #define vtkParticleTracerBase_h 31 #include "vtkFiltersFlowPathsModule.h" 63 int CachedDataSetId[2];
108 void PrintSelf(ostream& os,
vtkIndent indent) override;
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, vtkTypeBool);
145 vtkBooleanMacro(IgnorePipelineTime, vtkTypeBool);
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);
198 vtkSetMacro(StaticSeeds,
int);
199 vtkGetMacro(StaticSeeds,
int);
212 vtkSetMacro(StaticMesh,
int);
213 vtkGetMacro(StaticMesh,
int);
232 vtkSetStringMacro(ParticleFileName);
233 vtkGetStringMacro(ParticleFileName);
241 vtkSetMacro(EnableParticleWriting,vtkTypeBool);
242 vtkGetMacro(EnableParticleWriting,vtkTypeBool);
243 vtkBooleanMacro(EnableParticleWriting,vtkTypeBool);
252 vtkSetMacro(DisableResetCache,vtkTypeBool);
253 vtkGetMacro(DisableResetCache,vtkTypeBool);
254 vtkBooleanMacro(DisableResetCache,vtkTypeBool);
262 void RemoveAllSources();
278 vtkTypeBool IgnorePipelineTime;
279 vtkTypeBool 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;
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
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.
std::vector< ParticleInformation > ParticleVector
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.