VTK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
vtkParticleTracerBase Class Referenceabstract

A particle tracer for vector fields. More...

#include <vtkParticleTracerBase.h>

Inheritance diagram for vtkParticleTracerBase:
[legend]

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 vtkAbstractParticleWriter * GetParticleWriter ()
 
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 vtkObjectBase * NewInstanceInternal () 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 vtkPolyData * Execute (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)
 
vtkFloatArray * GetParticleAge (vtkPointData *)
 
vtkIntArray * GetParticleIds (vtkPointData *)
 
vtkCharArray * GetParticleSourceIds (vtkPointData *)
 
vtkIntArray * GetInjectedPointIds (vtkPointData *)
 
vtkIntArray * GetInjectedStepIds (vtkPointData *)
 
vtkIntArray * GetErrorCodeArr (vtkPointData *)
 
vtkFloatArray * GetParticleVorticity (vtkPointData *)
 
vtkFloatArray * GetParticleRotation (vtkPointData *)
 
vtkFloatArray * GetParticleAngularVel (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< vtkPolyData > Output
 
vtkSmartPointer< vtkPointData > ProtoPD
 
vtkIdType UniqueIdCounter
 
vtkParticleTracerBaseNamespace::ParticleDataList ParticleHistories
 
vtkSmartPointer< vtkPointData > ParticlePointData
 
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

typedef vtkPolyDataAlgorithm vtkParticleTracerBase::Superclass

Definition at line 104 of file vtkParticleTracerBase.h.

Member Enumeration Documentation

Enumerator
RUNGE_KUTTA2 
RUNGE_KUTTA4 
RUNGE_KUTTA45 
NONE 
UNKNOWN 

Definition at line 95 of file vtkParticleTracerBase.h.

Constructor & Destructor Documentation

vtkParticleTracerBase::vtkParticleTracerBase ( )
protected
virtual vtkParticleTracerBase::~vtkParticleTracerBase ( )
protectedvirtual

Member Function Documentation

static int vtkParticleTracerBase::IsTypeOf ( const char *  type)
static
virtual int vtkParticleTracerBase::IsA ( const char *  type)
virtual
static vtkParticleTracerBase* vtkParticleTracerBase::SafeDownCast ( vtkObjectBase *  o)
static
virtual vtkObjectBase* vtkParticleTracerBase::NewInstanceInternal ( ) const
protectedvirtual
vtkParticleTracerBase* vtkParticleTracerBase::NewInstance ( ) const
void vtkParticleTracerBase::PrintSelf ( ostream &  os,
vtkIndent  indent 
)
void vtkParticleTracerBase::PrintParticleHistories ( )
virtual bool vtkParticleTracerBase::GetComputeVorticity ( )
virtual

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

void vtkParticleTracerBase::SetComputeVorticity ( bool  )

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

virtual double vtkParticleTracerBase::GetTerminalSpeed ( )
virtual

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

void vtkParticleTracerBase::SetTerminalSpeed ( double  )

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

void vtkParticleTracerBase::SetRotationScale ( double  )

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

virtual double vtkParticleTracerBase::GetRotationScale ( )
virtual

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

virtual int vtkParticleTracerBase::GetIgnorePipelineTime ( )
virtual

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

virtual void vtkParticleTracerBase::IgnorePipelineTimeOff ( )
virtual

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

void vtkParticleTracerBase::SetForceReinjectionEveryNSteps ( int  )

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

virtual int vtkParticleTracerBase::GetForceReinjectionEveryNSteps ( )
virtual

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

void vtkParticleTracerBase::SetTerminationTime ( double  t)

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.

virtual double vtkParticleTracerBase::GetTerminationTime ( )
virtual

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.

void vtkParticleTracerBase::SetIntegrator ( vtkInitialValueProblemSolver *  )
virtual vtkInitialValueProblemSolver* vtkParticleTracerBase::GetIntegrator ( )
virtual
void vtkParticleTracerBase::SetIntegratorType ( int  type)
int vtkParticleTracerBase::GetIntegratorType ( )
void vtkParticleTracerBase::SetStartTime ( double  t)

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.

virtual double vtkParticleTracerBase::GetStartTime ( )
virtual

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.

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

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

virtual void vtkParticleTracerBase::SetParticleWriter ( vtkAbstractParticleWriter *  pw)
virtual

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 vtkAbstractParticleWriter* vtkParticleTracerBase::GetParticleWriter ( )
virtual

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

virtual void vtkParticleTracerBase::SetEnableParticleWriting ( int  )
virtual

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

virtual int vtkParticleTracerBase::GetEnableParticleWriting ( )
virtual

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

virtual void vtkParticleTracerBase::EnableParticleWritingOn ( )
virtual

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

virtual void vtkParticleTracerBase::EnableParticleWritingOff ( )
virtual

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

virtual int vtkParticleTracerBase::GetDisableResetCache ( )
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::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

void vtkParticleTracerBase::AddSourceConnection ( vtkAlgorithmOutput *  input)

Provide support for multiple see sources

void vtkParticleTracerBase::RemoveAllSources ( )

Provide support for multiple see sources

virtual int vtkParticleTracerBase::FillInputPortInformation ( int  port,
vtkInformation *  info 
)
protectedvirtual
virtual int vtkParticleTracerBase::ProcessRequest ( vtkInformation *  request,
vtkInformationVector **  inputVector,
vtkInformationVector *  outputVector 
)
protectedvirtual
virtual int vtkParticleTracerBase::RequestInformation ( vtkInformation *  request,
vtkInformationVector **  inputVector,
vtkInformationVector *  outputVector 
)
protectedvirtual
virtual int vtkParticleTracerBase::RequestUpdateExtent ( vtkInformation *  request,
vtkInformationVector **  inputVector,
vtkInformationVector *  outputVector 
)
protectedvirtual

Reimplemented in vtkPParticleTracerBase.

virtual int vtkParticleTracerBase::RequestData ( vtkInformation *  request,
vtkInformationVector **  inputVector,
vtkInformationVector *  outputVector 
)
protectedvirtual

Reimplemented in vtkPParticleTracerBase.

virtual int vtkParticleTracerBase::ProcessInput ( vtkInformationVector **  inputVector)
protectedvirtual
virtual vtkPolyData* vtkParticleTracerBase::Execute ( vtkInformationVector **  inputVector)
protectedvirtual

Reimplemented in vtkPParticleTracerBase.

virtual void vtkParticleTracerBase::Initialize ( )
inlineprotectedvirtual

Definition at line 298 of file vtkParticleTracerBase.h.

virtual int vtkParticleTracerBase::OutputParticles ( vtkPolyData *  poly)
protectedpure virtual
virtual void vtkParticleTracerBase::Finalize ( )
inlineprotectedvirtual
int vtkParticleTracerBase::InitializeInterpolator ( )
protected
int vtkParticleTracerBase::UpdateDataCache ( vtkDataObject *  td)
protected
void vtkParticleTracerBase::TestParticles ( vtkParticleTracerBaseNamespace::ParticleVector candidates,
vtkParticleTracerBaseNamespace::ParticleVector passed,
int &  count 
)
protected

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 
)
protectedvirtual

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)
protectedvirtual

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

