VTK
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Friends
vtkParticleTracerBase Class Reference

A particle tracer for vector fields. More...

#include <vtkParticleTracerBase.h>

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

List of all members.

Public Types

enum  Solvers {
  RUNGE_KUTTA2, RUNGE_KUTTA4, RUNGE_KUTTA45, NONE,
  UNKNOWN
}
typedef vtkPolyDataAlgorithm Superclass

Public Member Functions

virtual int IsA (const char *type)
vtkParticleTracerBaseNewInstance () const
void PrintSelf (ostream &os, vtkIndent indent)
void PrintParticleHistories ()
void SetIntegrator (vtkInitialValueProblemSolver *)
virtual
vtkInitialValueProblemSolver
GetIntegrator ()
void SetIntegratorType (int type)
int GetIntegratorType ()
virtual bool GetComputeVorticity ()
void SetComputeVorticity (bool)
virtual double GetTerminalSpeed ()
void SetTerminalSpeed (double)
void SetRotationScale (double)
virtual double GetRotationScale ()
virtual void SetIgnorePipelineTime (int)
virtual int GetIgnorePipelineTime ()
virtual void IgnorePipelineTimeOn ()
virtual void IgnorePipelineTimeOff ()
void SetForceReinjectionEveryNSteps (int)
virtual int GetForceReinjectionEveryNSteps ()
void SetTerminationTime (double t)
virtual double GetTerminationTime ()
void SetStartTime (double t)
virtual double GetStartTime ()
virtual int GetStaticSeeds ()
virtual int GetStaticMesh ()
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 ()
virtual void SetDisableResetCache (int)
virtual int GetDisableResetCache ()
virtual void DisableResetCacheOn ()
virtual void DisableResetCacheOff ()
void AddSourceConnection (vtkAlgorithmOutput *input)
void RemoveAllSources ()

Static Public Member Functions

static int IsTypeOf (const char *type)
static vtkParticleTracerBaseSafeDownCast (vtkObjectBase *o)

Protected Member Functions

virtual vtkObjectBaseNewInstanceInternal () const
 vtkParticleTracerBase ()
virtual ~vtkParticleTracerBase ()
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 vtkPolyDataExecute (vtkInformationVector **inputVector)
virtual void Initialize ()
virtual int OutputParticles (vtkPolyData *poly)=0
virtual void Finalize ()
int InitializeInterpolator ()
int UpdateDataCache (vtkDataObject *td)
void TestParticles (vtkParticleTracerBaseNamespace::ParticleVector &candidates, std::vector< int > &passed)
virtual void UpdateParticleListFromOtherProcesses ()
virtual bool SendParticleToAnotherProcess (vtkParticleTracerBaseNamespace::ParticleInformation &, vtkParticleTracerBaseNamespace::ParticleInformation &, vtkPointData *)
void CreateProtoPD (vtkDataObject *input)
vtkFloatArrayGetParticleAge (vtkPointData *)
vtkIntArrayGetParticleIds (vtkPointData *)
vtkCharArrayGetParticleSourceIds (vtkPointData *)
vtkIntArrayGetInjectedPointIds (vtkPointData *)
vtkIntArrayGetInjectedStepIds (vtkPointData *)
vtkIntArrayGetErrorCodeArr (vtkPointData *)
vtkFloatArrayGetParticleVorticity (vtkPointData *)
vtkFloatArrayGetParticleRotation (vtkPointData *)
vtkFloatArrayGetParticleAngularVel (vtkPointData *)
bool InsideBounds (double point[])
void CalculateVorticity (vtkGenericCell *cell, double pcoords[3], vtkDoubleArray *cellVectors, double vorticity[3])
double GetCacheDataTime (int i)
double GetCacheDataTime ()
virtual void ResetCache ()
void AddParticle (vtkParticleTracerBaseNamespace::ParticleInformation &info, double *velocity)
void TestParticles (vtkParticleTracerBaseNamespace::ParticleVector &candidates, vtkParticleTracerBaseNamespace::ParticleVector &passed, int &count)
virtual void AssignSeedsToProcessors (double time, vtkDataSet *source, int sourceID, int ptId, vtkParticleTracerBaseNamespace::ParticleVector &LocalSeedPoints, int &LocalAssignedCount)
virtual void AssignUniqueIds (vtkParticleTracerBaseNamespace::ParticleVector &LocalSeedPoints)
void UpdateParticleList (vtkParticleTracerBaseNamespace::ParticleVector &candidates)
void IntegrateParticle (vtkParticleTracerBaseNamespace::ParticleListIterator &it, double currenttime, double terminationtime, vtkInitialValueProblemSolver *integrator)
bool ComputeDomainExitLocation (double pos[4], double p2[4], double intersection[4], vtkGenericCell *cell)
virtual bool IsPointDataValid (vtkDataObject *input)
bool IsPointDataValid (vtkCompositeDataSet *input, std::vector< std::string > &arrayNames)
void GetPointDataArrayNames (vtkDataSet *input, std::vector< std::string > &names)

