VTK
Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes
vtkTemporalStreamTracer Class Reference

A Parallel Particle tracer for unsteady vector fields. More...

#include <vtkTemporalStreamTracer.h>

Inheritance diagram for vtkTemporalStreamTracer:
Inheritance graph
[legend]
Collaboration diagram for vtkTemporalStreamTracer:
Collaboration graph
[legend]

List of all members.

Classes

struct  bounds

Public Types

enum  Units { TERMINATION_TIME_UNIT, TERMINATION_STEP_UNIT }
typedef vtkStreamTracer Superclass

Public Member Functions

virtual int IsA (const char *type)
vtkTemporalStreamTracerNewInstance () const
void PrintSelf (ostream &os, vtkIndent indent)
virtual void SetTimeStep (unsigned int)
virtual unsigned int GetTimeStep ()
virtual void SetIgnorePipelineTime (int)
virtual int GetIgnorePipelineTime ()
virtual void IgnorePipelineTimeOn ()
virtual void IgnorePipelineTimeOff ()
virtual void SetTimeStepResolution (double)
virtual double GetTimeStepResolution ()
virtual void SetForceReinjectionEveryNSteps (int)
virtual int GetForceReinjectionEveryNSteps ()
virtual void SetTerminationTime (double)
virtual double GetTerminationTime ()
virtual void SetTerminationTimeUnit (int)
virtual int GetTerminationTimeUnit ()
void SetTerminationTimeUnitToTimeUnit ()
void SetTerminationTimeUnitToStepUnit ()
virtual void SetStaticSeeds (int)
virtual int GetStaticSeeds ()
virtual void StaticSeedsOn ()
virtual void StaticSeedsOff ()
virtual void SetStaticMesh (int)
virtual int GetStaticMesh ()
virtual void StaticMeshOn ()
virtual void StaticMeshOff ()
virtual void SetParticleWriter (vtkAbstractParticleWriter *pw)
virtual vtkAbstractParticleWriterGetParticleWriter ()
virtual void SetParticleFileName (const char *)
virtual char * GetParticleFileName ()
virtual void SetEnableParticleWriting (int)
virtual int GetEnableParticleWriting ()
virtual void EnableParticleWritingOn ()
virtual void EnableParticleWritingOff ()
void AddSourceConnection (vtkAlgorithmOutput *input)
void RemoveAllSources ()

Static Public Member Functions

static int IsTypeOf (const char *type)
static vtkTemporalStreamTracerSafeDownCast (vtkObjectBase *o)
static vtkTemporalStreamTracerNew ()

Protected Member Functions

virtual vtkObjectBaseNewInstanceInternal () const
 vtkTemporalStreamTracer ()
 ~vtkTemporalStreamTracer ()