Reimplemented in vtkPParticleTracerBase.

void vtkParticleTracerBase::UpdateParticleList ( vtkParticleTracerBaseNamespace::ParticleVector candidates)
protected

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

virtual void vtkParticleTracerBase::UpdateParticleListFromOtherProcesses ( )
inlineprotectedvirtual

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.

void vtkParticleTracerBase::IntegrateParticle ( vtkParticleTracerBaseNamespace::ParticleListIterator it,
double  currenttime,
double  terminationtime,
vtkInitialValueProblemSolver *  integrator 
)
protected

particle between the two times supplied.

virtual bool vtkParticleTracerBase::SendParticleToAnotherProcess ( vtkParticleTracerBaseNamespace::ParticleInformation ,
vtkParticleTracerBaseNamespace::ParticleInformation ,
vtkPointData *   
)
inlineprotectedvirtual

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
vtkFloatArray* vtkParticleTracerBase::GetParticleAge ( vtkPointData *  )
protected
vtkIntArray* vtkParticleTracerBase::GetParticleIds ( vtkPointData *  )
protected
vtkCharArray* vtkParticleTracerBase::GetParticleSourceIds ( vtkPointData *  )
protected
vtkIntArray* vtkParticleTracerBase::GetInjectedPointIds ( vtkPointData *  )
protected
vtkIntArray* vtkParticleTracerBase::GetInjectedStepIds ( vtkPointData *  )
protected
vtkIntArray* vtkParticleTracerBase::GetErrorCodeArr ( vtkPointData *  )
protected
vtkFloatArray* vtkParticleTracerBase::GetParticleVorticity ( vtkPointData *  )
protected
vtkFloatArray* vtkParticleTracerBase::GetParticleRotation ( vtkPointData *  )
protected
vtkFloatArray* vtkParticleTracerBase::GetParticleAngularVel ( vtkPointData *  )
protected
bool vtkParticleTracerBase::InsideBounds ( double  point[])
protected
void vtkParticleTracerBase::CalculateVorticity ( vtkGenericCell *  cell,
double  pcoords[3],
vtkDoubleArray *  cellVectors,
double  vorticity[3] 
)
protected
double vtkParticleTracerBase::GetCacheDataTime ( int  i)
protected
double vtkParticleTracerBase::GetCacheDataTime ( )
protected
virtual void vtkParticleTracerBase::ResetCache ( )
protectedvirtual
void vtkParticleTracerBase::AddParticle ( vtkParticleTracerBaseNamespace::ParticleInformation info,
double *  velocity 
)
protected
virtual bool vtkParticleTracerBase::IsPointDataValid ( vtkDataObject *  input)
protectedvirtual

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

vtkSmartPointer<vtkPolyData> vtkParticleTracerBase::Output
protected

Definition at line 234 of file vtkParticleTracerBase.h.

vtkSmartPointer<vtkPointData> vtkParticleTracerBase::ProtoPD
protected

Definition at line 235 of file vtkParticleTracerBase.h.

vtkIdType vtkParticleTracerBase::UniqueIdCounter
protected

Definition at line 236 of file vtkParticleTracerBase.h.

vtkParticleTracerBaseNamespace::ParticleDataList vtkParticleTracerBase::ParticleHistories
protected

Definition at line 237 of file vtkParticleTracerBase.h.

vtkSmartPointer<vtkPointData> vtkParticleTracerBase::ParticlePointData
protected

Definition at line 238 of file vtkParticleTracerBase.h.

int vtkParticleTracerBase::ReinjectionCounter
protected

Definition at line 240 of file vtkParticleTracerBase.h.

int vtkParticleTracerBase::IgnorePipelineTime
protected

Definition at line 243 of file vtkParticleTracerBase.h.

int vtkParticleTracerBase::DisableResetCache
protected

Definition at line 244 of file vtkParticleTracerBase.h.


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