20#ifndef vtkLagrangianParticle_h 
   21#define vtkLagrangianParticle_h 
   23#include "vtkFiltersFlowPathsModule.h"  
   29VTK_ABI_NAMESPACE_BEGIN
 
   61    PARTICLE_TERMINATION_NOT_TERMINATED = 0,
 
   69    PARTICLE_TERMINATION_ABORTED
 
   70  } ParticleTermination;
 
   85    SURFACE_INTERACTION_NO_INTERACTION = 0,
 
   90    SURFACE_INTERACTION_OTHER
 
  104    int numberOfTrackedUserData);
 
  113    double previousIntegrationTime = 0);
 
  288    this->ThreadedData = threadedData;
 
an abstract base class for locators which find cells
 
Class to perform non planar quad intersection.
 
abstract class to specify dataset behavior
 
provides thread-safe access to cells
 
list of point or cell ids
 
a simple class to control print indentation
 
Basis class for Lagrangian particles.
 
vtkLagrangianParticle * NewParticle(vtkIdType particleId)
method to create a particle from a parent particle.
 
vtkDataSet * LastSurfaceDataSet
 
std::vector< double > TrackedUserData
 
vtkLagrangianParticle * CloneParticle()
method to create an exact clone of a particle.
 
double * GetUserVariables()
Get a pointer to the user variables.
 
std::vector< double > PrevTrackedUserData
 
virtual double GetPrevIntegrationTime()
Get the integration time at previous position.
 
virtual vtkPointData * GetSeedData()
Get the particle seed data, for reading only.
 
virtual void MoveToNextPosition()
Move the particle to its next position by putting next equation variable to equation variable and cle...
 
double * GetNextVelocity()
Get a pointer to the next particle velocity.
 
virtual int GetUserFlag()
Set/Get user flag.
 
virtual int GetNumberOfVariables()
Get the number of variables used to initialize EquationVariables.
 
vtkIdType GetLastSurfaceCellId()
Get the last intersected surface cell id.
 
double * GetNextEquationVariables()
Get a pointer to the particle variables array at its next position.
 
std::vector< double > & GetNextTrackedUserData()
Get a reference to NextTrackedUserData See GetTrackedUserData for an explanation on how to use it.
 
void SetThreadedData(vtkLagrangianThreadedData *threadedData)
Get/Set a pointer to a vtkLagrangianThreadedData that is considered to be local to the thread.
 
double * PrevUserVariables
 
virtual vtkIdType GetSeedArrayTupleIndex() const
Get the index of the tuple for this particle in the point data returned by GetSeedData method.
 
virtual void SetInteraction(int interaction)
Set/Get particle interaction.
 
double * GetPrevVelocity()
Get a pointer to the previous particle velocity.
 
vtkLagrangianParticle()=delete
 
double GetPositionVectorMagnitude()
Compute and return the position vector magnitude.
 
virtual void SetPInsertPreviousPosition(bool val)
Set/Get parallel specific flag, indication to insert or not the previous position after streaming.
 
virtual ~vtkLagrangianParticle()
Destructor.
 
virtual void SetPManualShift(bool val)
Set/Get parallel specific flag, indication that the particle may be manually shifted after streaming.
 
virtual void SetIntegrationTime(double time)
Convenience setter for integration time, do not use unless manual particle shifting One using this me...
 
ParticleTermination
An enum to inform about a reason for termination PARTICLE_TERMINATION_NOT_TERMINATED = 0,...
 
@ PARTICLE_TERMINATION_OUT_OF_DOMAIN
 
@ PARTICLE_TERMINATION_SURF_TERMINATED
 
@ PARTICLE_TERMINATION_SURF_BREAK
 
@ PARTICLE_TERMINATION_TRANSFERRED
 
@ PARTICLE_TERMINATION_FLIGHT_TERMINATED
 
@ PARTICLE_TERMINATION_OUT_OF_TIME
 
@ PARTICLE_TERMINATION_OUT_OF_STEPS
 
double * GetEquationVariables()
Get a pointer to the particle variables array.
 
