 |
VTK
9.0.1
|
Go to the documentation of this file.
28 #ifndef vtkParticleTracerBase_h
29 #define vtkParticleTracerBase_h
31 #include "vtkFiltersFlowPathsModule.h"
67 int CachedDataSetId[2];
121 vtkGetMacro(ComputeVorticity,
bool);
129 vtkGetMacro(TerminalSpeed,
double);
138 vtkGetMacro(RotationScale,
double);
162 vtkGetMacro(ForceReinjectionEveryNSteps,
int);
174 vtkGetMacro(TerminationTime,
double);
188 vtkGetMacro(StartTime,
double);
202 vtkSetMacro(StaticSeeds,
int);
203 vtkGetMacro(StaticSeeds,
int);
216 vtkSetMacro(StaticMesh,
int);
217 vtkGetMacro(StaticMesh,
int);
236 vtkSetStringMacro(ParticleFileName);
237 vtkGetStringMacro(ParticleFileName);
409 double pos[4],
double p2[4],
double intersection[4],
vtkGenericCell* cell);
451 vtkGetMacro(ReinjectionCounter,
int);
452 vtkGetMacro(CurrentTimeValue,
double);
486 double delT,
int subSteps);
488 bool SetTerminationTimeNoModify(
double t);
492 double IntegrationStep;
494 bool ComputeVorticity;
495 double RotationScale;
496 double TerminalSpeed;
499 int ReinjectionCounter;
502 int AllFixedGeometry;
506 std::vector<double> InputTimeValues;
508 double TerminationTime;
509 double CurrentTimeValue;
514 int TerminationTimeStep;
518 int ForceReinjectionEveryNSteps;
524 char* ParticleFileName;
542 std::vector<bounds> CachedBounds[2];
565 unsigned int NumberOfParticles();
570 static const double Epsilon;
represent and manipulate 3D points
void TestParticles(vtkParticleTracerBaseNamespace::ParticleVector &candidates, std::vector< int > &passed)
void CreateProtoPD(vtkDataObject *input)
int RequestUpdateExtent(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override
This is called by the superclass.
A particle tracer for vector fields.
~vtkParticleTracerBase() override
vtkSmartPointer< vtkPolyData > Output
void SetComputeVorticity(bool)
vtkIntArray * GetParticleIds(vtkPointData *)
vtkIntArray * GetInjectedPointIds(vtkPointData *)
represent and manipulate point attribute data
virtual void InitializeExtraPointDataArrays(vtkPointData *vtkNotUsed(outputPD))
Methods to append values to existing point data arrays that may only be desired on specific concrete ...
virtual int ProcessInput(vtkInformationVector **inputVector)
vtkIntArray * GetInjectedStepIds(vtkPointData *)
dynamic, self-adjusting array of float
vtkTypeBool ProcessRequest(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override
see vtkAlgorithm for details
int RequestInformation(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override
double GetCacheDataTime(int i)
record modification and/or execution time
bool InsideBounds(double point[])
vtkFloatArray * GetParticleAge(vtkPointData *)
vtkSmartPointer< vtkPointData > ParticlePointData
std::list< ParticleInformation > ParticleDataList
vtkFloatArray * GetParticleRotation(vtkPointData *)
vtkTypeBool DisableResetCache
virtual void AddRestartSeeds(vtkInformationVector **)
For restarts of particle paths, we add in the ability to add in particles from a previous computation...
virtual void Initialize()
std::vector< ParticleInformation > ParticleVector
virtual std::vector< vtkDataSet * > GetSeedSources(vtkInformationVector *inputVector, int timeStep)
Method to get the data set seed sources.
abstract superclass for arrays of numeric data
bool IsPointDataValid(vtkCompositeDataSet *input, std::vector< std::string > &arrayNames)
int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override
This is called by the superclass.
bool ComputeDomainExitLocation(double pos[4], double p2[4], double intersection[4], vtkGenericCell *cell)
This is an old routine kept for possible future use.
Composite dataset that organizes datasets into blocks.
void SetRotationScale(double)
abstract superclass for composite (multi-block or AMR) datasets
virtual void AssignSeedsToProcessors(double time, vtkDataSet *source, int sourceID, int ptId, vtkParticleTracerBaseNamespace::ParticleVector &localSeedPoints, int &localAssignedCount)
all the injection/seed points according to which processor they belong to.
vtkParticleTracerBaseNamespace::ParticleDataList ParticleHistories
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkIdType UniqueIdCounter
dynamic, self-adjusting array of char
void TestParticles(vtkParticleTracerBaseNamespace::ParticleVector &candidates, vtkParticleTracerBaseNamespace::ParticleVector &passed, int &count)
inside our data.
void GetPointDataArrayNames(vtkDataSet *input, std::vector< std::string > &names)
vtkTypeBool IgnorePipelineTime
ParticleDataList::iterator ParticleListIterator
vtkFloatArray * GetParticleVorticity(vtkPointData *)
void SetIntegrator(vtkInitialValueProblemSolver *)
virtual vtkPolyData * Execute(vtkInformationVector **inputVector)
vtkSmartPointer< vtkPointData > ProtoPD
ProtoPD is used just to keep track of the input array names and number of components for copy allocat...
void AddSourceConnection(vtkAlgorithmOutput *input)
Provide support for multiple seed sources.
vtkIntArray * GetErrorCodeArr(vtkPointData *)
Multiprocessing communication superclass.
void SetForceReinjectionEveryNSteps(int)
virtual void AssignUniqueIds(vtkParticleTracerBaseNamespace::ParticleVector &localSeedPoints)
give each one a unique ID.
vtkTemporalInterpolatedVelocityField * GetInterpolator()
a simple class to control print indentation
object to represent cell connectivity
dynamic, self-adjusting array of int
vtkFloatArray * GetParticleAngularVel(vtkPointData *)
abstract class to write particle data to file
void CalculateVorticity(vtkGenericCell *cell, double pcoords[3], vtkDoubleArray *cellVectors, double vorticity[3])
virtual int OutputParticles(vtkPolyData *poly)=0
void SetTerminationTime(double t)
Setting TerminationTime to a positive value will cause particles to terminate when the time is reache...
void SetTerminalSpeed(double)
void PrintParticleHistories()
abstract class to specify dataset behavior
An abstract class for obtaining the interpolated velocity values at a point.
virtual void SetParticleWriter(vtkAbstractParticleWriter *pw)
Set/Get the Writer associated with this Particle Tracer Ideally a parallel IO capable vtkH5PartWriter...
virtual bool SendParticleToAnotherProcess(vtkParticleTracerBaseNamespace::ParticleInformation &, vtkParticleTracerBaseNamespace::ParticleInformation &, vtkPointData *)
void UpdateParticleList(vtkParticleTracerBaseNamespace::ParticleVector &candidates)
and sending between processors, into a list, which is used as the master list on this processor
virtual void AppendToExtraPointDataArrays(vtkParticleTracerBaseNamespace::ParticleInformation &)
virtual bool UpdateParticleListFromOtherProcesses()
this is used during classification of seed points and also between iterations of the main loop as par...
vtkCharArray * GetParticleSourceIds(vtkPointData *)
Proxy object to connect input/output ports.
void IntegrateParticle(vtkParticleTracerBaseNamespace::ParticleListIterator &it, double currenttime, double terminationtime, vtkInitialValueProblemSolver *integrator)
particle between the two times supplied.
A helper class for interpolating between times during particle tracing.
concrete dataset represents vertices, lines, polygons, and triangle strips
provides thread-safe access to cells
dynamic, self-adjusting array of double
int InitializeInterpolator()
virtual bool IsPointDataValid(vtkDataObject *input)
Methods that check that the input arrays are ordered the same on all data sets.
boost::graph_traits< vtkGraph * >::vertex_descriptor source(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
Integrate a set of ordinary differential equations (initial value problem) in time.
ParticleVector::iterator ParticleIterator
void SetStartTime(double t)
general representation of visualization data
double GetCacheDataTime()
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
int UpdateDataCache(vtkDataObject *td)
void AddParticle(vtkParticleTracerBaseNamespace::ParticleInformation &info, double *velocity)
virtual void ResetCache()
void SetIntegratorType(int type)
Superclass for algorithms that produce only polydata as output.