 |
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...