87 #ifndef vtkLagrangianParticleTracker_h 88 #define vtkLagrangianParticleTracker_h 90 #include "vtkFiltersFlowPathsModule.h" 119 STEP_LAST_CELL_LENGTH = 0,
120 STEP_CUR_CELL_LENGTH = 1,
121 STEP_LAST_CELL_VEL_DIR = 2,
122 STEP_CUR_CELL_VEL_DIR = 3,
123 STEP_LAST_CELL_DIV_THEO = 4,
124 STEP_CUR_CELL_DIV_THEO = 5
125 } CellLengthComputation;
149 vtkSetMacro(GeneratePolyVertexInteractionOutput,
bool);
150 vtkGetMacro(GeneratePolyVertexInteractionOutput,
bool);
178 vtkSetMacro(CellLengthComputationMode,
int);
179 vtkGetMacro(CellLengthComputationMode,
int);
186 vtkSetMacro(StepFactor,
double);
187 vtkGetMacro(StepFactor,
double);
194 vtkSetMacro(StepFactorMin,
double);
195 vtkGetMacro(StepFactorMin,
double);
202 vtkSetMacro(StepFactorMax,
double);
203 vtkGetMacro(StepFactorMax,
double);
210 vtkSetMacro(MaximumNumberOfSteps,
int);
211 vtkGetMacro(MaximumNumberOfSteps,
int);
220 vtkSetMacro(AdaptiveStepReintegration,
bool);
221 vtkGetMacro(AdaptiveStepReintegration,
bool);
222 vtkBooleanMacro(AdaptiveStepReintegration,
bool);
229 vtkSetMacro(UseParticlePathsRenderingThreshold,
bool);
230 vtkGetMacro(UseParticlePathsRenderingThreshold,
bool);
231 vtkBooleanMacro(UseParticlePathsRenderingThreshold,
bool);
238 vtkSetMacro(ParticlePathsRenderingPointsThreshold,
int);
239 vtkGetMacro(ParticlePathsRenderingPointsThreshold,
int);
246 vtkSetMacro(CreateOutOfDomainParticle,
bool);
247 vtkGetMacro(CreateOutOfDomainParticle,
bool);
248 vtkBooleanMacro(CreateOutOfDomainParticle,
bool);
324 std::queue<vtkLagrangianParticle*>& particleQueue,
vtkPointData* seedData);
327 std::queue<vtkLagrangianParticle*>& particles,
vtkPointData* seedData);
330 vtkPointData* seedData,
int nVar, std::queue<vtkLagrangianParticle*>& particles);
331 virtual bool UpdateSurfaceCacheIfNeeded(
vtkDataObject*& surfaces);
344 virtual void InitializeParticleData(
vtkFieldData* particleData,
int maxTuples = 0);
348 virtual bool FinalizeOutputs(
vtkPolyData* particlePathsOutput,
351 static void InsertPolyVertexCell(
vtkPolyData* polydata);
352 static void InsertVertexCells(
vtkPolyData* polydata);
354 virtual void GetParticleFeed(std::queue<vtkLagrangianParticle*>& particleQueue);
365 unsigned int interactedSurfaceFlatIndex,
vtkDataObject* interactionOutput);
374 bool ComputeNextStep(
375 double* xprev,
double* xnext,
376 double t,
double& delT,
double& delTActual,
377 double minStep,
double maxStep,
378 int& integrationRes);
380 virtual bool CheckParticlePathsRenderingThreshold(
vtkPolyData* particlePathsOutput);
virtual int RequestDataObject(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
This is called by the superclass.
vtkIdType ParticleCounter
int CellLengthComputationMode
vtkDataObject * SurfacesCache
vtkMTimeType SurfacesTime
represent and manipulate point attribute data
vtkTypeUInt32 vtkMTimeType
abstract class to specify dataset behavior
static vtkDataObjectAlgorithm * New()
vtkDataObject * FlowCache
vtkInitialValueProblemSolver * Integrator
concrete dataset represents vertices, lines, polygons, and triangle strips
double MinimumReductionFactor
bool AdaptiveStepReintegration
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.
bool CreateOutOfDomainParticle
bool UseParticlePathsRenderingThreshold
int ParticlePathsRenderingPointsThreshold
a simple class to control print indentation
vtkBoundingBox FlowBoundsCache
vtkFunctionSet abstract implementation to be used in the vtkLagrangianParticleTracker integrator.
list of point or cell ids
bool GeneratePolyVertexInteractionOutput
abstract superclass for arrays of numeric data
virtual vtkMTimeType GetMTime()
Return this object's modified time.
Basis class for Lagrangian particles.
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
virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
vtkLagrangianBasicIntegrationModel * IntegrationModel
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
general representation of visualization data
Filter to inject and track particles in a flow.
represent and manipulate 3D points
double MinimumVelocityMagnitude
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.