|  | VTK
    9.0.1
    | 
 
 
 
Go to the documentation of this file.
   54 #ifndef vtkLagrangianBasicIntegrationModel_h 
   55 #define vtkLagrangianBasicIntegrationModel_h 
   57 #include "vtkFiltersFlowPathsModule.h"  
   73 class vtkDataSetsType;
 
   81 class vtkLocatorsType;
 
   98     SURFACE_TYPE_MODEL = 0,
 
   99     SURFACE_TYPE_TERM = 1,
 
  100     SURFACE_TYPE_BOUNCE = 2,
 
  101     SURFACE_TYPE_BREAK = 3,
 
  102     SURFACE_TYPE_PASS = 4
 
  107     VARIABLE_STEP_PREV = -1,
 
  108     VARIABLE_STEP_CURRENT = 0,
 
  109     VARIABLE_STEP_NEXT = 1,
 
  115   using Superclass::FunctionValues;
 
  123   int FunctionValues(
double* x, 
double* f, 
void* userData) 
override;
 
  140   vtkGetMacro(LocatorsBuilt, 
bool);
 
  141   vtkSetMacro(LocatorsBuilt, 
bool);
 
  159   virtual void AddDataSet(
 
  160     vtkDataSet* dataset, 
bool surface = 
false, 
unsigned int surfaceFlatIndex = 0);
 
  161   virtual void ClearDataSets(
bool surface = 
false);
 
  168   vtkSetMacro(UseInitialIntegrationTime, 
bool);
 
  169   vtkGetMacro(UseInitialIntegrationTime, 
bool);
 
  170   vtkBooleanMacro(UseInitialIntegrationTime, 
bool);
 
  177   vtkGetMacro(Tolerance, 
double);
 
  198     std::queue<vtkLagrangianParticle*>& particles, 
unsigned int& interactedSurfaceFlatIndex,
 
  206   virtual void SetInputArrayToProcess(
 
  207     int idx, 
int port, 
int connection, 
int fieldAssociation, 
const char* 
name);
 
  226   virtual bool FindInLocators(
 
  267   vtkSetMacro(NonPlanarQuadSupport, 
bool);
 
  268   vtkGetMacro(NonPlanarQuadSupport, 
bool);
 
  269   vtkBooleanMacro(NonPlanarQuadSupport, 
bool);
 
  325   virtual int GetWeightsSize();
 
  352     double* xnext, 
double t, 
double& delT, 
double& delTActual, 
double minStep, 
double maxStep,
 
  353     double maxError, 
double cellLength, 
double& error, 
int& integrationResult,
 
  389   virtual void PreIntegrate(std::queue<vtkLagrangianParticle*>& vtkNotUsed(particles)) {}
 
  404   vtkSetMacro(NumberOfTrackedUserData, 
int);
 
  405   vtkGetMacro(NumberOfTrackedUserData, 
int);
 
  426   virtual void InitializeParticleData(
vtkFieldData* particleData, 
int maxTuples = 0);
 
  448   virtual void InsertParticleData(
 
  476     double* weights, 
double* x, 
double* f) = 0;
 
  499   virtual bool BounceParticle(
 
  510     std::queue<vtkLagrangianParticle*>& particles);
 
  531     double p2[3], 
double tol, 
double& t, 
double x[3]);
 
  537   virtual void InterpolateNextParticleVariables(
 
  545   virtual bool CheckSurfacePerforation(
 
  573   virtual int GetFlowOrSurfaceDataNumberOfComponents(
int idx, 
vtkDataSet* dataSet);
 
  580   virtual int GetFlowOrSurfaceDataFieldAssociation(
int idx);
 
  590   virtual void ComputeSurfaceDefaultValues(
 
  591     const char* arrayName, 
vtkDataSet* dataset, 
int nComponent, 
double* defaultValues);
 
  620   int NumberOfTrackedUserData = 0;
 
  
vtkLocatorsType * SurfaceLocators
Filter to inject and track particles in a flow.
vtkNew< vtkIntArray > SeedArrayComps
Abstract interface for sets of functions.
vtkFunctionSet abstract implementation to be used in the vtkLagrangianParticleTracker integrator.
composite dataset to encapsulates pieces of dataset.
vtkLocatorsType * Locators
vtkNew< vtkIntArray > SurfaceArrayComps
represent and manipulate point attribute data
vtkDataSetsType * DataSets
virtual bool CheckFreeFlightTermination(vtkLagrangianParticle *vtkNotUsed(particle))
Method to be reimplemented if needed in inherited classes.
vtkNew< vtkStringArray > SurfaceArrayNames
std::map< std::string, SurfaceArrayDescription > SurfaceArrayDescriptions
vtkNew< vtkStringArray > SeedArrayNames
std::vector< double > SharedWeights
abstract superclass for arrays of numeric data
vtkSurfaceType * Surfaces
virtual void PreIntegrate(std::queue< vtkLagrangianParticle * > &vtkNotUsed(particles))
Enable model to modify particle before integration.
Composite dataset that organizes datasets into blocks.
virtual void InitializeThreadedData(vtkLagrangianThreadedData *vtkNotUsed(data))
Let the model allocate and initialize a threaded data.
represent and manipulate fields of data
virtual void FinalizeThreadedData(vtkLagrangianThreadedData *vtkNotUsed(data))
Let the model finalize and deallocate a user data at thread level This method is called serially for ...
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
bool UseInitialIntegrationTime
std::pair< ArrayVal, std::string > ArrayMapVal
virtual void ParticleAboutToBeDeleted(vtkLagrangianParticle *vtkNotUsed(particle))
Method to be reimplemented if needed in inherited classes.
virtual void InitializeParticle(vtkLagrangianParticle *vtkNotUsed(particle))
Initialize a particle by setting user variables and perform any user model specific operation.
std::queue< PassThroughParticlesItem > PassThroughParticlesType
abstract class to specify cell behavior
std::map< int, ArrayMapVal > InputArrays
represent and manipulate cell attribute data
a simple class to control print indentation
dynamic, self-adjusting array of int
struct to hold a user data
vtkNew< vtkStringArray > SurfaceArrayEnumValues
std::pair< unsigned int, vtkLagrangianParticle * > PassThroughParticlesItem
virtual int FunctionValues(double *x, double *f)
Evaluate functions at x_j.
an abstract base class for locators which find cells
Basis class for Lagrangian particles.
vtkNew< vtkDoubleArray > SurfaceArrayDefaultValues
vtkAbstractCellLocator * Locator
abstract class to specify dataset behavior
Abstract superclass for all arrays.
virtual bool CheckAdaptiveStepReintegration(vtkLagrangianParticle *vtkNotUsed(particle))
Method to be reimplemented if needed in inherited classes.
std::mutex ParticleQueueMutex
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...
concrete dataset represents vertices, lines, polygons, and triangle strips
provides thread-safe access to cells
vtkNew< vtkIntArray > SeedArrayTypes
a vtkAbstractArray subclass for strings
dynamic, self-adjusting array of double
bool NonPlanarQuadSupport
vtkNew< vtkIntArray > SurfaceArrayTypes
vtkWeakPointer< vtkLagrangianParticleTracker > Tracker
Integrate a set of ordinary differential equations (initial value problem) in time.
general representation of visualization data
std::vector< std::pair< int, std::string > > enumValues
virtual void ParallelManualShift(vtkLagrangianParticle *vtkNotUsed(particle))
Method called by parallel algorithm after receiving a particle from stream if PManualShift flag has b...