Protected Attributes

vtkSmartPointer< vtkPolyDataOutput
vtkSmartPointer< vtkPointDataProtoPD
vtkIdType UniqueIdCounter
vtkParticleTracerBaseNamespace::ParticleDataList ParticleHistories
vtkSmartPointer< vtkPointDataParticlePointData
int ReinjectionCounter
int IgnorePipelineTime
int DisableResetCache

Friends

class ParticlePathFilterInternal
class StreaklineFilterInternal

Detailed Description

A particle tracer for vector fields.

A parallel particle tracer for vector fields.

vtkParticleTracerBase is the base class for filters that advect particles in a vector field. Note that the input vtkPointData structure must be identical on all datasets.

See also:
vtkRibbonFilter vtkRuledSurfaceFilter vtkInitialValueProblemSolver vtkRungeKutta2 vtkRungeKutta4 vtkRungeKutta45 vtkStreamTracer

vtkPParticleTracerBase is the base class for parallel filters that advect particles in a vector field. Note that the input vtkPointData structure must be identical on all datasets.

See also:
vtkRibbonFilter vtkRuledSurfaceFilter vtkInitialValueProblemSolver vtkRungeKutta2 vtkRungeKutta4 vtkRungeKutta45 vtkStreamTracer

Definition at line 92 of file vtkParticleTracerBase.h.


Member Typedef Documentation


Member Enumeration Documentation

Enumerator:
RUNGE_KUTTA2 
RUNGE_KUTTA4 
RUNGE_KUTTA45 
NONE 
UNKNOWN 

Definition at line 95 of file vtkParticleTracerBase.h.


Constructor & Destructor Documentation

virtual vtkParticleTracerBase::~vtkParticleTracerBase ( ) [protected, virtual]

Member Function Documentation

static int vtkParticleTracerBase::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 vtkPolyDataAlgorithm.

Reimplemented in vtkParticlePathFilter, vtkStreaklineFilter, vtkPParticleTracerBase, vtkPParticleTracer, vtkPStreaklineFilter, vtkParticleTracer, and vtkPParticlePathFilter.

virtual int vtkParticleTracerBase::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 vtkPolyDataAlgorithm.

Reimplemented in vtkParticlePathFilter, vtkStreaklineFilter, vtkPParticleTracerBase, vtkPParticleTracer, vtkPStreaklineFilter, vtkParticleTracer, and vtkPParticlePathFilter.

virtual vtkObjectBase* vtkParticleTracerBase::NewInstanceInternal ( ) const [protected, virtual]
void vtkParticleTracerBase::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 vtkPolyDataAlgorithm.

Reimplemented in vtkParticlePathFilter, vtkStreaklineFilter, vtkPParticleTracerBase, vtkPParticleTracer, vtkPStreaklineFilter, vtkParticleTracer, and vtkPParticlePathFilter.

virtual bool vtkParticleTracerBase::GetComputeVorticity ( ) [virtual]