vtkLagrangianParticle(const vtkLagrangianParticle &)=delete
 
void operator=(const vtkLagrangianParticle &)=delete
 
virtual bool GetPInsertPreviousPosition()
Set/Get parallel specific flag, indication to insert or not the previous position after streaming.
 
virtual vtkIdType GetId()
Get particle id.
 
std::vector< double > EquationVariables
 
virtual void SetUserFlag(int flag)
Set/Get user flag.
 
static vtkLagrangianParticle * NewInstance(int numberOfVariables, vtkIdType seedId, vtkIdType particleId, vtkIdType seedArrayTupleIndex, double integrationTime, vtkPointData *seedData, int numberOfTrackedUserData, vtkIdType numberOfSteps=0, double previousIntegrationTime=0)
Constructor wrapper to create a partially integrated particle in the domain.
 
virtual vtkIdType GetParentId()
Set/Get parent particle id.
 
vtkLagrangianThreadedData * GetThreadedData()
Get/Set a pointer to a vtkLagrangianThreadedData that is considered to be local to the thread.
 
double * GetPosition()
Get a pointer to the particle position.
 
double * GetPrevUserVariables()
Get a pointer to the previous user variables.
 
bool PInsertPreviousPosition
 
std::vector< double > & GetTrackedUserData()
Get a reference to TrackedUserData.
 
vtkIdType LastSurfaceCellId
 
vtkDataSet * GetLastSurfaceDataSet()
Get the dataset containing the last intersected surface cell.
 
std::vector< double > & GetPrevTrackedUserData()
Get a reference to PrevTrackedUserData See GetTrackedUserData for an explanation on how to use it.
 
double * GetNextUserVariables()
Get a pointer to the next user variables.
 
virtual double & GetStepTimeRef()
Get reference to step time of this particle.
 
double * NextUserVariables
 
SurfaceInteraction
An enum to inform about a surface interaction SURFACE_INTERACTION_NO_INTERACTION = 0,...
 
@ SURFACE_INTERACTION_TERMINATED
 
@ SURFACE_INTERACTION_BREAK
 
@ SURFACE_INTERACTION_PASS
 
@ SURFACE_INTERACTION_BOUNCE
 
vtkLagrangianParticle(int numberOfVariables, vtkIdType seedId, vtkIdType particleId, vtkIdType seedArrayTupleIndex, double integrationTime, vtkPointData *seedData, int numberOfTrackedUserData)
Constructor to create a particle from a seed.
 
void SetLastSurfaceCell(vtkDataSet *dataset, vtkIdType cellId)
Set the last surface dataset and last surface cell id.
 
std::vector< double > PrevEquationVariables
 
virtual int GetNumberOfUserVariables()
Get the number of variables specific to the user.
 
std::vector< double > NextTrackedUserData
 
virtual void SetTermination(int termination)
Set/Get particle termination.
 
double PrevIntegrationTime
 
virtual double GetIntegrationTime()
Get the integration time.
 
virtual bool GetPManualShift()
Set/Get parallel specific flag, indication that the particle may be manually shifted after streaming.
 
virtual int GetInteraction()
Set/Get particle interaction.
 
vtkIdType SeedArrayTupleIndex
 
std::vector< double > NextEquationVariables
 
double * GetPrevEquationVariables()
Get a pointer to Particle variables at its previous position See GetEquationVariables for content des...
 
virtual vtkIdType GetNumberOfSteps()
Get particle current number of steps.
 
double * GetPrevPosition()
Get a pointer to the previous particle position.
 
double * GetNextPosition()
Get a pointer to the next particle position.
 
virtual void SetParentId(vtkIdType parentId)
Set/Get parent particle id.
 
double * GetVelocity()
Get a pointer to the particle velocity.
 
virtual vtkIdType GetSeedId()
Get the particle original seed index in the seed dataset.
 
virtual void PrintSelf(ostream &os, vtkIndent indent)
Print information about the particle.
 
virtual int GetTermination()
Set/Get particle termination.
 
represent and manipulate point attribute data
 
struct to hold a user data