Go to the documentation of this file.
27 #ifndef vtkTemporalStreamTracer_h
28 #define vtkTemporalStreamTracer_h
30 #include "vtkFiltersFlowPathsModule.h"
59 int CachedDataSetId[2];
102 vtkSetMacro(TimeStep,
unsigned int);
103 vtkGetMacro(TimeStep,
unsigned int);
124 vtkSetMacro(TimeStepResolution,
double);
125 vtkGetMacro(TimeStepResolution,
double);
138 vtkSetMacro(ForceReinjectionEveryNSteps,
int);
139 vtkGetMacro(ForceReinjectionEveryNSteps,
int);
145 TERMINATION_STEP_UNIT
155 vtkSetMacro(TerminationTime,
double);
156 vtkGetMacro(TerminationTime,
double);
164 vtkSetMacro(TerminationTimeUnit,
int);
165 vtkGetMacro(TerminationTimeUnit,
int);
167 {this->SetTerminationTimeUnit(TERMINATION_TIME_UNIT);};
169 {this->SetTerminationTimeUnit(TERMINATION_STEP_UNIT);};
216 vtkSetStringMacro(ParticleFileName);
217 vtkGetStringMacro(ParticleFileName);
311 int &LocalAssignedCount);
341 double currenttime,
double terminationtime,
352 double velocity[3],
double delT);
358 double point1[4],
double delT);
369 double pos[4],
double p2[4],
double intersection[4],
398 double CurrentTimeSteps[2];
455 std::vector<bounds> CachedBounds[2];
represent and manipulate 3D points
virtual void AssignUniqueIds(vtkTemporalStreamTracerNamespace::ParticleVector &LocalSeedPoints)
give each one a uniqu ID.
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.
int ProcessRequest(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override
see vtkAlgorithm for details
vtkSmartPointer< vtkPointData > OutputPointData
int ForceReinjectionEveryNSteps
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...
void AddSourceConnection(vtkAlgorithmOutput *input)
Provide support for multiple see sources.
dynamic, self-adjusting array of float
vtkTemporalStreamTracerNamespace::ParticleDataList ParticleHistories
std::vector< double > InputTimeValues
unsigned int NumberOfParticles
int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override
This is called by the superclass.
vtkIdType UniqueIdCounterMPI
record modification and/or execution time
void SetTerminationTimeUnitToStepUnit()
~vtkTemporalStreamTracer() override
vtkIdType UniqueIdCounter
double TimeStepResolution
vtkSmartPointer< vtkFloatArray > ParticleAge
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
A Parallel Particle tracer for unsteady vector fields.
abstract superclass for arrays of numeric data
int RequestInformation(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override
virtual int GenerateOutput(vtkInformationVector **inputVector, vtkInformationVector *outputVector)
Composite dataset that organizes datasets into blocks.
vtkSmartPointer< vtkTemporalInterpolatedVelocityField > Interpolator
vtkSmartPointer< vtkIntArray > InjectedStepIds
boost::graph_traits< vtkGraph * >::vertex_descriptor source(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
void AddParticleToMPISendList(vtkTemporalStreamTracerNamespace::ParticleInformation &info)
dynamic, self-adjusting array of char
unsigned int ActualTimeStep
vtkSmartPointer< vtkFloatArray > ParticleVorticity
unsigned int NumberOfInputTimeSteps
void UpdateParticleList(vtkTemporalStreamTracerNamespace::ParticleVector &candidates)
and sending between processors, into a list, which is used as the master list on this processor
Multiprocessing communication superclass.
vtkTimeStamp ParticleInjectionTime
bool SendParticleToAnotherProcess(vtkTemporalStreamTracerNamespace::ParticleInformation &info, double point1[4], double delT)
vtkTemporalStreamTracer()
a simple class to control print indentation
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...
object to represent cell connectivity
dynamic, self-adjusting array of int
int SetTemporalInput(vtkDataObject *td, int index)
abstract class to write particle data to file
vtkTypeBool IgnorePipelineTime
virtual void SetParticleWriter(vtkAbstractParticleWriter *pw)
Set/Get the Writer associated with this Particle Tracer Ideally a parallel IO capable vtkH5PartWriter...
static vtkTemporalStreamTracer * New()
Construct object using 2nd order Runge Kutta.
vtkTemporalStreamTracerNamespace::ParticleVector MPISendList
vtkSmartPointer< vtkIntArray > InjectedPointIds
void IntegrateParticle(vtkTemporalStreamTracerNamespace::ParticleListIterator &it, double currenttime, double terminationtime, vtkInitialValueProblemSolver *integrator)
particle between the two times supplied.
vtkAbstractParticleWriter * ParticleWriter
vtkTypeBool EnableParticleWriting
abstract class to specify dataset behavior
An abstract class for obtaining the interpolated velocity values at a point.
virtual int ProcessInput(vtkInformationVector **inputVector)
vtkSmartPointer< vtkIntArray > ParticleIds
vtkSmartPointer< vtkCellArray > ParticleCells
std::vector< ParticleInformation > ParticleVector
vtkSmartPointer< vtkFloatArray > ParticleAngularVel
ParticleDataList::iterator ParticleListIterator
int RequestUpdateExtent(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override
This is called by the superclass.
bool InsideBounds(double point[])
std::vector< double > OutputTimeValues
void TestParticles(vtkTemporalStreamTracerNamespace::ParticleVector &candidates, vtkTemporalStreamTracerNamespace::ParticleVector &passed, int &count)
inside our data.
Proxy object to connect input/output ports.
vtkSmartPointer< vtkPoints > OutputCoordinates
A helper class for interpolating between times during particle tracing.
void SetTerminationTimeUnitToTimeUnit()
std::list< ParticleInformation > ParticleDataList
provides thread-safe access to cells
dynamic, self-adjusting array of double
vtkSmartPointer< vtkCharArray > ParticleSourceIds
Integrate a set of ordinary differential equations (initial value problem) in time.
vtkSmartPointer< vtkDoubleArray > cellVectors
general representation of visualization data
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
ParticleVector::iterator ParticleIterator
vtkTemporalStreamTracerNamespace::ParticleVector LocalSeeds
vtkSmartPointer< vtkFloatArray > ParticleRotation
void SetInterpolatorPrototype(vtkAbstractInterpolatedVelocityField *ivf)
The object used to interpolate the velocity field during integration is of the same class as this pro...
vtkSmartPointer< vtkIntArray > ErrorCodeArray
int InitializeInterpolator()
bool RetryWithPush(vtkTemporalStreamTracerNamespace::ParticleInformation &info, double velocity[3], double delT)
and sent to the other processors for possible continuation.