VTK
9.1.0
|
vtkFunctionSet abstract implementation to be used in the vtkLagrangianParticleTracker integrator. More...
#include <vtkLagrangianBasicIntegrationModel.h>
Classes | |
struct | ArrayVal |
struct | SurfaceArrayDescription |
Public Types | |
enum | SurfaceType { SURFACE_TYPE_MODEL = 0 , SURFACE_TYPE_TERM = 1 , SURFACE_TYPE_BOUNCE = 2 , SURFACE_TYPE_BREAK = 3 , SURFACE_TYPE_PASS = 4 } |
enum | VariableStep { VARIABLE_STEP_PREV = -1 , VARIABLE_STEP_CURRENT = 0 , VARIABLE_STEP_NEXT = 1 } |
typedef vtkFunctionSet | Superclass |
typedef enum vtkLagrangianBasicIntegrationModel::SurfaceType | SurfaceType |
typedef enum vtkLagrangianBasicIntegrationModel::VariableStep | VariableStep |
typedef std::pair< unsigned int, vtkLagrangianParticle * > | PassThroughParticlesItem |
typedef std::queue< PassThroughParticlesItem > | PassThroughParticlesType |
Public Types inherited from vtkFunctionSet | |
typedef vtkObject | Superclass |
Public Member Functions | |
virtual vtkTypeBool | IsA (const char *type) |
Return 1 if this class is the same type of (or a subclass of) the named class. | |
vtkLagrangianBasicIntegrationModel * | NewInstance () const |
void | PrintSelf (ostream &os, vtkIndent indent) override |
Methods invoked by print to print information about the object including superclasses. | |
int | FunctionValues (double *x, double *f, void *userData) override |
Evaluate integration model velocity f at position x. | |
virtual void | SetTracker (vtkLagrangianParticleTracker *Tracker) |
Set the parent tracker. | |
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 nullptr Uses SurfaceType array from the intersected surface cell to compute the interaction. | |
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, fieldAssociation and a name. | |
virtual bool | FindInLocators (double *x, vtkLagrangianParticle *particle, vtkDataSet *&dataset, vtkIdType &cellId, vtkAbstractCellLocator *&loc, double *&weights) |
Look for a dataset in this integration model containing the point x. | |
virtual void | InitializeParticle (vtkLagrangianParticle *vtkNotUsed(particle)) |
Initialize a particle by setting user variables and perform any user model specific operation. | |
virtual bool | CheckAdaptiveStepReintegration (vtkLagrangianParticle *vtkNotUsed(particle)) |
Method to be reimplemented if needed in inherited classes. | |
virtual bool | CheckFreeFlightTermination (vtkLagrangianParticle *vtkNotUsed(particle)) |
Method to be reimplemented if needed in inherited classes. | |
virtual vtkStringArray * | GetSeedArrayNames () |
Get the seed arrays expected name Used Only be the vtkLagrangianSeedHelper in ParaView plugins. | |
virtual vtkIntArray * | GetSeedArrayComps () |
Get the seed arrays expected number of components Used Only be the vtkLagrangianSeedHelper in ParaView plugins. | |
virtual vtkIntArray * | GetSeedArrayTypes () |
Get the seed arrays expected type Used Only be the vtkLagrangianSeedHelper in ParaView plugins. | |
virtual vtkStringArray * | GetSurfaceArrayNames () |
Get the surface arrays expected name Used Only be the vtkLagrangianSurfaceHelper in ParaView plugins. | |
virtual vtkIntArray * | GetSurfaceArrayTypes () |
Get the surface arrays expected type Used Only be the vtkLagrangianSurfaceHelper in ParaView plugins. | |
virtual vtkStringArray * | GetSurfaceArrayEnumValues () |
Get the surface arrays expected values and associated enums Used Only be the vtkLagrangianSurfaceHelper in ParaView plugins. | |
virtual vtkDoubleArray * | GetSurfaceArrayDefaultValues () |
Get the surface arrays default values for each leaf Used Only be the vtkLagrangianSurfaceHelper in ParaView plugins. | |
virtual vtkIntArray * | GetSurfaceArrayComps () |
Get the seed array expected number of components Used Only be the vtkLagrangianSurfaceHelper in ParaView plugins. | |
virtual bool | ManualIntegration (vtkInitialValueProblemSolver *integrator, double *xcur, double *xnext, double t, double &delT, double &delTActual, double minStep, double maxStep, double maxError, double cellLength, double &error, int &integrationResult, vtkLagrangianParticle *particle) |
Let the model define it's own way to integrate Signature is very close to the integrator method signature output is expected to be the same, see vtkInitialValueProblemSolver::ComputeNextStep for reference xcur is the current particle variables xnext is the next particle variable t is the current integration time delT is the timeStep, which is also an output for adaptative algorithm delTActual is the time step output corresponding to the actual movement of the particle minStep is the minimum step time for adaptative algorithm maxStep is the maximum step time for adaptative algorithm maxError is the maximum acceptable error error is the output of actual error integrationResult is the result of the integration, see vtkInitialValueProblemSolver::ErrorCodes for error report otherwise it should be zero. | |
virtual void | ParallelManualShift (vtkLagrangianParticle *vtkNotUsed(particle)) |
Method called by parallel algorithm after receiving a particle from stream if PManualShift flag has been set to true on the particle. | |
virtual vtkLagrangianThreadedData * | InitializeThreadedData () |
Let the model allocate and initialize a threaded data. | |
virtual void | FinalizeThreadedData (vtkLagrangianThreadedData *&data) |
Let the model finalize and deallocate a user data at thread level This method is called serially for each thread and does not require to be thread safe. | |
virtual bool | FinalizeOutputs (vtkPolyData *vtkNotUsed(particlePathsOutput), vtkDataObject *vtkNotUsed(interractionOutput)) |
Enable model post process on output Return true if successful, false otherwise Empty and Always return true with basic model. | |
virtual void | PreParticleInitalization () |
Allow for model setup prior to Particle Initalization. | |
virtual void | PreIntegrate (std::queue< vtkLagrangianParticle * > &vtkNotUsed(particles)) |
Enable model to modify particle before integration. | |
virtual vtkAbstractArray * | GetSeedArray (int idx, vtkPointData *pointData) |
Get a seed array, as set in setInputArrayToProcess from the provided seed point data. | |
virtual void | SetNumberOfTrackedUserData (int) |
Set/Get the number of tracked user data attached to the particles. | |
virtual int | GetNumberOfTrackedUserData () |
virtual void | InitializePathData (vtkFieldData *data) |
Method used by the LPT to initialize data insertion in the provided vtkFieldData. | |
virtual void | InitializeInteractionData (vtkFieldData *data) |
Method used by the LPT to initialize data insertion in the provided vtkFieldData. | |
virtual void | InitializeParticleData (vtkFieldData *particleData, int maxTuples=0) |
Method used by the LPT to initialize data insertion in the provided vtkFieldData. | |
virtual void | InsertPathData (vtkLagrangianParticle *particle, vtkFieldData *data) |
Method used by the LPT to insert data from the partice into the provided vtkFieldData. | |
virtual void | InsertInteractionData (vtkLagrangianParticle *particle, vtkFieldData *data) |
Method used by the LPT to insert data from the partice into the provided vtkFieldData. | |
virtual void | InsertParticleData (vtkLagrangianParticle *particle, vtkFieldData *data, int stepEnum) |
Method used by the LPT to insert data from the partice into the provided vtkFieldData. | |
virtual void | InsertParticleSeedData (vtkLagrangianParticle *particle, vtkFieldData *data) |
Method used by the LPT to insert data from the partice into the provided vtkFieldData. | |
virtual void | ParticleAboutToBeDeleted (vtkLagrangianParticle *vtkNotUsed(particle)) |
Method to be reimplemented if needed in inherited classes. | |
virtual void | InsertSurfaceInteractionData (vtkLagrangianParticle *vtkNotUsed(particle), vtkPointData *vtkNotUsed(particleData)) |
Method to be reimplemented if needed in inherited classes. | |
virtual int | FunctionValues (double *x, double *f) |
Evaluate functions at x_j. | |
virtual int | FunctionValues (double *x, double *f, void *vtkNotUsed(userData)) |
virtual void | SetLocator (vtkAbstractCellLocator *locator) |
Set/Get the locator used to locate cells in the datasets. | |
virtual vtkAbstractCellLocator * | GetLocator () |
Set/Get the locator used to locate cells in the datasets. | |
virtual bool | GetLocatorsBuilt () |
Get the state of the current locators. | |
virtual void | SetLocatorsBuilt (bool) |
Get the state of the current locators. | |
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 Locator member of this class The surface flag allow to manage surfaces datasets for surface interaction instead of flow datasets surfaceFlatIndex, used only with composite surface, in order to identify the flatIndex of the surface for particle interaction. | |
virtual void | ClearDataSets (bool surface=false) |
Add a dataset to locate cells in This create a specific locator for the provided dataset using the Locator member of this class The surface flag allow to manage surfaces datasets for surface interaction instead of flow datasets surfaceFlatIndex, used only with composite surface, in order to identify the flatIndex of the surface for particle interaction. | |
virtual void | SetUseInitialIntegrationTime (bool) |
Set/Get the Use of initial integration input array to process. | |
virtual bool | GetUseInitialIntegrationTime () |
Set/Get the Use of initial integration input array to process. | |
virtual void | UseInitialIntegrationTimeOn () |
Set/Get the Use of initial integration input array to process. | |
virtual void | UseInitialIntegrationTimeOff () |
Set/Get the Use of initial integration input array to process. | |
virtual double | GetTolerance () |
Get the tolerance to use with this model. | |
virtual double | GetLocatorTolerance () |
Get the specific tolerance to use with the locators. | |
virtual bool | FindInLocators (double *x, vtkLagrangianParticle *particle, vtkDataSet *&dataset, vtkIdType &cellId) |
Convienience methods to call FindInLocators with less arguments THESE METHODS ARE NOT THREAD-SAFE. | |
virtual bool | FindInLocators (double *x, vtkLagrangianParticle *particle) |
Convienience methods to call FindInLocators with less arguments THESE METHODS ARE NOT THREAD-SAFE. | |
virtual void | SetNonPlanarQuadSupport (bool) |
Set/Get Non Planar Quad Support. | |
virtual bool | GetNonPlanarQuadSupport () |
Set/Get Non Planar Quad Support. | |
virtual void | NonPlanarQuadSupportOn () |
Set/Get Non Planar Quad Support. | |
virtual void | NonPlanarQuadSupportOff () |
Set/Get Non Planar Quad Support. | |
virtual int | GetWeightsSize () |
Get the maximum weights size necessary for calling FindInLocators with weights. | |
Public Member Functions inherited from vtkFunctionSet | |
virtual vtkTypeBool | IsA (const char *type) |
Return 1 if this class is the same type of (or a subclass of) the named class. | |
vtkFunctionSet * | NewInstance () const |
void | PrintSelf (ostream &os, vtkIndent indent) override |
Methods invoked by print to print information about the object including superclasses. | |
virtual int | FunctionValues (double *x, double *f) |
Evaluate functions at x_j. | |
virtual int | FunctionValues (double *x, double *f, void *vtkNotUsed(userData)) |
virtual int | GetNumberOfFunctions () |
Return the number of functions. | |
virtual int | GetNumberOfIndependentVariables () |
Return the number of independent variables. | |
Public Member Functions inherited from vtkObject | |
vtkBaseTypeMacro (vtkObject, vtkObjectBase) | |
virtual void | DebugOn () |
Turn debugging output on. | |
virtual void | DebugOff () |
Turn debugging output off. | |
bool | GetDebug () |
Get the value of the debug flag. | |
void | SetDebug (bool debugFlag) |
Set the value of the debug flag. | |
virtual void | Modified () |
Update the modification time for this object. | |
virtual vtkMTimeType | GetMTime () |
Return this object's modified time. | |
void | PrintSelf (ostream &os, vtkIndent indent) override |
Methods invoked by print to print information about the object including superclasses. | |
void | RemoveObserver (unsigned long tag) |
void | RemoveObservers (unsigned long event) |
void | RemoveObservers (const char *event) |
void | RemoveAllObservers () |
vtkTypeBool | HasObserver (unsigned long event) |
vtkTypeBool | HasObserver (const char *event) |
int | InvokeEvent (unsigned long event) |
int | InvokeEvent (const char *event) |
unsigned long | AddObserver (unsigned long event, vtkCommand *, float priority=0.0f) |
Allow people to add/remove/invoke observers (callbacks) to any VTK object. | |
unsigned long | AddObserver (const char *event, vtkCommand *, float priority=0.0f) |
Allow people to add/remove/invoke observers (callbacks) to any VTK object. | |
vtkCommand * | GetCommand (unsigned long tag) |
Allow people to add/remove/invoke observers (callbacks) to any VTK object. | |
void | RemoveObserver (vtkCommand *) |
Allow people to add/remove/invoke observers (callbacks) to any VTK object. | |
void | RemoveObservers (unsigned long event, vtkCommand *) |
Allow people to add/remove/invoke observers (callbacks) to any VTK object. | |
void | RemoveObservers (const char *event, vtkCommand *) |
Allow people to add/remove/invoke observers (callbacks) to any VTK object. | |
vtkTypeBool | HasObserver (unsigned long event, vtkCommand *) |
Allow people to add/remove/invoke observers (callbacks) to any VTK object. | |
vtkTypeBool | HasObserver (const char *event, vtkCommand *) |
Allow people to add/remove/invoke observers (callbacks) to any VTK object. | |
template<class U , class T > | |
unsigned long | AddObserver (unsigned long event, U observer, void(T::*callback)(), float priority=0.0f) |
Overloads to AddObserver that allow developers to add class member functions as callbacks for events. | |
template<class U , class T > | |
unsigned long | AddObserver (unsigned long event, U observer, void(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f) |
Overloads to AddObserver that allow developers to add class member functions as callbacks for events. | |
template<class U , class T > | |
unsigned long | AddObserver (unsigned long event, U observer, bool(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f) |
Allow user to set the AbortFlagOn() with the return value of the callback method. | |
int | InvokeEvent (unsigned long event, void *callData) |
This method invokes an event and return whether the event was aborted or not. | |
int | InvokeEvent (const char *event, void *callData) |
This method invokes an event and return whether the event was aborted or not. | |
Public Member Functions inherited from vtkObjectBase | |
const char * | GetClassName () const |
Return the class name as a string. | |
virtual vtkTypeBool | IsA (const char *name) |
Return 1 if this class is the same type of (or a subclass of) the named class. | |
virtual vtkIdType | GetNumberOfGenerationsFromBase (const char *name) |
Given the name of a base class of this class type, return the distance of inheritance between this class type and the named class (how many generations of inheritance are there between this class and the named class). | |
virtual void | Delete () |
Delete a VTK object. | |
virtual void | FastDelete () |
Delete a reference to this object. | |
void | InitializeObjectBase () |
void | Print (ostream &os) |
Print an object to an ostream. | |
virtual void | Register (vtkObjectBase *o) |
Increase the reference count (mark as used by another object). | |
virtual void | UnRegister (vtkObjectBase *o) |
Decrease the reference count (release by another object). | |
int | GetReferenceCount () |
Return the current reference count of this object. | |
void | SetReferenceCount (int) |
Sets the reference count. | |
bool | GetIsInMemkind () const |
A local state flag that remembers whether this object lives in the normal or extended memory space. | |
virtual void | PrintHeader (ostream &os, vtkIndent indent) |
Methods invoked by print to print information about the object including superclasses. | |
virtual void | PrintTrailer (ostream &os, vtkIndent indent) |
Methods invoked by print to print information about the object including superclasses. | |
Static Public Member Functions | |
static vtkTypeBool | IsTypeOf (const char *type) |
static vtkLagrangianBasicIntegrationModel * | SafeDownCast (vtkObjectBase *o) |
Static Public Member Functions inherited from vtkFunctionSet | |
static vtkTypeBool | IsTypeOf (const char *type) |
static vtkFunctionSet * | SafeDownCast (vtkObjectBase *o) |
Static Public Member Functions inherited from vtkObject | |
static vtkObject * | New () |
Create an object with Debug turned off, modified time initialized to zero, and reference counting on. | |
static void | BreakOnError () |
This method is called when vtkErrorMacro executes. | |
static void | SetGlobalWarningDisplay (int val) |
This is a global flag that controls whether any debug, warning or error messages are displayed. | |
static void | GlobalWarningDisplayOn () |
This is a global flag that controls whether any debug, warning or error messages are displayed. | |
static void | GlobalWarningDisplayOff () |
This is a global flag that controls whether any debug, warning or error messages are displayed. | |
static int | GetGlobalWarningDisplay () |
This is a global flag that controls whether any debug, warning or error messages are displayed. | |
Static Public Member Functions inherited from vtkObjectBase | |
static vtkTypeBool | IsTypeOf (const char *name) |
Return 1 if this class type is the same type of (or a subclass of) the named class. | |
static vtkIdType | GetNumberOfGenerationsFromBaseType (const char *name) |
Given a the name of a base class of this class type, return the distance of inheritance between this class type and the named class (how many generations of inheritance are there between this class and the named class). | |
static vtkObjectBase * | New () |
Create an object with Debug turned off, modified time initialized to zero, and reference counting on. | |
static void | SetMemkindDirectory (const char *directoryname) |
The name of a directory, ideally mounted -o dax, to memory map an extended memory space within. | |
static bool | GetUsingMemkind () |
A global state flag that controls whether vtkObjects are constructed in the usual way (the default) or within the extended memory space. | |
Protected Types | |
typedef std::pair< ArrayVal, std::string > | ArrayMapVal |
typedef struct vtkLagrangianBasicIntegrationModel::SurfaceArrayDescription | SurfaceArrayDescription |
Protected Member Functions | |
virtual vtkObjectBase * | NewInstanceInternal () const |
vtkLagrangianBasicIntegrationModel () | |
~vtkLagrangianBasicIntegrationModel () override | |
virtual int | FunctionValues (vtkLagrangianParticle *particle, vtkDataSet *dataSet, vtkIdType cellId, double *weights, double *x, double *f)=0 |
Actually compute the integration model velocity field pure abstract, to be implemented in inherited class This method implementation should be thread-safe. | |
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, if so return the cellId and output the cell containing the point and the weights of the point in the cell This method is thread-safe, its reimplementation should also be. | |
virtual bool | TerminateParticle (vtkLagrangianParticle *particle) |
Terminate a particle, by positioning flags. | |
virtual bool | BounceParticle (vtkLagrangianParticle *particle, vtkDataSet *surface, vtkIdType cellId) |
Bounce a particle, using the normal of the cell it bounces on. | |
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 intersected cells normals Return true to record the interaction, false otherwise This method is thread-safe and uses vtkLagrangianBasicIntegrationModel::ParticleQueueMutex to access the particles queue, its reimplementation should also be. | |
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 classes willing to implement specific particle surface interactions Return true to record the interaction, false otherwise This method is thread-safe and should use vtkLagrangianBasicIntegrationModel::ParticleQueueMutex to add particles to the particles queue, see BreakParticle for an example. | |
virtual bool | IntersectWithLine (vtkLagrangianParticle *particle, 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 implement specific line/surface intersection This method is thread-safe. | |
virtual void | InterpolateNextParticleVariables (vtkLagrangianParticle *particle, double interpolationFactor, bool forceInside=false) |
compute all particle variables using interpolation factor This method is thread-safe. | |
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 with it This method is thread-safe. | |
virtual vtkAbstractArray * | GetSeedArray (int idx, vtkLagrangianParticle *particle) |
Get a seed array, as set in setInputArrayToProcess from the provided particle seed data Access then the first tuple to access the data This method is thread-safe. | |
virtual bool | GetFlowOrSurfaceData (vtkLagrangianParticle *particle, int idx, vtkDataSet *flowDataSet, vtkIdType tupleId, double *weights, double *data) |
Directly get a double value from flow or surface data as defined in SetInputArrayToProcess. | |
virtual int | GetFlowOrSurfaceDataNumberOfComponents (int idx, vtkDataSet *dataSet) |
Recover the number of components for a specified array index if it has been set using SetInputArrayToProcess, with provided dataset. | |
virtual int | GetFlowOrSurfaceDataFieldAssociation (int idx) |
Recover a field association for a specified array index if it has been set using SetInputArrayToProcess This method is thread-safe. | |
virtual void | ComputeSurfaceDefaultValues (const char *arrayName, vtkDataSet *dataset, int nComponent, double *defaultValues) |
Method used by ParaView surface helper to get default values for each leaf of each dataset of surface nComponents could be retrieved with arrayName but is given for simplication purposes. | |
Protected Member Functions inherited from vtkFunctionSet | |
virtual vtkObjectBase * | NewInstanceInternal () const |
vtkFunctionSet () | |
~vtkFunctionSet () override=default | |
Protected Member Functions inherited from vtkObject | |
vtkObject () | |
~vtkObject () override | |
void | RegisterInternal (vtkObjectBase *, vtkTypeBool check) override |
void | UnRegisterInternal (vtkObjectBase *, vtkTypeBool check) override |
void | InternalGrabFocus (vtkCommand *mouseEvents, vtkCommand *keypressEvents=nullptr) |
These methods allow a command to exclusively grab all events. | |
void | InternalReleaseFocus () |
These methods allow a command to exclusively grab all events. | |
Protected Member Functions inherited from vtkObjectBase | |
vtkObjectBase () | |
virtual | ~vtkObjectBase () |
virtual void | RegisterInternal (vtkObjectBase *, vtkTypeBool check) |
virtual void | UnRegisterInternal (vtkObjectBase *, vtkTypeBool check) |
virtual void | ReportReferences (vtkGarbageCollector *) |
vtkObjectBase (const vtkObjectBase &) | |
void | operator= (const vtkObjectBase &) |
Additional Inherited Members | |
Static Protected Member Functions inherited from vtkObjectBase | |
static vtkMallocingFunction | GetCurrentMallocFunction () |
static vtkReallocingFunction | GetCurrentReallocFunction () |
static vtkFreeingFunction | GetCurrentFreeFunction () |
static vtkFreeingFunction | GetAlternateFreeFunction () |
vtkFunctionSet abstract implementation to be used in the vtkLagrangianParticleTracker integrator.
This vtkFunctionSet abstract implementation is meant to be used as a parameter of vtkLagrangianParticleTracker. It manages multiple dataset locators in order to evaluate the vtkFunctionSet::FunctionValues method. The actual FunctionValues implementation should be found in the class inheriting this class. Input Arrays to process are expected as follows: Index 0 : "SurfaceType" array of surface input of the particle tracker
Inherited classes MUST implement int FunctionValues(vtkDataSet* detaSet, vtkIdType cellId, double* weights, double * x, double * f); to define how the integration works.
Inherited classes could reimplement InteractWithSurface or other surface interaction methods to change the way particles interact with surfaces.
Inherited classes could reimplement IntersectWithLine to use a specific algorithm to intersect particles and surface cells.
Inherited classes could reimplement CheckFreeFlightTermination to set the way particles terminate in free flight.
Inherited classes could reimplement Initialize*Data and Insert*Data in order to customize the output of the tracker
Definition at line 87 of file vtkLagrangianBasicIntegrationModel.h.
Definition at line 90 of file vtkLagrangianBasicIntegrationModel.h.
typedef enum vtkLagrangianBasicIntegrationModel::SurfaceType vtkLagrangianBasicIntegrationModel::SurfaceType |
typedef enum vtkLagrangianBasicIntegrationModel::VariableStep vtkLagrangianBasicIntegrationModel::VariableStep |
typedef std::pair<unsigned int, vtkLagrangianParticle*> vtkLagrangianBasicIntegrationModel::PassThroughParticlesItem |
Definition at line 109 of file vtkLagrangianBasicIntegrationModel.h.
typedef std::queue<PassThroughParticlesItem> vtkLagrangianBasicIntegrationModel::PassThroughParticlesType |
Definition at line 110 of file vtkLagrangianBasicIntegrationModel.h.
|
protected |
Definition at line 621 of file vtkLagrangianBasicIntegrationModel.h.
|
protected |
Enumerator | |
---|---|
SURFACE_TYPE_MODEL | |
SURFACE_TYPE_TERM | |
SURFACE_TYPE_BOUNCE | |
SURFACE_TYPE_BREAK | |
SURFACE_TYPE_PASS |
Definition at line 93 of file vtkLagrangianBasicIntegrationModel.h.
Enumerator | |
---|---|
VARIABLE_STEP_PREV | |
VARIABLE_STEP_CURRENT | |
VARIABLE_STEP_NEXT |
Definition at line 102 of file vtkLagrangianBasicIntegrationModel.h.
|
protected |
|
overrideprotected |
|
static |
|
virtual |
Return 1 if this class is the same type of (or a subclass of) the named class.
Returns 0 otherwise. This method works in combination with vtkTypeMacro found in vtkSetGet.h.
Reimplemented from vtkFunctionSet.
Reimplemented in vtkLagrangianMatidaIntegrationModel.
|
static |
|
protectedvirtual |
Reimplemented from vtkFunctionSet.
Reimplemented in vtkLagrangianMatidaIntegrationModel.
vtkLagrangianBasicIntegrationModel * vtkLagrangianBasicIntegrationModel::NewInstance | ( | ) | const |
|
overridevirtual |
Methods invoked by print to print information about the object including superclasses.
Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.
Reimplemented from vtkFunctionSet.
Reimplemented in vtkLagrangianMatidaIntegrationModel.
|
override |
Evaluate integration model velocity f at position x.
Look for the cell containing the position x in all its added datasets if found this will call FunctionValues(vtkDataSet* detaSet, vtkIdType cellId, double* x, double* f) This method is thread safe.
|
virtual |
Set/Get the locator used to locate cells in the datasets.
Only the locator class matter here, as it is used only to create NewInstance of it. Default is a vtkCellLocator.
|
virtual |
Set/Get the locator used to locate cells in the datasets.
Only the locator class matter here, as it is used only to create NewInstance of it. Default is a vtkCellLocator.
|
virtual |
Get the state of the current locators.
|
virtual |
Get the state of the current locators.
|
virtual |
Set the parent tracker.
|
virtual |
Add a dataset to locate cells in This create a specific locator for the provided dataset using the Locator member of this class The surface flag allow to manage surfaces datasets for surface interaction instead of flow datasets surfaceFlatIndex, used only with composite surface, in order to identify the flatIndex of the surface for particle interaction.
|
virtual |
Add a dataset to locate cells in This create a specific locator for the provided dataset using the Locator member of this class The surface flag allow to manage surfaces datasets for surface interaction instead of flow datasets surfaceFlatIndex, used only with composite surface, in order to identify the flatIndex of the surface for particle interaction.
|
virtual |
Set/Get the Use of initial integration input array to process.
|
virtual |
Set/Get the Use of initial integration input array to process.
|
virtual |
Set/Get the Use of initial integration input array to process.
|
virtual |
Set/Get the Use of initial integration input array to process.
|
virtual |
Get the tolerance to use with this model.
|
virtual |
Get the specific tolerance to use with the locators.
|
virtual |
Interact the current particle with a surfaces Return a particle to record as interaction point if not nullptr Uses SurfaceType array from the intersected surface cell to compute the interaction.
MODEL : vtkLagrangianBasicIntegrationModel::InteractWithSurface method will be used, usually defined in inherited classes TERM : vtkLagrangianBasicIntegrationModel::Terminate method will be used BOUNCE : vtkLagrangianBasicIntegrationModel::Bounce method will be used BREAK_UP : vtkLagrangianBasicIntegrationModel::BreakUp method will be used PASS : The interaction will be recorded with no effect on the particle
|
virtual |
Set a input array to process at a specific index, identified by a port, connection, fieldAssociation and a name.
Each inherited class can specify their own input array to process
|
virtual |
Look for a dataset in this integration model containing the point x.
return false if out of domain, return true and data to recover the cell if in domain. does not filter out ghost cells. convenience method with less outputs. Provide a particle if a dataset/locator cache can be used. This method is thread-safe.
|
virtual |
Convienience methods to call FindInLocators with less arguments THESE METHODS ARE NOT THREAD-SAFE.
|
virtual |
Convienience methods to call FindInLocators with less arguments THESE METHODS ARE NOT THREAD-SAFE.
|
inlinevirtual |
Initialize a particle by setting user variables and perform any user model specific operation.
empty in basic implementation.
Definition at line 239 of file vtkLagrangianBasicIntegrationModel.h.
|
inlinevirtual |
Method to be reimplemented if needed in inherited classes.
Allows a inherited class to check if adaptive step reintegration should be done or not, this method is called just before potentially performing adaptative step reintegration, the current particle is passed as an argument. This method always returns true in this basis class.
Definition at line 249 of file vtkLagrangianBasicIntegrationModel.h.
|
inlinevirtual |
Method to be reimplemented if needed in inherited classes.
Allows a inherited class to check if a particle should be terminated only based on particle parameters. This method should return true if the particle must be terminated, false otherwise. It always returns false in this basis class. This method is thread-safe, its reimplementation should still be thread-safe.
Definition at line 262 of file vtkLagrangianBasicIntegrationModel.h.
|
virtual |
Set/Get Non Planar Quad Support.
|
virtual |
Set/Get Non Planar Quad Support.
|
virtual |
Set/Get Non Planar Quad Support.
|
virtual |
Set/Get Non Planar Quad Support.
|
virtual |
Get the seed arrays expected name Used Only be the vtkLagrangianSeedHelper in ParaView plugins.
|
virtual |
Get the seed arrays expected number of components Used Only be the vtkLagrangianSeedHelper in ParaView plugins.
|
virtual |
Get the seed arrays expected type Used Only be the vtkLagrangianSeedHelper in ParaView plugins.
|
virtual |
Get the surface arrays expected name Used Only be the vtkLagrangianSurfaceHelper in ParaView plugins.
|
virtual |
Get the surface arrays expected type Used Only be the vtkLagrangianSurfaceHelper in ParaView plugins.
|
virtual |
Get the surface arrays expected values and associated enums Used Only be the vtkLagrangianSurfaceHelper in ParaView plugins.
|
virtual |
Get the surface arrays default values for each leaf Used Only be the vtkLagrangianSurfaceHelper in ParaView plugins.
|
virtual |
Get the seed array expected number of components Used Only be the vtkLagrangianSurfaceHelper in ParaView plugins.
|
virtual |
Get the maximum weights size necessary for calling FindInLocators with weights.
|
virtual |
Let the model define it's own way to integrate Signature is very close to the integrator method signature output is expected to be the same, see vtkInitialValueProblemSolver::ComputeNextStep for reference xcur is the current particle variables xnext is the next particle variable t is the current integration time delT is the timeStep, which is also an output for adaptative algorithm delTActual is the time step output corresponding to the actual movement of the particle minStep is the minimum step time for adaptative algorithm maxStep is the maximum step time for adaptative algorithm maxError is the maximum acceptable error error is the output of actual error integrationResult is the result of the integration, see vtkInitialValueProblemSolver::ErrorCodes for error report otherwise it should be zero.
be aware that only stagnating OUT_OF_DOMAIN will be considered actual out of domain error. Return true if manual integration was used, false otherwise Simply return false in vtkLagrangianBasicIntegrationModel implementation. This method is thread-safe, its reimplementation should still be thread-safe.
|
inlinevirtual |
Method called by parallel algorithm after receiving a particle from stream if PManualShift flag has been set to true on the particle.
Does nothing in base implementation
Definition at line 365 of file vtkLagrangianBasicIntegrationModel.h.
|
virtual |
Let the model allocate and initialize a threaded data.
This method is thread-safe, its reimplementation should still be thread-safe.
|
virtual |
Let the model finalize and deallocate a user data at thread level This method is called serially for each thread and does not require to be thread safe.
|
inlinevirtual |
Enable model post process on output Return true if successful, false otherwise Empty and Always return true with basic model.
Definition at line 384 of file vtkLagrangianBasicIntegrationModel.h.
|
inlinevirtual |
Allow for model setup prior to Particle Initalization.
Definition at line 393 of file vtkLagrangianBasicIntegrationModel.h.
|
inlinevirtual |
Enable model to modify particle before integration.
Definition at line 398 of file vtkLagrangianBasicIntegrationModel.h.
|
virtual |
Get a seed array, as set in setInputArrayToProcess from the provided seed point data.
|
virtual |
Set/Get the number of tracked user data attached to the particles.
Tracked user data are data that are related to each particle position but are not integrated like the user variables. They are not saved in the particle path. Default is 0.
|
virtual |
|
virtual |
Method used by the LPT to initialize data insertion in the provided vtkFieldData.
It initializes Id, ParentID, SeedID and Termination. Reimplement as needed in acccordance with InsertPathData.
|
virtual |
Method used by the LPT to initialize data insertion in the provided vtkFieldData.
It initializes Interaction. Reimplement as needed in acccordance with InsertInteractionData.
|
virtual |
Method used by the LPT to initialize data insertion in the provided vtkFieldData.
It initializes StepNumber, ParticleVelocity, IntegrationTime. Reimplement as needed in acccordance with InsertParticleData.
|
virtual |
Method used by the LPT to insert data from the partice into the provided vtkFieldData.
It inserts Id, ParentID, SeedID and Termination. Reimplement as needed in acccordance with InitializePathData.
|
virtual |
Method used by the LPT to insert data from the partice into the provided vtkFieldData.
It inserts Interaction. Reimplement as needed in acccordance with InitializeInteractionData.
|
virtual |
Method used by the LPT to insert data from the partice into the provided vtkFieldData.
It inserts StepNumber, ParticleVelocity, IntegrationTime. stepEnum enables to select which data to insert, Prev, Current or Next. Reimplement as needed in acccordance with InitializeParticleData.
|
virtual |
Method used by the LPT to insert data from the partice into the provided vtkFieldData.
It inserts all arrays from the original SeedData. Reimplement as needed.
|
inlinevirtual |
Method to be reimplemented if needed in inherited classes.
Allows a inherited class to take action just before a particle is deleted This can be practical when working with vtkLagrangianParticle::TemporaryUserData. This can be called with not fully initialized particle.
Definition at line 473 of file vtkLagrangianBasicIntegrationModel.h.
|
inlinevirtual |
Method to be reimplemented if needed in inherited classes.
Allows a inherited class to add surface interaction data from the model
Definition at line 479 of file vtkLagrangianBasicIntegrationModel.h.
|
protectedpure virtual |
Actually compute the integration model velocity field pure abstract, to be implemented in inherited class This method implementation should be thread-safe.
Implemented in vtkLagrangianMatidaIntegrationModel, and vtkLagrangianMatidaIntegrationModel.
|
protectedvirtual |
Look in the given dataset and associated locator to see if it contains the point x, if so return the cellId and output the cell containing the point and the weights of the point in the cell This method is thread-safe, its reimplementation should also be.
|
protectedvirtual |
Terminate a particle, by positioning flags.
Return true to record the interaction, false otherwise This method is thread-safe.
|
protectedvirtual |
Bounce a particle, using the normal of the cell it bounces on.
Return true to record the interaction, false otherwise This method is thread-safe.
|
protectedvirtual |
Breakup a particle at intersection point, by terminating it and creating two new particle using the intersected cells normals Return true to record the interaction, false otherwise This method is thread-safe and uses vtkLagrangianBasicIntegrationModel::ParticleQueueMutex to access the particles queue, its reimplementation should also be.
|
protectedvirtual |
Call vtkLagrangianBasicIntegrationModel::Terminate This method is to be reimplemented in inherited classes willing to implement specific particle surface interactions Return true to record the interaction, false otherwise This method is thread-safe and should use vtkLagrangianBasicIntegrationModel::ParticleQueueMutex to add particles to the particles queue, see BreakParticle for an example.
|
protectedvirtual |
Call vtkCell::IntersectWithLine This method is to be reimplemented in inherited classes willing to implement specific line/surface intersection This method is thread-safe.
|
protectedvirtual |
compute all particle variables using interpolation factor This method is thread-safe.
|
protectedvirtual |
Given a particle, check if it perforate a surface cell ie : interact with next step after interacting with it This method is thread-safe.
|
protectedvirtual |
Get a seed array, as set in setInputArrayToProcess from the provided particle seed data Access then the first tuple to access the data This method is thread-safe.
|
protectedvirtual |
Directly get a double value from flow or surface data as defined in SetInputArrayToProcess.
Make sure that data pointer is large enough using GetFlowOrSurfaceDataNumberOfComponents if needed. This method is thread-safe.
|
protectedvirtual |
Recover the number of components for a specified array index if it has been set using SetInputArrayToProcess, with provided dataset.
Returns -1 in case of error. This method is thread-safe.
|
protectedvirtual |
Recover a field association for a specified array index if it has been set using SetInputArrayToProcess This method is thread-safe.
|
protectedvirtual |
Method used by ParaView surface helper to get default values for each leaf of each dataset of surface nComponents could be retrieved with arrayName but is given for simplication purposes.
it is your responsibility to initialize all components of defaultValues[nComponent]
|
inlinevirtual |
Evaluate functions at x_j.
x and f have to point to valid double arrays of appropriate sizes obtained with GetNumberOfFunctions() and GetNumberOfIndependentVariables. If you inherit this class, make sure to reimplement at least one of the two FunctionValues signatures.
Reimplemented from vtkFunctionSet.
Reimplemented in vtkLagrangianMatidaIntegrationModel.
Definition at line 49 of file vtkFunctionSet.h.
|
inlinevirtual |
Reimplemented from vtkFunctionSet.
Reimplemented in vtkLagrangianMatidaIntegrationModel.
Definition at line 50 of file vtkFunctionSet.h.
|
protected |
Definition at line 611 of file vtkLagrangianBasicIntegrationModel.h.
|
protected |
Definition at line 612 of file vtkLagrangianBasicIntegrationModel.h.
|
protected |
Definition at line 613 of file vtkLagrangianBasicIntegrationModel.h.
|
protected |
Definition at line 614 of file vtkLagrangianBasicIntegrationModel.h.
|
protected |
Definition at line 615 of file vtkLagrangianBasicIntegrationModel.h.
|
protected |
Definition at line 622 of file vtkLagrangianBasicIntegrationModel.h.
|
protected |
Definition at line 630 of file vtkLagrangianBasicIntegrationModel.h.
|
protected |
Definition at line 632 of file vtkLagrangianBasicIntegrationModel.h.
|
protected |
Definition at line 633 of file vtkLagrangianBasicIntegrationModel.h.
|
protected |
Definition at line 635 of file vtkLagrangianBasicIntegrationModel.h.
|
protected |
Definition at line 636 of file vtkLagrangianBasicIntegrationModel.h.
|
protected |
Definition at line 637 of file vtkLagrangianBasicIntegrationModel.h.
|
protected |
Definition at line 638 of file vtkLagrangianBasicIntegrationModel.h.
|
protected |
Definition at line 639 of file vtkLagrangianBasicIntegrationModel.h.
|
protected |
Definition at line 641 of file vtkLagrangianBasicIntegrationModel.h.
|
protected |
Definition at line 642 of file vtkLagrangianBasicIntegrationModel.h.
|
protected |
Definition at line 643 of file vtkLagrangianBasicIntegrationModel.h.
|
protected |
Definition at line 644 of file vtkLagrangianBasicIntegrationModel.h.
|
protected |
Definition at line 645 of file vtkLagrangianBasicIntegrationModel.h.
|
protected |
Definition at line 646 of file vtkLagrangianBasicIntegrationModel.h.
|
protected |
Definition at line 647 of file vtkLagrangianBasicIntegrationModel.h.
|
protected |
Definition at line 648 of file vtkLagrangianBasicIntegrationModel.h.
|
protected |
Definition at line 650 of file vtkLagrangianBasicIntegrationModel.h.
|
protected |
Definition at line 651 of file vtkLagrangianBasicIntegrationModel.h.