32#ifndef vtkTemporalStreamTracer_h
33#define vtkTemporalStreamTracer_h
36#include "vtkFiltersFlowPathsModule.h"
98 "vtkParticlePathFilter, or vtkStreaklineFilter")
116 vtkSetMacro(TimeStep,
unsigned int);
117 vtkGetMacro(TimeStep,
unsigned int);
138 vtkSetMacro(TimeStepResolution,
double);
139 vtkGetMacro(TimeStepResolution,
double);
152 vtkSetMacro(ForceReinjectionEveryNSteps,
int);
153 vtkGetMacro(ForceReinjectionEveryNSteps,
int);
159 TERMINATION_STEP_UNIT
169 vtkSetMacro(TerminationTime,
double);
170 vtkGetMacro(TerminationTime,
double);
178 vtkSetMacro(TerminationTimeUnit,
int);
179 vtkGetMacro(TerminationTimeUnit,
int);
364 double pos[4],
double p2[4],
double intersection[4],
vtkGenericCell* cell);
392 double CurrentTimeSteps[2];
451 std::vector<bounds> CachedBounds[2];
An abstract class for obtaining the interpolated velocity values at a point.
abstract class to write particle data to file
Proxy object to connect input/output ports.
object to represent cell connectivity
abstract superclass for arrays of numeric data
general representation of visualization data
abstract class to specify dataset behavior
dynamic, self-adjusting array of double
dynamic, self-adjusting array of float
provides thread-safe access to cells
a simple class to control print indentation
Integrate a set of ordinary differential equations (initial value problem) in time.
dynamic, self-adjusting array of int
Composite dataset that organizes datasets into blocks.
Multiprocessing communication superclass.
represent and manipulate 3D points
dynamic, self-adjusting array of signed char
A helper class for interpolating between times during particle tracing.
A Parallel Particle tracer for unsteady vector fields.
void SetTerminationTimeUnitToTimeUnit()
The units of TerminationTime may be actual 'Time' units as described by the data, or just TimeSteps o...
bool RetryWithPush(vtkTemporalStreamTracerNamespace::ParticleInformation &info, double velocity[3], double delT)
and sent to the other processors for possible continuation.
vtkTemporalStreamTracer()
virtual int ProcessInput(vtkInformationVector **inputVector)
virtual void TransmitReceiveParticles(vtkTemporalStreamTracerNamespace::ParticleVector &outofdomain, vtkTemporalStreamTracerNamespace::ParticleVector &received, bool removeself)
this is used during classification of seed points and also between iterations of the main loop as par...
virtual void AssignUniqueIds(vtkTemporalStreamTracerNamespace::ParticleVector &LocalSeedPoints)
give each one a unique ID.
int ForceReinjectionEveryNSteps
void RemoveAllSources()
Provide support for multiple see sources.
vtkSmartPointer< vtkFloatArray > ParticleRotation
vtkSmartPointer< vtkPoints > OutputCoordinates
vtkTemporalStreamTracerNamespace::ParticleDataList ParticleHistories
static vtkTemporalStreamTracer * New()
Construct object using 2nd order Runge Kutta.
virtual void SetParticleWriter(vtkAbstractParticleWriter *pw)
Set/Get the Writer associated with this Particle Tracer Ideally a parallel IO capable vtkH5PartWriter...
int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override
This is called by the superclass.
vtkIdType UniqueIdCounter
std::vector< double > OutputTimeValues
vtkTemporalStreamTracerNamespace::ParticleVector LocalSeeds
bool ComputeDomainExitLocation(double pos[4], double p2[4], double intersection[4], vtkGenericCell *cell)
In dnamic meshes, particles might leave the domain and need to be extrapolated across a gap between t...
vtkSmartPointer< vtkTemporalInterpolatedVelocityField > Interpolator
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
vtkTimeStamp ParticleInjectionTime
void AddSourceConnection(vtkAlgorithmOutput *input)
Provide support for multiple see sources.
double TimeStepResolution
vtkSetFilePathMacro(ParticleFileName)
Set/Get the filename to be used with the particle writer when dumping particles to disk.
int SetTemporalInput(vtkDataObject *td, int index)
unsigned int ActualTimeStep
virtual void AssignSeedsToProcessors(vtkDataSet *source, int sourceID, int ptId, vtkTemporalStreamTracerNamespace::ParticleVector &LocalSeedPoints, int &LocalAssignedCount)
all the injection/seed points according to which processor they belong to.
void SetTerminationTimeUnitToStepUnit()
The units of TerminationTime may be actual 'Time' units as described by the data, or just TimeSteps o...
vtkSmartPointer< vtkFloatArray > ParticleAngularVel
void TestParticles(vtkTemporalStreamTracerNamespace::ParticleVector &candidates, vtkTemporalStreamTracerNamespace::ParticleVector &passed, int &count)
inside our data.
vtkGetFilePathMacro(ParticleFileName)
Set/Get the filename to be used with the particle writer when dumping particles to disk.
vtkSmartPointer< vtkCellArray > ParticleCells
vtkSmartPointer< vtkSignedCharArray > ParticleSourceIds
vtkSmartPointer< vtkFloatArray > ParticleVorticity
vtkAbstractParticleWriter * ParticleWriter
unsigned int NumberOfInputTimeSteps
void AddParticleToMPISendList(vtkTemporalStreamTracerNamespace::ParticleInformation &info)
bool InsideBounds(double point[])
vtkSmartPointer< vtkIntArray > InjectedStepIds
vtkTypeBool EnableParticleWriting
std::vector< double > InputTimeValues
int RequestUpdateExtent(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override
This is called by the superclass.
vtkTypeBool IgnorePipelineTime
int InitializeInterpolator()
vtkSmartPointer< vtkPointData > OutputPointData
vtkTemporalStreamTracerNamespace::ParticleVector MPISendList
vtkSmartPointer< vtkIntArray > InjectedPointIds
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkSmartPointer< vtkFloatArray > ParticleAge
vtkTypeBool ProcessRequest(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override
see vtkAlgorithm for details
void UpdateParticleList(vtkTemporalStreamTracerNamespace::ParticleVector &candidates)
and sending between processors, into a list, which is used as the master list on this processor
~vtkTemporalStreamTracer() override
vtkSmartPointer< vtkDoubleArray > cellVectors
vtkIdType UniqueIdCounterMPI
unsigned int NumberOfParticles
vtkSmartPointer< vtkIntArray > ErrorCodeArray
bool SendParticleToAnotherProcess(vtkTemporalStreamTracerNamespace::ParticleInformation &info, double point1[4], double delT)
int RequestInformation(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override
void IntegrateParticle(vtkTemporalStreamTracerNamespace::ParticleListIterator &it, double currenttime, double terminationtime, vtkInitialValueProblemSolver *integrator)
particle between the two times supplied.
vtkSmartPointer< vtkIntArray > ParticleIds
virtual int GenerateOutput(vtkInformationVector **inputVector, vtkInformationVector *outputVector)
record modification and/or execution time
std::list< ParticleInformation > ParticleDataList
std::vector< ParticleInformation > ParticleVector
ParticleDataList::iterator ParticleListIterator
ParticleVector::iterator ParticleIterator
vtkIdType CachedCellId[2]
boost::graph_traits< vtkGraph * >::vertex_descriptor source(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
#define VTK_DEPRECATED_IN_9_0_0(reason)