88 #ifndef vtkLagrangianParticleTracker_h 89 #define vtkLagrangianParticleTracker_h 93 #include "vtkFiltersFlowPathsModule.h" 114 struct IntegratingFunctor;
125 STEP_LAST_CELL_LENGTH = 0,
126 STEP_CUR_CELL_LENGTH = 1,
127 STEP_LAST_CELL_VEL_DIR = 2,
128 STEP_CUR_CELL_VEL_DIR = 3,
129 STEP_LAST_CELL_DIV_THEO = 4,
130 STEP_CUR_CELL_DIV_THEO = 5
131 } CellLengthComputation;
157 vtkSetMacro(GeneratePolyVertexInteractionOutput,
bool);
158 vtkGetMacro(GeneratePolyVertexInteractionOutput,
bool);
185 vtkSetMacro(CellLengthComputationMode,
int);
186 vtkGetMacro(CellLengthComputationMode,
int);
193 vtkSetMacro(StepFactor,
double);
194 vtkGetMacro(StepFactor,
double);
201 vtkSetMacro(StepFactorMin,
double);
202 vtkGetMacro(StepFactorMin,
double);
209 vtkSetMacro(StepFactorMax,
double);
210 vtkGetMacro(StepFactorMax,
double);
217 vtkSetMacro(MaximumNumberOfSteps,
int);
218 vtkGetMacro(MaximumNumberOfSteps,
int);
226 vtkSetMacro(MaximumIntegrationTime,
double);
227 vtkGetMacro(MaximumIntegrationTime,
double);
237 vtkSetMacro(AdaptiveStepReintegration,
bool);
238 vtkGetMacro(AdaptiveStepReintegration,
bool);
239 vtkBooleanMacro(AdaptiveStepReintegration,
bool);
247 vtkSetMacro(GenerateParticlePathsOutput,
bool);
248 vtkGetMacro(GenerateParticlePathsOutput,
bool);
249 vtkBooleanMacro(GenerateParticlePathsOutput,
bool);
323 std::queue<vtkLagrangianParticle*>& particles,
vtkPointData* seedData);
326 int nVar, std::queue<vtkLagrangianParticle*>& particles);
327 virtual bool UpdateSurfaceCacheIfNeeded(
vtkDataObject*& surfaces);
333 virtual bool InitializePathsOutput(
339 virtual bool InitializeInteractionOutput(
344 static void InsertPolyVertexCell(
vtkPolyData* polydata);
345 static void InsertVertexCells(
vtkPolyData* polydata);
347 virtual void GetParticleFeed(std::queue<vtkLagrangianParticle*>& particleQueue);
353 std::queue<vtkLagrangianParticle*>&,
vtkPolyData* particlePathsOutput,
360 vtkIdList* particlePathPointId,
bool prev =
false);
366 unsigned int interactedSurfaceFlatIndex,
vtkDataObject* interactionOutput);
374 double t,
double& delT,
double& delTActual,
double minStep,
double maxStep,
double cellLength,
387 bool GenerateParticlePathsOutput =
true;
406 friend struct IntegratingFunctor;
virtual int RequestDataObject(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
This is called by the superclass.
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
boost::graph_traits< vtkGraph * >::vertex_descriptor source(boost::graph_traits< vtkGraph *>::edge_descriptor e, vtkGraph *)
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.
std::atomic< vtkIdType > IntegratedParticleCounter
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
composite dataset to encapsulates pieces of dataset.
abstract superclass for arrays of numeric data
virtual vtkMTimeType GetMTime()
Return this object's modified time.
Basis class for Lagrangian particles.
double MaximumIntegrationTime
Superclass for algorithms that produce only data object as output.
object to represent cell connectivity
virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
std::atomic< vtkIdType > ParticleCounter
vtkLagrangianBasicIntegrationModel * IntegrationModel
Composite dataset that organizes datasets into blocks.
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
vtkIdType IntegratedParticleCounterIncrement
general representation of visualization data
Filter to inject and track particles in a flow.
represent and manipulate 3D points
double MinimumVelocityMagnitude
cell represents a set of 1D lines
Fast, simple class for dealing with 3D bounds.
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.