Turn on/off vorticity computation at streamline points (necessary for generating proper stream-ribbons using the vtkRibbonFilter.

Turn on/off vorticity computation at streamline points (necessary for generating proper stream-ribbons using the vtkRibbonFilter.

Specify the terminal speed value, below which integration is terminated.

Specify the terminal speed value, below which integration is terminated.

This can be used to scale the rate with which the streamribbons twist. The default is 1.

This can be used to scale the rate with which the streamribbons twist. The default is 1.

virtual void vtkParticleTracerBase::SetIgnorePipelineTime ( int  ) [virtual]

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

virtual void vtkParticleTracerBase::IgnorePipelineTimeOn ( ) [virtual]

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

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.

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.

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. vtkSetMacro(StaticSeeds,int);

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. vtkSetMacro(StaticMesh,int);

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 vtkParticleTracerBase::SetParticleFileName ( const char *  ) [virtual]

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

virtual char* vtkParticleTracerBase::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

virtual void vtkParticleTracerBase::SetDisableResetCache ( int  ) [virtual]

Set/Get the flag to disable cache This is off by default and turned on in special circumstances such as in a coprocessing workflow

Set/Get the flag to disable cache This is off by default and turned on in special circumstances such as in a coprocessing workflow

virtual void vtkParticleTracerBase::DisableResetCacheOn ( ) [virtual]

Set/Get the flag to disable cache This is off by default and turned on in special circumstances such as in a coprocessing workflow

virtual void vtkParticleTracerBase::DisableResetCacheOff ( ) [virtual]

Set/Get the flag to disable cache This is off by default and turned on in special circumstances such as in a coprocessing workflow

Provide support for multiple see sources

Provide support for multiple see sources

virtual int vtkParticleTracerBase::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 vtkPolyDataAlgorithm.

see vtkAlgorithm for details

Reimplemented from vtkPolyDataAlgorithm.

virtual int vtkParticleTracerBase::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.

Reimplemented in vtkPParticleTracerBase.

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

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

Reimplemented from vtkPolyDataAlgorithm.

Reimplemented in vtkPParticleTracerBase.

virtual int vtkParticleTracerBase::ProcessInput ( vtkInformationVector **  inputVector) [protected, virtual]
virtual vtkPolyData* vtkParticleTracerBase::Execute ( vtkInformationVector **  inputVector) [protected, virtual]

Reimplemented in vtkPParticleTracerBase.

virtual void vtkParticleTracerBase::Initialize ( ) [inline, protected, virtual]

Definition at line 298 of file vtkParticleTracerBase.h.

virtual int vtkParticleTracerBase::OutputParticles ( vtkPolyData poly) [protected, pure virtual]
virtual void vtkParticleTracerBase::Finalize ( ) [inline, protected, virtual]

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

void vtkParticleTracerBase::TestParticles ( vtkParticleTracerBaseNamespace::ParticleVector candidates,
std::vector< int > &  passed 
) [protected]
virtual void vtkParticleTracerBase::AssignSeedsToProcessors ( double  time,
vtkDataSet source,
int  sourceID,
int  ptId,
vtkParticleTracerBaseNamespace::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 vtkPParticleTracerBase.

virtual void vtkParticleTracerBase::AssignUniqueIds ( vtkParticleTracerBaseNamespace::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 vtkPParticleTracerBase.

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

virtual void vtkParticleTracerBase::UpdateParticleListFromOtherProcesses ( ) [inline, protected, virtual]

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

Reimplemented in vtkPParticleTracerBase.

Definition at line 348 of file vtkParticleTracerBase.h.

particle between the two times supplied.

Reimplemented in vtkPParticleTracerBase.

Definition at line 360 of file vtkParticleTracerBase.h.

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

This is an old routine kept for possible future use. In dynamic 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....

void vtkParticleTracerBase::CreateProtoPD ( vtkDataObject input) [protected]
bool vtkParticleTracerBase::InsideBounds ( double  point[]) [protected]
void vtkParticleTracerBase::CalculateVorticity ( vtkGenericCell cell,
double  pcoords[3],
vtkDoubleArray cellVectors,
double  vorticity[3] 
) [protected]
virtual void vtkParticleTracerBase::ResetCache ( ) [protected, virtual]
virtual bool vtkParticleTracerBase::IsPointDataValid ( vtkDataObject input) [protected, virtual]

Methods that check that the input arrays are ordered the same on all data sets. This needs to be true for all blocks in a composite data set as well as across all processes.

Reimplemented in vtkPParticleTracerBase.

bool vtkParticleTracerBase::IsPointDataValid ( vtkCompositeDataSet input,
std::vector< std::string > &  arrayNames 
) [protected]

Methods that check that the input arrays are ordered the same on all data sets. This needs to be true for all blocks in a composite data set as well as across all processes.

void vtkParticleTracerBase::GetPointDataArrayNames ( vtkDataSet input,
std::vector< std::string > &  names 
) [protected]

Methods that check that the input arrays are ordered the same on all data sets. This needs to be true for all blocks in a composite data set as well as across all processes.


Friends And Related Function Documentation

friend class ParticlePathFilterInternal [friend]

Definition at line 507 of file vtkParticleTracerBase.h.

friend class StreaklineFilterInternal [friend]

Definition at line 508 of file vtkParticleTracerBase.h.


Member Data Documentation

Definition at line 234 of file vtkParticleTracerBase.h.

Definition at line 235 of file vtkParticleTracerBase.h.

Definition at line 236 of file vtkParticleTracerBase.h.

Definition at line 237 of file vtkParticleTracerBase.h.

Definition at line 238 of file vtkParticleTracerBase.h.

Definition at line 240 of file vtkParticleTracerBase.h.

Definition at line 243 of file vtkParticleTracerBase.h.

Definition at line 244 of file vtkParticleTracerBase.h.


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