virtual int FillInputPortInformation (int port, vtkInformation *info)
virtual int ProcessRequest (vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
virtual int RequestInformation (vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
virtual int RequestUpdateExtent (vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
virtual int RequestData (vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
virtual int ProcessInput (vtkInformationVector **inputVector)
virtual int GenerateOutput (vtkInformationVector **inputVector, vtkInformationVector *outputVector)
int InitializeInterpolator ()
int SetTemporalInput (vtkDataObject *td, int index)
bool SendParticleToAnotherProcess (vtkTemporalStreamTracerNamespace::ParticleInformation &info, double point1[4], double delT)
void AddParticleToMPISendList (vtkTemporalStreamTracerNamespace::ParticleInformation &info)
bool InsideBounds (double point[])
void TestParticles (vtkTemporalStreamTracerNamespace::ParticleVector &candidates, vtkTemporalStreamTracerNamespace::ParticleVector &passed, int &count)
virtual void AssignSeedsToProcessors (vtkDataSet *source, int sourceID, int ptId, vtkTemporalStreamTracerNamespace::ParticleVector &LocalSeedPoints, int &LocalAssignedCount)
virtual void AssignUniqueIds (vtkTemporalStreamTracerNamespace::ParticleVector &LocalSeedPoints)
void UpdateParticleList (vtkTemporalStreamTracerNamespace::ParticleVector &candidates)
virtual void TransmitReceiveParticles (vtkTemporalStreamTracerNamespace::ParticleVector &outofdomain, vtkTemporalStreamTracerNamespace::ParticleVector &received, bool removeself)
void IntegrateParticle (vtkTemporalStreamTracerNamespace::ParticleListIterator &it, double currenttime, double terminationtime, vtkInitialValueProblemSolver *integrator)
bool RetryWithPush (vtkTemporalStreamTracerNamespace::ParticleInformation &info, double velocity[3], double delT)
bool ComputeDomainExitLocation (double pos[4], double p2[4], double intersection[4], vtkGenericCell *cell)

Protected Attributes

int RequestIndex
int UpdatePiece
int UpdateNumPieces
int AllFixedGeometry
int StaticMesh
int StaticSeeds
unsigned int TimeStep
unsigned int ActualTimeStep
int IgnorePipelineTime
unsigned int NumberOfInputTimeSteps
std::vector< doubleInputTimeValues
std::vector< doubleOutputTimeValues
double EarliestTime
double CurrentTimeSteps [2]
double TimeStepResolution
double TerminationTime
int TerminationTimeUnit
int ForceReinjectionEveryNSteps
bool ReinjectionFlag
int ReinjectionCounter
vtkTimeStamp ParticleInjectionTime
vtkAbstractParticleWriterParticleWriter
char * ParticleFileName
int EnableParticleWriting
unsigned int NumberOfParticles
vtkTemporalStreamTracerNamespace::ParticleDataList ParticleHistories
vtkTemporalStreamTracerNamespace::ParticleVector LocalSeeds
vtkSmartPointer< vtkFloatArrayParticleAge
vtkSmartPointer< vtkIntArrayParticleIds
vtkSmartPointer< vtkCharArrayParticleSourceIds
vtkSmartPointer< vtkIntArrayInjectedPointIds
vtkSmartPointer< vtkIntArrayInjectedStepIds
vtkSmartPointer< vtkIntArrayErrorCode
vtkSmartPointer< vtkFloatArrayParticleVorticity
vtkSmartPointer< vtkFloatArrayParticleRotation
vtkSmartPointer< vtkFloatArrayParticleAngularVel
vtkSmartPointer< vtkDoubleArraycellVectors
vtkSmartPointer< vtkPointDataOutputPointData
int InterpolationCount
vtkSmartPointer< vtkCellArrayParticleCells
vtkSmartPointer< vtkPointsOutputCoordinates
vtkTemporalStreamTracerNamespace::ParticleVector MPISendList
vtkSmartPointer
< vtkTemporalInterpolatedVelocityField
Interpolator
vtkSmartPointer
< vtkMultiBlockDataSet
InputDataT [2]
vtkSmartPointer< vtkDataSetDataReferenceT [2]
std::vector< boundsCachedBounds [2]
vtkIdType UniqueIdCounter
vtkIdType UniqueIdCounterMPI
int substeps

Detailed Description

A Parallel Particle tracer for unsteady vector fields.

vtkTemporalStreamTracer is a filter that integrates a vector field to generate

See also:
vtkRibbonFilter vtkRuledSurfaceFilter vtkInitialValueProblemSolver vtkRungeKutta2 vtkRungeKutta4 vtkRungeKutta45 vtkStreamTracer

Definition at line 87 of file vtkTemporalStreamTracer.h.


Member Typedef Documentation

Reimplemented from vtkStreamTracer.

Reimplemented in vtkPTemporalStreamTracer.

Definition at line 91 of file vtkTemporalStreamTracer.h.


Member Enumeration Documentation

Enumerator:
TERMINATION_TIME_UNIT 
TERMINATION_STEP_UNIT 

Reimplemented from vtkStreamTracer.

Definition at line 136 of file vtkTemporalStreamTracer.h.


Constructor & Destructor Documentation


Member Function Documentation

static int vtkTemporalStreamTracer::IsTypeOf ( const char *  name) [static]

Return 1 if this class type is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeMacro found in vtkSetGet.h.

Reimplemented from vtkStreamTracer.

Reimplemented in vtkPTemporalStreamTracer.

virtual int vtkTemporalStreamTracer::IsA ( const char *  name) [virtual]

Return 1 if this class is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeMacro found in vtkSetGet.h.

Reimplemented from vtkStreamTracer.

Reimplemented in vtkPTemporalStreamTracer.

Reimplemented from vtkStreamTracer.

Reimplemented in vtkPTemporalStreamTracer.

virtual vtkObjectBase* vtkTemporalStreamTracer::NewInstanceInternal ( ) const [protected, virtual]

Reimplemented from vtkStreamTracer.

Reimplemented in vtkPTemporalStreamTracer.

Reimplemented from vtkStreamTracer.

Reimplemented in vtkPTemporalStreamTracer.

void vtkTemporalStreamTracer::PrintSelf ( ostream &  os,
vtkIndent  indent 
) [virtual]

Methods invoked by print to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.

Reimplemented from vtkStreamTracer.

Reimplemented in vtkPTemporalStreamTracer.

Construct object using 2nd order Runge Kutta

Reimplemented from vtkStreamTracer.

Reimplemented in vtkPTemporalStreamTracer.

virtual void vtkTemporalStreamTracer::SetTimeStep ( unsigned  int) [virtual]

Set/Get the TimeStep. This is the primary means of advancing the particles. The TimeStep should be animated and this will drive the pipeline forcing timesteps to be fetched from upstream.

virtual unsigned int vtkTemporalStreamTracer::GetTimeStep ( ) [virtual]

Set/Get the TimeStep. This is the primary means of advancing the particles. The TimeStep should be animated and this will drive the pipeline forcing timesteps to be fetched from upstream.

To get around problems with the Paraview Animation controls we can just animate the time step and ignore the TIME_ requests

To get around problems with the Paraview Animation controls we can just animate the time step and ignore the TIME_ requests

To get around problems with the Paraview Animation controls we can just animate the time step and ignore the TIME_ requests

To get around problems with the Paraview Animation controls we can just animate the time step and ignore the TIME_ requests

If the data source does not have the correct time values present on each time step - setting this value to non unity can be used to adjust the time step size from 1s pre step to 1x_TimeStepResolution : Not functional in this version. Broke it

Todo:
, put back time scaling

If the data source does not have the correct time values present on each time step - setting this value to non unity can be used to adjust the time step size from 1s pre step to 1x_TimeStepResolution : Not functional in this version. Broke it

Todo:
, put back time scaling

When animating particles, it is nice to inject new ones every Nth step to produce a continuous flow. Setting ForceReinjectionEveryNSteps to a non zero value will cause the particle source to reinject particles every Nth step even if it is otherwise unchanged. Note that if the particle source is also animated, this flag will be redundant as the particles will be reinjected whenever the source changes anyway

When animating particles, it is nice to inject new ones every Nth step to produce a continuous flow. Setting ForceReinjectionEveryNSteps to a non zero value will cause the particle source to reinject particles every Nth step even if it is otherwise unchanged. Note that if the particle source is also animated, this flag will be redundant as the particles will be reinjected whenever the source changes anyway

Setting TerminationTime to a positive value will cause particles to terminate when the time is reached. Use a vlue of zero to diable termination. The units of time should be consistent with the primary time variable.

Setting TerminationTime to a positive value will cause particles to terminate when the time is reached. Use a vlue of zero to diable termination. The units of time should be consistent with the primary time variable.

The units of TerminationTime may be actual 'Time' units as described by the data, or just TimeSteps of iteration.

The units of TerminationTime may be actual 'Time' units as described by the data, or just TimeSteps of iteration.

The units of TerminationTime may be actual 'Time' units as described by the data, or just TimeSteps of iteration.

Definition at line 157 of file vtkTemporalStreamTracer.h.

The units of TerminationTime may be actual 'Time' units as described by the data, or just TimeSteps of iteration.

Definition at line 159 of file vtkTemporalStreamTracer.h.

virtual void vtkTemporalStreamTracer::SetStaticSeeds ( int  ) [virtual]

if StaticSeeds is set and the mesh is static, then every time particles are injected we can re-use the same injection information. We classify particles according to processor just once before start. If StaticSeeds is set and a moving seed source is specified the motion will be ignored and results will not be as expected.

if StaticSeeds is set and the mesh is static, then every time particles are injected we can re-use the same injection information. We classify particles according to processor just once before start. If StaticSeeds is set and a moving seed source is specified the motion will be ignored and results will not be as expected.

virtual void vtkTemporalStreamTracer::StaticSeedsOn ( ) [virtual]

if StaticSeeds is set and the mesh is static, then every time particles are injected we can re-use the same injection information. We classify particles according to processor just once before start. If StaticSeeds is set and a moving seed source is specified the motion will be ignored and results will not be as expected.

virtual void vtkTemporalStreamTracer::StaticSeedsOff ( ) [virtual]

if StaticSeeds is set and the mesh is static, then every time particles are injected we can re-use the same injection information. We classify particles according to processor just once before start. If StaticSeeds is set and a moving seed source is specified the motion will be ignored and results will not be as expected.

virtual void vtkTemporalStreamTracer::SetStaticMesh ( int  ) [virtual]

if StaticMesh is set, many optimizations for cell caching can be assumed. if StaticMesh is not set, the algorithm will attempt to find out if optimizations can be used, but setting it to true will force all optimizations. Do not Set StaticMesh to true if a dynamic mesh is being used as this will invalidate all results.

if StaticMesh is set, many optimizations for cell caching can be assumed. if StaticMesh is not set, the algorithm will attempt to find out if optimizations can be used, but setting it to true will force all optimizations. Do not Set StaticMesh to true if a dynamic mesh is being used as this will invalidate all results.

virtual void vtkTemporalStreamTracer::StaticMeshOn ( ) [virtual]

if StaticMesh is set, many optimizations for cell caching can be assumed. if StaticMesh is not set, the algorithm will attempt to find out if optimizations can be used, but setting it to true will force all optimizations. Do not Set StaticMesh to true if a dynamic mesh is being used as this will invalidate all results.

virtual void vtkTemporalStreamTracer::StaticMeshOff ( ) [virtual]

if StaticMesh is set, many optimizations for cell caching can be assumed. if StaticMesh is not set, the algorithm will attempt to find out if optimizations can be used, but setting it to true will force all optimizations. Do not Set StaticMesh to true if a dynamic mesh is being used as this will invalidate all results.

Set/Get the Writer associated with this Particle Tracer Ideally a parallel IO capable vtkH5PartWriter should be used which will collect particles from all parallel processes and write them to a single HDF5 file.

Set/Get the Writer associated with this Particle Tracer Ideally a parallel IO capable vtkH5PartWriter should be used which will collect particles from all parallel processes and write them to a single HDF5 file.

virtual void vtkTemporalStreamTracer::SetParticleFileName ( const char *  ) [virtual]

Set/Get the filename to be used with the particle writer when dumping particles to disk

virtual char* vtkTemporalStreamTracer::GetParticleFileName ( ) [virtual]

Set/Get the filename to be used with the particle writer when dumping particles to disk

Set/Get the filename to be used with the particle writer when dumping particles to disk

Set/Get the filename to be used with the particle writer when dumping particles to disk

Set/Get the filename to be used with the particle writer when dumping particles to disk

Set/Get the filename to be used with the particle writer when dumping particles to disk

Provide support for multiple see sources

Provide support for multiple see sources

virtual int vtkTemporalStreamTracer::FillInputPortInformation ( int  port,
vtkInformation info 
) [protected, virtual]

Fill the input port information objects for this algorithm. This is invoked by the first call to GetInputPortInformation for each port so subclasses can specify what they can handle.

Reimplemented from vtkStreamTracer.

see vtkAlgorithm for details

Reimplemented from vtkPolyDataAlgorithm.

virtual int vtkTemporalStreamTracer::RequestInformation ( vtkInformation request,
vtkInformationVector **  inputVector,
vtkInformationVector outputVector 
) [protected, virtual]

Reimplemented from vtkPolyDataAlgorithm.

This is called by the superclass. This is the method you should override.

Reimplemented from vtkPolyDataAlgorithm.

virtual int vtkTemporalStreamTracer::RequestData ( vtkInformation request,
vtkInformationVector **  inputVector,
vtkInformationVector outputVector 
) [protected, virtual]

This is called by the superclass. This is the method you should override.

Reimplemented from vtkStreamTracer.

Reimplemented in vtkPTemporalStreamTracer.

virtual int vtkTemporalStreamTracer::ProcessInput ( vtkInformationVector **  inputVector) [protected, virtual]
virtual int vtkTemporalStreamTracer::GenerateOutput ( vtkInformationVector **  inputVector,
vtkInformationVector outputVector 
) [protected, virtual]

inside our data. Add good ones to passed list and set count to the number that passed

virtual void vtkTemporalStreamTracer::AssignSeedsToProcessors ( vtkDataSet source,
int  sourceID,
int  ptId,
vtkTemporalStreamTracerNamespace::ParticleVector LocalSeedPoints,
int LocalAssignedCount 
) [protected, virtual]

all the injection/seed points according to which processor they belong to. This saves us retesting at every injection time providing 1) The volumes are static, 2) the seed points are static If either are non static, then this step is skipped.

Reimplemented in vtkPTemporalStreamTracer.

virtual void vtkTemporalStreamTracer::AssignUniqueIds ( vtkTemporalStreamTracerNamespace::ParticleVector LocalSeedPoints) [protected, virtual]

give each one a uniqu ID. We need to use MPI to find out who is using which numbers.

Reimplemented in vtkPTemporalStreamTracer.

and sending between processors, into a list, which is used as the master list on this processor

this is used during classification of seed points and also between iterations of the main loop as particles leave each processor domain

Reimplemented in vtkPTemporalStreamTracer.

particle between the two times supplied.

and sent to the other processors for possible continuation. These routines manage the collection and sending after each main iteration. RetryWithPush adds a small pusj to aparticle along it's current velocity vector, this helps get over cracks in dynamic/rotating meshes

Reimplemented in vtkPTemporalStreamTracer.

bool vtkTemporalStreamTracer::ComputeDomainExitLocation ( double  pos[4],
double  p2[4],
double  intersection[4],
vtkGenericCell cell 
) [protected]

In dnamic meshes, particles might leave the domain and need to be extrapolated across a gap between the meshes before they re-renter another domain dodgy rotating meshes need special care....

bool vtkTemporalStreamTracer::InsideBounds ( double  point[]) [protected]

Member Data Documentation

Definition at line 357 of file vtkTemporalStreamTracer.h.

Definition at line 360 of file vtkTemporalStreamTracer.h.

Definition at line 361 of file vtkTemporalStreamTracer.h.

Definition at line 364 of file vtkTemporalStreamTracer.h.

Definition at line 365 of file vtkTemporalStreamTracer.h.

Definition at line 366 of file vtkTemporalStreamTracer.h.

unsigned int vtkTemporalStreamTracer::TimeStep [protected]

Definition at line 369 of file vtkTemporalStreamTracer.h.

Definition at line 370 of file vtkTemporalStreamTracer.h.

Definition at line 371 of file vtkTemporalStreamTracer.h.

Definition at line 372 of file vtkTemporalStreamTracer.h.

Definition at line 374 of file vtkTemporalStreamTracer.h.

Definition at line 375 of file vtkTemporalStreamTracer.h.

Definition at line 379 of file vtkTemporalStreamTracer.h.

Definition at line 380 of file vtkTemporalStreamTracer.h.

Definition at line 381 of file vtkTemporalStreamTracer.h.

Definition at line 384 of file vtkTemporalStreamTracer.h.

Definition at line 385 of file vtkTemporalStreamTracer.h.

Definition at line 388 of file vtkTemporalStreamTracer.h.

Definition at line 389 of file vtkTemporalStreamTracer.h.

Definition at line 390 of file vtkTemporalStreamTracer.h.

Definition at line 391 of file vtkTemporalStreamTracer.h.

Definition at line 394 of file vtkTemporalStreamTracer.h.

Definition at line 395 of file vtkTemporalStreamTracer.h.

Definition at line 396 of file vtkTemporalStreamTracer.h.

Definition at line 400 of file vtkTemporalStreamTracer.h.

Definition at line 401 of file vtkTemporalStreamTracer.h.

Definition at line 402 of file vtkTemporalStreamTracer.h.

Definition at line 409 of file vtkTemporalStreamTracer.h.

Definition at line 410 of file vtkTemporalStreamTracer.h.

Definition at line 411 of file vtkTemporalStreamTracer.h.

Definition at line 412 of file vtkTemporalStreamTracer.h.

Definition at line 413 of file vtkTemporalStreamTracer.h.

The error code contains a possible error that occurred while reading or writing the file.

Reimplemented from vtkAlgorithm.

Definition at line 414 of file vtkTemporalStreamTracer.h.

Definition at line 415 of file vtkTemporalStreamTracer.h.

Definition at line 416 of file vtkTemporalStreamTracer.h.

Definition at line 417 of file vtkTemporalStreamTracer.h.

Definition at line 418 of file vtkTemporalStreamTracer.h.

Definition at line 419 of file vtkTemporalStreamTracer.h.

Definition at line 420 of file vtkTemporalStreamTracer.h.

Definition at line 423 of file vtkTemporalStreamTracer.h.

Definition at line 424 of file vtkTemporalStreamTracer.h.

Definition at line 427 of file vtkTemporalStreamTracer.h.

Definition at line 430 of file vtkTemporalStreamTracer.h.

Definition at line 433 of file vtkTemporalStreamTracer.h.

Definition at line 434 of file vtkTemporalStreamTracer.h.

std::vector<bounds> vtkTemporalStreamTracer::CachedBounds[2] [protected]

Definition at line 440 of file vtkTemporalStreamTracer.h.

Definition at line 448 of file vtkTemporalStreamTracer.h.

Definition at line 449 of file vtkTemporalStreamTracer.h.

Definition at line 451 of file vtkTemporalStreamTracer.h.


The documentation for this class was generated from the following file: