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