VTK
vtkLagrangianBasicIntegrationModel.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkLagrangianBasicIntegrationModel.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
54 #ifndef vtkLagrangianBasicIntegrationModel_h
55 #define vtkLagrangianBasicIntegrationModel_h
56 
57 #include "vtkFiltersFlowPathsModule.h" // For export macro
58 #include "vtkNew.h" // For arrays
59 #include "vtkWeakPointer.h" // For weak pointer
60 #include "vtkFunctionSet.h"
61 
62 #include <queue> // for new particles
63 #include <map> // for array indexes
64 
65 class vtkAbstractArray;
67 class vtkCell;
68 class vtkCellData;
69 class vtkDataArray;
70 class vtkDataObject;
71 class vtkDataSet;
72 class vtkDataSetsType;
73 class vtkDoubleArray;
74 class vtkFieldData;
75 class vtkGenericCell;
76 class vtkIntArray;
79 class vtkLocatorsType;
80 class vtkPointData;
81 class vtkPolyData;
82 class vtkStringArray;
83 class vtkSurfaceType;
84 
85 class VTKFILTERSFLOWPATHS_EXPORT vtkLagrangianBasicIntegrationModel :
86  public vtkFunctionSet
87 {
88 public:
90  void PrintSelf(ostream& os, vtkIndent indent) override;
91 
92  typedef enum SurfaceType
93  {
94  SURFACE_TYPE_MODEL = 0,
95  SURFACE_TYPE_TERM = 1,
96  SURFACE_TYPE_BOUNCE = 2,
97  SURFACE_TYPE_BREAK = 3,
98  SURFACE_TYPE_PASS = 4
99  } SurfaceType;
100 
101  typedef enum VariableStep
102  {
103  VARIABLE_STEP_PREV = -1,
104  VARIABLE_STEP_CURRENT = 0,
105  VARIABLE_STEP_NEXT = 1,
106  } VariableStep;
107 
108  typedef std::pair< unsigned int, vtkLagrangianParticle*> PassThroughParticlesItem;
109  typedef std::queue< PassThroughParticlesItem > PassThroughParticlesType;
110 
117  int FunctionValues(double* x, double* f) override;
118 
120 
126  virtual void SetLocator(vtkAbstractCellLocator* locator);
127  vtkGetObjectMacro(Locator, vtkAbstractCellLocator);
129 
131 
134  vtkGetMacro(LocatorsBuilt, bool);
135  vtkSetMacro(LocatorsBuilt, bool);
137 
141  virtual void SetTracker(vtkLagrangianParticleTracker* Tracker);
142 
144 
153  virtual void AddDataSet(vtkDataSet* dataset, bool surface = false,
154  unsigned int surfaceFlatIndex = 0);
155  virtual void ClearDataSets(bool surface = false);
157 
159 
162  vtkSetMacro(UseInitialIntegrationTime, bool);
163  vtkGetMacro(UseInitialIntegrationTime, bool);
164  vtkBooleanMacro(UseInitialIntegrationTime, bool);
166 
168 
171  vtkSetMacro(CurrentParticle, vtkLagrangianParticle*);
173 
175 
178  vtkGetMacro(Tolerance, double);
180 
199  std::queue<vtkLagrangianParticle*>& particles,
200  unsigned int& interactedSurfaceFlatIndex, PassThroughParticlesType& passThroughParticles);
201 
207  virtual void SetInputArrayToProcess(int idx, int port, int connection,
208  int fieldAssociation, const char* name);
209 
211 
218  virtual bool FindInLocators(double* x, vtkDataSet*& dataset, vtkIdType& cellId,
219  vtkAbstractCellLocator*& loc, double*& weights);
220  virtual bool FindInLocators(double* x, vtkDataSet*& dataset, vtkIdType& cellId);
221  virtual bool FindInLocators(double* x);
223 
232  vtkPointData* vtkNotUsed(particleData), int vtkNotUsed(maxTuples) = 0) {}
233 
239  virtual void InsertVariablesParticleData(vtkLagrangianParticle* vtkNotUsed(particle),
240  vtkPointData* vtkNotUsed(particleData), int vtkNotUsed(stepEnum)) {}
241 
247  virtual void InitializeModelPathData(vtkFieldData* vtkNotUsed(data)) {}
248 
254  virtual void InsertModelPathData(vtkLagrangianParticle* vtkNotUsed(particle),
255  vtkFieldData* vtkNotUsed(data)) {}
256 
261  virtual void InitializeParticle(vtkLagrangianParticle* vtkNotUsed(particle)){}
262 
272  vtkLagrangianParticle* vtkNotUsed(particle)){return true;}
273 
282  vtkLagrangianParticle* vtkNotUsed(particle)){return false;}
283 
285 
288  vtkSetMacro(NonPlanarQuadSupport, bool);
289  vtkGetMacro(NonPlanarQuadSupport, bool);
290  vtkBooleanMacro(NonPlanarQuadSupport, bool);
292 
298 
304 
310 
316 
322 
328 
334 
340 
342 
346  vtkGetMacro(WeightsSize, int);
348 
371  virtual bool ManualIntegration(double* xcur, double* xnext,
372  double t, double& delT, double& delTActual,
373  double minStep, double maxStep,
374  double maxError, double& error, int& integrationResult);
375 
381  virtual void ParallelManualShift(vtkLagrangianParticle* vtkNotUsed(particle)){}
382 
388  virtual bool FinalizeOutputs(vtkPolyData* vtkNotUsed(particlePathsOutput),
389  vtkDataObject* vtkNotUsed(interractionOutput)){return true;}
390 
394  virtual void PreIntegrate(std::queue<vtkLagrangianParticle*>& vtkNotUsed(particles)){}
395 
400  virtual vtkAbstractArray* GetSeedArray(int idx, vtkPointData* pointData);
401 
402 protected:
405 
410  virtual int FunctionValues(vtkDataSet* detaSet, vtkIdType cellId, double* weights,
411  double * x, double * f) = 0;
412 
419  double* x, vtkGenericCell* cell, double* weights);
420 
425  virtual bool TerminateParticle(vtkLagrangianParticle* particle);
426 
431  virtual bool BounceParticle(vtkLagrangianParticle* particle,
432  vtkDataSet* surface, vtkIdType cellId);
433 
439  virtual bool BreakParticle(vtkLagrangianParticle* particle,
440  vtkDataSet* surface, vtkIdType cellId, std::queue<vtkLagrangianParticle*>& particles);
441 
448  virtual bool InteractWithSurface(int surfaceType, vtkLagrangianParticle* particle,
449  vtkDataSet* surface, vtkIdType cellId, std::queue<vtkLagrangianParticle*>& particles);
450 
456  virtual bool IntersectWithLine(vtkCell* cell, double p1[3], double p2[3],
457  double tol, double& t, double x[3]);
458 
463  double interpolationFactor, bool forceInside = false);
464 
470  vtkDataSet* surface, vtkIdType cellId);
471 
479 
485  virtual bool GetFlowOrSurfaceData(int idx, vtkDataSet* flowDataSet,
486  vtkIdType tupleId, double* weights, double*& data, int& nComponents);
487 
493 
502  virtual void ComputeSurfaceDefaultValues(const char* arrayName, vtkDataSet* dataset,
503  int nComponent, double* defaultValues);
504 
508  vtkLocatorsType* Locators;
509 
511  vtkDataSetsType* DataSets;
513  double* LastWeights;
515 
516  struct ArrayVal
517  {
518  int val[3];
519  };
520  typedef std::pair<ArrayVal, std::string> ArrayMapVal;
521  std::map<int, ArrayMapVal> InputArrays;
522 
523  typedef struct SurfaceArrayDescription
524  {
525  int nComp;
526  int type;
527  std::vector< std::pair< int, std::string > > enumValues;
528  } SurfaceArrayDescription;
529  std::map<std::string, SurfaceArrayDescription> SurfaceArrayDescriptions;
530 
533 
534  vtkSurfaceType* Surfaces;
535  vtkLocatorsType* SurfaceLocators;
536 
538 
539  double Tolerance;
542 
551 
553 
554 private:
556  void operator=(const vtkLagrangianBasicIntegrationModel&) = delete;
557 };
558 
559 #endif
vtkLagrangianBasicIntegrationModel::FindInLocator
virtual vtkIdType FindInLocator(vtkDataSet *dataSet, vtkAbstractCellLocator *locator, double *x, vtkGenericCell *cell, double *weights)
Look in the given dataset and associated locator to see if it contains the point x,...
vtkLagrangianBasicIntegrationModel::SurfaceLocators
vtkLocatorsType * SurfaceLocators
Definition: vtkLagrangianBasicIntegrationModel.h:535
vtkLagrangianBasicIntegrationModel::BounceParticle
virtual bool BounceParticle(vtkLagrangianParticle *particle, vtkDataSet *surface, vtkIdType cellId)
Bounce a particle, using the normal of the cell it bounces on.
vtkLagrangianBasicIntegrationModel::InitializeVariablesParticleData
virtual void InitializeVariablesParticleData(vtkPointData *vtkNotUsed(particleData), int vtkNotUsed(maxTuples)=0)
Empty method to be reimplemented if necessary in inherited classes.
Definition: vtkLagrangianBasicIntegrationModel.h:231
vtkLagrangianBasicIntegrationModel::FindInLocators
virtual bool FindInLocators(double *x)
vtkLagrangianBasicIntegrationModel::FindInLocators
virtual bool FindInLocators(double *x, vtkDataSet *&dataset, vtkIdType &cellId)
vtkLagrangianBasicIntegrationModel::SurfaceArrayDescription::enumValues
std::vector< std::pair< int, std::string > > enumValues
Definition: vtkLagrangianBasicIntegrationModel.h:527
vtkLagrangianParticleTracker
Filter to inject and track particles in a flow.
Definition: vtkLagrangianParticleTracker.h:114
vtkLagrangianBasicIntegrationModel::InitializeModelPathData
virtual void InitializeModelPathData(vtkFieldData *vtkNotUsed(data))
Empty method to be reimplemented if necessary in inherited classes.
Definition: vtkLagrangianBasicIntegrationModel.h:247
vtkLagrangianBasicIntegrationModel::InterpolateNextParticleVariables
virtual void InterpolateNextParticleVariables(vtkLagrangianParticle *particle, double interpolationFactor, bool forceInside=false)
compute all particle variables using interpolation factor
vtkLagrangianBasicIntegrationModel::SeedArrayComps
vtkNew< vtkIntArray > SeedArrayComps
Definition: vtkLagrangianBasicIntegrationModel.h:544
vtkFunctionSet
Abstract interface for sets of functions.
Definition: vtkFunctionSet.h:36
vtkLagrangianBasicIntegrationModel::GetSeedArray
virtual vtkAbstractArray * GetSeedArray(int idx, vtkLagrangianParticle *particle)
Get a seed array, as set in setInputArrayToProcess from the provided particle seed data Access then t...
vtkLagrangianBasicIntegrationModel
vtkFunctionSet abstract implementation to be used in the vtkLagrangianParticleTracker integrator.
Definition: vtkLagrangianBasicIntegrationModel.h:87
vtkLagrangianBasicIntegrationModel::FunctionValues
int FunctionValues(double *x, double *f) override
Evaluate integration model velocity f at position x.
vtkLagrangianBasicIntegrationModel::Tolerance
double Tolerance
Definition: vtkLagrangianBasicIntegrationModel.h:539
vtkLagrangianBasicIntegrationModel::GetSeedArrayNames
virtual vtkStringArray * GetSeedArrayNames()
Get the seed arrays expected name Used Only be the vtkLagrangianSeedHelper in ParaView plugins.
vtkLagrangianBasicIntegrationModel::SurfaceType
SurfaceType
Definition: vtkLagrangianBasicIntegrationModel.h:93
vtkLagrangianBasicIntegrationModel::SetLocator
virtual void SetLocator(vtkAbstractCellLocator *locator)
Set/Get the locator used to locate cells in the datasets.
vtkLagrangianBasicIntegrationModel::Locators
vtkLocatorsType * Locators
Definition: vtkLagrangianBasicIntegrationModel.h:508
vtkLagrangianBasicIntegrationModel::SurfaceArrayComps
vtkNew< vtkIntArray > SurfaceArrayComps
Definition: vtkLagrangianBasicIntegrationModel.h:547
vtkPointData
represent and manipulate point attribute data
Definition: vtkPointData.h:38
vtkLagrangianBasicIntegrationModel::GetSeedArrayTypes
virtual vtkIntArray * GetSeedArrayTypes()
Get the seed arrays expected type Used Only be the vtkLagrangianSeedHelper in ParaView plugins.
vtkIdType
int vtkIdType
Definition: vtkType.h:347
vtkLagrangianBasicIntegrationModel::ArrayVal
Definition: vtkLagrangianBasicIntegrationModel.h:517
vtkLagrangianBasicIntegrationModel::GetSurfaceArrayDefaultValues
virtual vtkDoubleArray * GetSurfaceArrayDefaultValues()
Get the surface arrays default values for each leaf Used Only be the vtkLagrangianSurfaceHelper in Pa...
vtkX3D::data
@ data
Definition: vtkX3D.h:315
vtkLagrangianBasicIntegrationModel::DataSets
vtkDataSetsType * DataSets
Definition: vtkLagrangianBasicIntegrationModel.h:511
vtkLagrangianBasicIntegrationModel::CheckFreeFlightTermination
virtual bool CheckFreeFlightTermination(vtkLagrangianParticle *vtkNotUsed(particle))
Method to be reimplemented if needed in inherited classes.
Definition: vtkLagrangianBasicIntegrationModel.h:281
vtkLagrangianBasicIntegrationModel::SurfaceArrayNames
vtkNew< vtkStringArray > SurfaceArrayNames
Definition: vtkLagrangianBasicIntegrationModel.h:546
vtkLagrangianBasicIntegrationModel::ManualIntegration
virtual bool ManualIntegration(double *xcur, double *xnext, double t, double &delT, double &delTActual, double minStep, double maxStep, double maxError, double &error, int &integrationResult)
Let the model define it's own way to integrate Signature is very close to the integrator method signa...
vtkLagrangianBasicIntegrationModel::SurfaceArrayDescriptions
std::map< std::string, SurfaceArrayDescription > SurfaceArrayDescriptions
Definition: vtkLagrangianBasicIntegrationModel.h:529
vtkLagrangianBasicIntegrationModel::SetInputArrayToProcess
virtual void SetInputArrayToProcess(int idx, int port, int connection, int fieldAssociation, const char *name)
Set a input array to process at a specific index, identified by a port, connection,...
vtkLagrangianBasicIntegrationModel::VariableStep
VariableStep
Definition: vtkLagrangianBasicIntegrationModel.h:102
vtkLagrangianBasicIntegrationModel::GetSurfaceArrayTypes
virtual vtkIntArray * GetSurfaceArrayTypes()
Get the surface arrays expected type Used Only be the vtkLagrangianSurfaceHelper in ParaView plugins.
vtkLagrangianBasicIntegrationModel::SeedArrayNames
vtkNew< vtkStringArray > SeedArrayNames
Definition: vtkLagrangianBasicIntegrationModel.h:543
vtkLagrangianBasicIntegrationModel::TmpParticle
vtkLagrangianParticle * TmpParticle
Definition: vtkLagrangianBasicIntegrationModel.h:532
vtkLagrangianBasicIntegrationModel::~vtkLagrangianBasicIntegrationModel
~vtkLagrangianBasicIntegrationModel() override
vtkLagrangianBasicIntegrationModel::SurfaceArrayDescription::nComp
int nComp
Definition: vtkLagrangianBasicIntegrationModel.h:525
vtkLagrangianBasicIntegrationModel::GetSurfaceArrayComps
virtual vtkIntArray * GetSurfaceArrayComps()
Get the seed array expected number of components Used Only be the vtkLagrangianSurfaceHelper in ParaV...
vtkFunctionSet.h
vtkDataArray
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:55
vtkLagrangianBasicIntegrationModel::BreakParticle
virtual bool BreakParticle(vtkLagrangianParticle *particle, vtkDataSet *surface, vtkIdType cellId, std::queue< vtkLagrangianParticle * > &particles)
Breakup a particle at intersection point, by terminating it and creating two new particle using the i...
vtkLagrangianBasicIntegrationModel::Surfaces
vtkSurfaceType * Surfaces
Definition: vtkLagrangianBasicIntegrationModel.h:534
vtkLagrangianBasicIntegrationModel::PreIntegrate
virtual void PreIntegrate(std::queue< vtkLagrangianParticle * > &vtkNotUsed(particles))
Enable model to modify particle before integration.
Definition: vtkLagrangianBasicIntegrationModel.h:394
vtkLagrangianBasicIntegrationModel::ComputeSurfaceInteraction
virtual vtkLagrangianParticle * ComputeSurfaceInteraction(vtkLagrangianParticle *particle, std::queue< vtkLagrangianParticle * > &particles, unsigned int &interactedSurfaceFlatIndex, PassThroughParticlesType &passThroughParticles)
Interact the current particle with a surfaces Return a particle to record as interaction point if not...
vtkLagrangianBasicIntegrationModel::GetFlowOrSurfaceData
virtual bool GetFlowOrSurfaceData(int idx, vtkDataSet *flowDataSet, vtkIdType tupleId, double *weights, double *&data, int &nComponents)
Directly get a double value from flow or surface data as defined in SetInputArrayToProcess data point...
vtkFieldData
represent and manipulate fields of data
Definition: vtkFieldData.h:57
vtkLagrangianBasicIntegrationModel::IntersectWithLine
virtual bool IntersectWithLine(vtkCell *cell, double p1[3], double p2[3], double tol, double &t, double x[3])
Call vtkCell::IntersectWithLine This method is to be reimplemented in inherited classes willing to im...
vtkLagrangianBasicIntegrationModel::GetSurfaceArrayNames
virtual vtkStringArray * GetSurfaceArrayNames()
Get the surface arrays expected name Used Only be the vtkLagrangianSurfaceHelper in ParaView plugins.
vtkLagrangianBasicIntegrationModel::WeightsSize
int WeightsSize
Definition: vtkLagrangianBasicIntegrationModel.h:514
vtkX3D::port
@ port
Definition: vtkX3D.h:447
vtkLagrangianBasicIntegrationModel::FindInLocators
virtual bool FindInLocators(double *x, vtkDataSet *&dataset, vtkIdType &cellId, vtkAbstractCellLocator *&loc, double *&weights)
Look for a dataset in this integration model containing the point x.
vtkLagrangianBasicIntegrationModel::UseInitialIntegrationTime
bool UseInitialIntegrationTime
Definition: vtkLagrangianBasicIntegrationModel.h:541
vtkLagrangianBasicIntegrationModel::GetFlowOrSurfaceDataFieldAssociation
virtual int GetFlowOrSurfaceDataFieldAssociation(int idx)
Recover a field association for a specified array index if it has been set using SetInputArrayToProce...
vtkLagrangianBasicIntegrationModel::ArrayMapVal
std::pair< ArrayVal, std::string > ArrayMapVal
Definition: vtkLagrangianBasicIntegrationModel.h:520
vtkLagrangianBasicIntegrationModel::SurfaceArrayDescription
Definition: vtkLagrangianBasicIntegrationModel.h:524
vtkLagrangianBasicIntegrationModel::InitializeParticle
virtual void InitializeParticle(vtkLagrangianParticle *vtkNotUsed(particle))
Initialize a particle by setting user variables and perform any user model specific operation.
Definition: vtkLagrangianBasicIntegrationModel.h:261
vtkLagrangianBasicIntegrationModel::PassThroughParticlesItem
std::pair< unsigned int, vtkLagrangianParticle * > PassThroughParticlesItem
Definition: vtkLagrangianBasicIntegrationModel.h:108
vtkLagrangianBasicIntegrationModel::SetTracker
virtual void SetTracker(vtkLagrangianParticleTracker *Tracker)
Set the parent tracker.
vtkCell
abstract class to specify cell behavior
Definition: vtkCell.h:60
vtkLagrangianBasicIntegrationModel::InsertModelPathData
virtual void InsertModelPathData(vtkLagrangianParticle *vtkNotUsed(particle), vtkFieldData *vtkNotUsed(data))
Empty method to be reimplemented if necessary in inherited classes.
Definition: vtkLagrangianBasicIntegrationModel.h:254
vtkLagrangianBasicIntegrationModel::InputArrays
std::map< int, ArrayMapVal > InputArrays
Definition: vtkLagrangianBasicIntegrationModel.h:521
vtkCellData
represent and manipulate cell attribute data
Definition: vtkCellData.h:39
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:40
vtkIntArray
dynamic, self-adjusting array of int
Definition: vtkIntArray.h:46
vtkLagrangianBasicIntegrationModel::vtkLagrangianBasicIntegrationModel
vtkLagrangianBasicIntegrationModel()
vtkLagrangianBasicIntegrationModel::SurfaceArrayEnumValues
vtkNew< vtkStringArray > SurfaceArrayEnumValues
Definition: vtkLagrangianBasicIntegrationModel.h:549
vtkNew< vtkStringArray >
vtkLagrangianBasicIntegrationModel::LastLocator
vtkAbstractCellLocator * LastLocator
Definition: vtkLagrangianBasicIntegrationModel.h:507
vtkLagrangianBasicIntegrationModel::TmpArray
vtkDataArray * TmpArray
Definition: vtkLagrangianBasicIntegrationModel.h:537
vtkLagrangianBasicIntegrationModel::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkWeakPointer.h
vtkLagrangianBasicIntegrationModel::GetSurfaceArrayEnumValues
virtual vtkStringArray * GetSurfaceArrayEnumValues()
Get the surface arrays expected values and associated enums Used Only be the vtkLagrangianSurfaceHelp...
vtkLagrangianBasicIntegrationModel::FunctionValues
virtual int FunctionValues(vtkDataSet *detaSet, vtkIdType cellId, double *weights, double *x, double *f)=0
Actually compute the integration model velocity field pure abstract, to be implemented in inherited c...
vtkAbstractCellLocator
an abstract base class for locators which find cells
Definition: vtkAbstractCellLocator.h:49
vtkLagrangianBasicIntegrationModel::LastDataSet
vtkDataSet * LastDataSet
Definition: vtkLagrangianBasicIntegrationModel.h:510
vtkLagrangianParticle
Basis class for Lagrangian particles.
Definition: vtkLagrangianParticle.h:42
vtkX3D::name
@ name
Definition: vtkX3D.h:219
vtkLagrangianBasicIntegrationModel::SurfaceArrayDefaultValues
vtkNew< vtkDoubleArray > SurfaceArrayDefaultValues
Definition: vtkLagrangianBasicIntegrationModel.h:550
vtkLagrangianBasicIntegrationModel::Locator
vtkAbstractCellLocator * Locator
Definition: vtkLagrangianBasicIntegrationModel.h:505
vtkDataSet
abstract class to specify dataset behavior
Definition: vtkDataSet.h:63
vtkAbstractArray
Abstract superclass for all arrays.
Definition: vtkAbstractArray.h:79
vtkLagrangianBasicIntegrationModel::LocatorsBuilt
bool LocatorsBuilt
Definition: vtkLagrangianBasicIntegrationModel.h:506
vtkLagrangianBasicIntegrationModel::CheckAdaptiveStepReintegration
virtual bool CheckAdaptiveStepReintegration(vtkLagrangianParticle *vtkNotUsed(particle))
Method to be reimplemented if needed in inherited classes.
Definition: vtkLagrangianBasicIntegrationModel.h:271
vtkLagrangianBasicIntegrationModel::CurrentParticle
vtkLagrangianParticle * CurrentParticle
Definition: vtkLagrangianBasicIntegrationModel.h:531
vtkNew.h
vtkLagrangianBasicIntegrationModel::GetSeedArrayComps
virtual vtkIntArray * GetSeedArrayComps()
Get the seed arrays expected number of components Used Only be the vtkLagrangianSeedHelper in ParaVie...
vtkLagrangianBasicIntegrationModel::FinalizeOutputs
virtual bool FinalizeOutputs(vtkPolyData *vtkNotUsed(particlePathsOutput), vtkDataObject *vtkNotUsed(interractionOutput))
Enable model post process on output Return true if successful, false otherwise Empty and Always retur...
Definition: vtkLagrangianBasicIntegrationModel.h:388
vtkLagrangianBasicIntegrationModel::ComputeSurfaceDefaultValues
virtual void ComputeSurfaceDefaultValues(const char *arrayName, vtkDataSet *dataset, int nComponent, double *defaultValues)
Methods used by ParaView surface helper to get default values for each leaf of each dataset of surfac...
vtkPolyData
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:86
vtkGenericCell
provides thread-safe access to cells
Definition: vtkGenericCell.h:40
vtkLagrangianBasicIntegrationModel::SeedArrayTypes
vtkNew< vtkIntArray > SeedArrayTypes
Definition: vtkLagrangianBasicIntegrationModel.h:545
vtkStringArray
a vtkAbstractArray subclass for strings
Definition: vtkStringArray.h:43
vtkLagrangianBasicIntegrationModel::TerminateParticle
virtual bool TerminateParticle(vtkLagrangianParticle *particle)
Terminate a particle, by positioning flags.
vtkLagrangianBasicIntegrationModel::ClearDataSets
virtual void ClearDataSets(bool surface=false)
vtkDoubleArray
dynamic, self-adjusting array of double
Definition: vtkDoubleArray.h:42
vtkLagrangianBasicIntegrationModel::NonPlanarQuadSupport
bool NonPlanarQuadSupport
Definition: vtkLagrangianBasicIntegrationModel.h:540
vtkLagrangianBasicIntegrationModel::SurfaceArrayTypes
vtkNew< vtkIntArray > SurfaceArrayTypes
Definition: vtkLagrangianBasicIntegrationModel.h:548
vtkLagrangianBasicIntegrationModel::Cell
vtkGenericCell * Cell
Definition: vtkLagrangianBasicIntegrationModel.h:512
vtkLagrangianBasicIntegrationModel::Tracker
vtkWeakPointer< vtkLagrangianParticleTracker > Tracker
Definition: vtkLagrangianBasicIntegrationModel.h:552
vtkLagrangianBasicIntegrationModel::InsertVariablesParticleData
virtual void InsertVariablesParticleData(vtkLagrangianParticle *vtkNotUsed(particle), vtkPointData *vtkNotUsed(particleData), int vtkNotUsed(stepEnum))
Empty method to be reimplemented if necessary in inherited classes.
Definition: vtkLagrangianBasicIntegrationModel.h:239
vtkLagrangianBasicIntegrationModel::PassThroughParticlesType
std::queue< PassThroughParticlesItem > PassThroughParticlesType
Definition: vtkLagrangianBasicIntegrationModel.h:109
vtkDataObject
general representation of visualization data
Definition: vtkDataObject.h:65
vtkLagrangianBasicIntegrationModel::AddDataSet
virtual void AddDataSet(vtkDataSet *dataset, bool surface=false, unsigned int surfaceFlatIndex=0)
Add a dataset to locate cells in This create a specific locator for the provided dataset using the Lo...
vtkLagrangianBasicIntegrationModel::InteractWithSurface
virtual bool InteractWithSurface(int surfaceType, vtkLagrangianParticle *particle, vtkDataSet *surface, vtkIdType cellId, std::queue< vtkLagrangianParticle * > &particles)
Call vtkLagrangianBasicIntegrationModel::Terminate This method is to be reimplemented in inherited cl...
vtkLagrangianBasicIntegrationModel::CheckSurfacePerforation
virtual bool CheckSurfacePerforation(vtkLagrangianParticle *particle, vtkDataSet *surface, vtkIdType cellId)
Given a particle, check if it perforate a surface cell ie : interact with next step after interacting...
vtkLagrangianBasicIntegrationModel::SurfaceArrayDescription::type
int type
Definition: vtkLagrangianBasicIntegrationModel.h:526
vtkLagrangianBasicIntegrationModel::GetSeedArray
virtual vtkAbstractArray * GetSeedArray(int idx, vtkPointData *pointData)
Get a seed array, as set in setInputArrayToProcess from the provided seed point data.
vtkWeakPointer< vtkLagrangianParticleTracker >
vtkLagrangianBasicIntegrationModel::ParallelManualShift
virtual void ParallelManualShift(vtkLagrangianParticle *vtkNotUsed(particle))
Method called by parallel algorithm after receiving a particle from stream if PManualShift flag has b...
Definition: vtkLagrangianBasicIntegrationModel.h:381
vtkLagrangianBasicIntegrationModel::LastWeights
double * LastWeights
Definition: vtkLagrangianBasicIntegrationModel.h:513