87 #ifndef vtkLagrangianParticleTracker_h
88 #define vtkLagrangianParticleTracker_h
90 #include "vtkFiltersFlowPathsModule.h"
118 STEP_LAST_CELL_LENGTH = 0,
119 STEP_CUR_CELL_LENGTH = 1,
120 STEP_LAST_CELL_VEL_DIR = 2,
121 STEP_CUR_CELL_VEL_DIR = 3,
122 STEP_LAST_CELL_DIV_THEO = 4,
123 STEP_CUR_CELL_DIV_THEO = 5
124 } CellLengthComputation;
168 vtkGetMacro(CellLengthComputationMode,
int);
176 vtkGetMacro(StepFactor,
double);
184 vtkGetMacro(StepFactorMin,
double);
192 vtkGetMacro(StepFactorMax,
double);
200 vtkGetMacro(MaximumNumberOfSteps,
int);
210 vtkGetMacro(AdaptiveStepReintegration,
bool);
218 vtkSetMacro(UseParticlePathsRenderingThreshold,
bool);
219 vtkGetMacro(UseParticlePathsRenderingThreshold,
bool);
227 vtkSetMacro(ParticlePathsRenderingPointsThreshold,
int);
228 vtkGetMacro(ParticlePathsRenderingPointsThreshold,
int);
236 vtkGetMacro(CreateOutOfDomainParticle,
bool);
309 ~vtkLagrangianParticleTracker() VTK_OVERRIDE;
332 virtual
void InitializeParticleData(
vtkFieldData* particleData,
int maxTuples = 0);
334 virtual
void InitializeInteractionData(
vtkFieldData* data);
336 virtual
bool FinalizeOutputs(
vtkPolyData* particlePathsOutput,
339 static
void InsertPolyVertexCell(
vtkPolyData* polydata);
347 void InsertPathOutputPoint(vtkLagrangianParticle* particle,
351 void InsertInteractionOutputPoint(vtkLagrangianParticle* particle,
352 unsigned int interactedSurfaceFlatIndex,
vtkDataObject* interactionOutput);
354 void InsertSeedData(vtkLagrangianParticle* particle,
vtkFieldData* data);
355 void InsertPathData(vtkLagrangianParticle* particle,
vtkFieldData* data);
356 void InsertInteractionData(vtkLagrangianParticle* particle,
vtkFieldData* data);
357 void InsertParticleData(vtkLagrangianParticle* particle,
vtkFieldData* data,
int stepEnum);
359 double ComputeCellLength(vtkLagrangianParticle* particle);
361 bool ComputeNextStep(
362 double* xprev,
double* xnext,
363 double t,
double& delT,
double& delTActual,
364 double minStep,
double maxStep,
365 int& integrationRes);
367 virtual
bool CheckParticlePathsRenderingThreshold(
vtkPolyData* particlePathsOutput);
372 int CellLengthComputationMode;
374 double StepFactorMin;
375 double StepFactorMax;
376 int MaximumNumberOfSteps;
377 bool AdaptiveStepReintegration;
378 bool UseParticlePathsRenderingThreshold;
379 int ParticlePathsRenderingPointsThreshold;
380 bool CreateOutOfDomainParticle;
384 double MinimumVelocityMagnitude;
385 double MinimumReductionFactor;
387 vtkLagrangianParticleTracker(const vtkLagrangianParticleTracker&) VTK_DELETE_FUNCTION;
388 void operator=(const vtkLagrangianParticleTracker&) VTK_DELETE_FUNCTION;
virtual int RequestDataObject(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
This is called by the superclass.
represent and manipulate point attribute data
vtkTypeUInt32 vtkMTimeType
abstract class to specify dataset behavior
static vtkDataObjectAlgorithm * New()
concrete dataset represents vertices, lines, polygons, and triangle strips
Proxy object to connect input/output ports.
dynamic, self-adjusting array of double
int FillOutputPortInformation(int port, vtkInformation *info) override
Fill the output port information objects for this algorithm.
a simple class to control print indentation
vtkFunctionSet abstract implementation to be used in the vtkLagrangianParticleTracker integrator...
list of point or cell ids
abstract superclass for arrays of numeric data
Basis class for Lagrangian particles.
vtkSetMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
boost::graph_traits< vtkGraph * >::vertex_descriptor source(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
Superclass for algorithms that produce only data object as output.
object to represent cell connectivity
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
vtkBooleanMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
general representation of visualization data
Filter to inject and track particles in a flow.
represent and manipulate 3D points
Fast Simple Class for dealing with 3D bounds.
represent and manipulate fields of data
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
Integrate a set of ordinary differential equations (initial value problem) in time.