VTK
9.0.3
|
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 |
![]() | |
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. More... | |
vtkLagrangianBasicIntegrationModel * | NewInstance () const |
void | PrintSelf (ostream &os, vtkIndent indent) override |
Methods invoked by print to print information about the object including superclasses. More... | |
int | FunctionValues (double *x, double *f, void *userData) override |
Evaluate integration model velocity f at position x. More... | |
virtual void | SetLocator (vtkAbstractCellLocator *locator) |
Set/Get the locator used to locate cells in the datasets. More... | |
virtual vtkAbstractCellLocator * | GetLocator () |
virtual bool | GetLocatorsBuilt () |
Get the state of the current locators. More... | |
virtual void | SetLocatorsBuilt (bool) |
virtual void | SetTracker (vtkLagrangianParticleTracker *Tracker) |
Set the parent tracker. More... | |
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. More... | |
virtual void | ClearDataSets (bool surface=false) |
virtual void | SetUseInitialIntegrationTime (bool) |
Set/Get the Use of initial integration input array to process. More... | |
virtual bool | GetUseInitialIntegrationTime () |
virtual void | UseInitialIntegrationTimeOn () |
virtual void | UseInitialIntegrationTimeOff () |
virtual double | GetTolerance () |
Get the tolerance to use with this model. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
virtual bool | FindInLocators (double *x, vtkLagrangianParticle *particle) |
virtual void | InitializeParticle (vtkLagrangianParticle *vtkNotUsed(particle)) |
Initialize a particle by setting user variables and perform any user model specific operation. More... | |
virtual bool | CheckAdaptiveStepReintegration (vtkLagrangianParticle *vtkNotUsed(particle)) |
Method to be reimplemented if needed in inherited classes. More... | |
virtual bool | CheckFreeFlightTermination (vtkLagrangianParticle *vtkNotUsed(particle)) |
Method to be reimplemented if needed in inherited classes. More... | |
virtual void | SetNonPlanarQuadSupport (bool) |
Set/Get Non Planar Quad Support. More... | |
virtual bool | GetNonPlanarQuadSupport () |
virtual void | NonPlanarQuadSupportOn () |
virtual void | NonPlanarQuadSupportOff () |
virtual vtkStringArray * | GetSeedArrayNames () |
Get the seed arrays expected name Used Only be the vtkLagrangianSeedHelper in ParaView plugins. More... | |
virtual vtkIntArray * | GetSeedArrayComps () |
Get the seed arrays expected number of components Used Only be the vtkLagrangianSeedHelper in ParaView plugins. More... | |
virtual vtkIntArray * | GetSeedArrayTypes () |
Get the seed arrays expected type Used Only be the vtkLagrangianSeedHelper in ParaView plugins. More... | |
virtual vtkStringArray * | GetSurfaceArrayNames () |
Get the surface arrays expected name Used Only be the vtkLagrangianSurfaceHelper in ParaView plugins. More... | |
virtual vtkIntArray * | GetSurfaceArrayTypes () |
Get the surface arrays expected type Used Only be the vtkLagrangianSurfaceHelper in ParaView plugins. More... | |
virtual vtkStringArray * | GetSurfaceArrayEnumValues () |
Get the surface arrays expected values and associated enums Used Only be the vtkLagrangianSurfaceHelper in ParaView plugins. More... | |
virtual vtkDoubleArray * | GetSurfaceArrayDefaultValues () |
Get the surface arrays default values for each leaf Used Only be the vtkLagrangianSurfaceHelper in ParaView plugins. More... | |
virtual vtkIntArray * | GetSurfaceArrayComps () |
Get the seed array expected number of components Used Only be the vtkLagrangianSurfaceHelper in ParaView plugins. More... | |
virtual int | GetWeightsSize () |
Get the maximum weights size necessary for calling FindInLocators with weights. More... | |
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. More... | |
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. More... | |
virtual void | InitializeThreadedData (vtkLagrangianThreadedData *vtkNotUsed(data)) |
Let the model allocate and initialize a threaded data. More... | |
virtual void | FinalizeThreadedData (vtkLagrangianThreadedData *vtkNotUsed(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. More... | |
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. More... | |
virtual void | PreIntegrate (std::queue< vtkLagrangianParticle * > &vtkNotUsed(particles)) |
Enable model to modify particle before integration. More... | |
virtual vtkAbstractArray * | GetSeedArray (int idx, vtkPointData *pointData) |
Get a seed array, as set in setInputArrayToProcess from the provided seed point data. More... | |
virtual void | SetNumberOfTrackedUserData (int) |
Set/Get the number of tracked user data attached to the particles. More... | |
virtual int | GetNumberOfTrackedUserData () |
virtual void | InitializePathData (vtkFieldData *data) |
Method used by the LPT to initialize data insertion in the provided vtkFieldData. More... | |
virtual void | InitializeInteractionData (vtkFieldData *data) |
Method used by the LPT to initialize data insertion in the provided vtkFieldData. More... | |
virtual void | InitializeParticleData (vtkFieldData *particleData, int maxTuples=0) |
Method used by the LPT to initialize data insertion in the provided vtkFieldData. More... | |
virtual void | InsertPathData (vtkLagrangianParticle *particle, vtkFieldData *data) |
Method used by the LPT to insert data from the partice into the provided vtkFieldData. More... | |
virtual void | InsertInteractionData (vtkLagrangianParticle *particle, vtkFieldData *data) |
Method used by the LPT to insert data from the partice into the provided vtkFieldData. More... | |
virtual void | InsertParticleData (vtkLagrangianParticle *particle, vtkFieldData *data, int stepEnum) |
Method used by the LPT to insert data from the partice into the provided vtkFieldData. More... | |
virtual void | InsertParticleSeedData (vtkLagrangianParticle *particle, vtkFieldData *data) |
Method used by the LPT to insert data from the partice into the provided vtkFieldData. More... | |
virtual void | ParticleAboutToBeDeleted (vtkLagrangianParticle *vtkNotUsed(particle)) |
Method to be reimplemented if needed in inherited classes. More... | |
![]() | |
vtkFunctionSet * | NewInstance () const |
virtual int | FunctionValues (double *x, double *f) |
Evaluate functions at x_j. More... | |
virtual int | FunctionValues (double *x, double *f, void *vtkNotUsed(userData)) |
virtual int | GetNumberOfFunctions () |
Return the number of functions. More... | |
virtual int | GetNumberOfIndependentVariables () |
Return the number of independent variables. More... | |
![]() | |
vtkBaseTypeMacro (vtkObject, vtkObjectBase) | |
virtual void | DebugOn () |
Turn debugging output on. More... | |
virtual void | DebugOff () |
Turn debugging output off. More... | |
bool | GetDebug () |
Get the value of the debug flag. More... | |
void | SetDebug (bool debugFlag) |
Set the value of the debug flag. More... | |
virtual void | Modified () |
Update the modification time for this object. More... | |
virtual vtkMTimeType | GetMTime () |
Return this object's modified time. More... | |
unsigned long | AddObserver (unsigned long event, vtkCommand *, float priority=0.0f) |
Allow people to add/remove/invoke observers (callbacks) to any VTK object. More... | |
unsigned long | AddObserver (const char *event, vtkCommand *, float priority=0.0f) |
vtkCommand * | GetCommand (unsigned long tag) |
void | RemoveObserver (vtkCommand *) |
void | RemoveObservers (unsigned long event, vtkCommand *) |
void | RemoveObservers (const char *event, vtkCommand *) |
vtkTypeBool | HasObserver (unsigned long event, vtkCommand *) |
vtkTypeBool | HasObserver (const char *event, vtkCommand *) |
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) |
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. More... | |
template<class U , class T > | |
unsigned long | AddObserver (unsigned long event, U observer, void(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f) |
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. More... | |
int | InvokeEvent (unsigned long event, void *callData) |
This method invokes an event and return whether the event was aborted or not. More... | |
int | InvokeEvent (const char *event, void *callData) |
int | InvokeEvent (unsigned long event) |
int | InvokeEvent (const char *event) |
![]() | |
const char * | GetClassName () const |
Return the class name as a string. More... | |
virtual vtkIdType | GetNumberOfGenerationsFromBase (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). More... | |
virtual void | Delete () |
Delete a VTK object. More... | |
virtual void | FastDelete () |
Delete a reference to this object. More... | |
void | InitializeObjectBase () |
void | Print (ostream &os) |
Print an object to an ostream. More... | |
virtual void | PrintHeader (ostream &os, vtkIndent indent) |
virtual void | PrintTrailer (ostream &os, vtkIndent indent) |
virtual void | Register (vtkObjectBase *o) |
Increase the reference count (mark as used by another object). More... | |
virtual void | UnRegister (vtkObjectBase *o) |
Decrease the reference count (release by another object). More... | |
int | GetReferenceCount () |
Return the current reference count of this object. More... | |
void | SetReferenceCount (int) |
Sets the reference count. More... | |
void | PrintRevisions (ostream &) |
Legacy. More... | |
Static Public Member Functions | |
static vtkTypeBool | IsTypeOf (const char *type) |
static vtkLagrangianBasicIntegrationModel * | SafeDownCast (vtkObjectBase *o) |
![]() | |
static vtkTypeBool | IsTypeOf (const char *type) |
static vtkFunctionSet * | SafeDownCast (vtkObjectBase *o) |
![]() | |
static vtkObject * | New () |
Create an object with Debug turned off, modified time initialized to zero, and reference counting on. More... | |
static void | BreakOnError () |
This method is called when vtkErrorMacro executes. More... | |
static void | SetGlobalWarningDisplay (int val) |
This is a global flag that controls whether any debug, warning or error messages are displayed. More... | |
static void | GlobalWarningDisplayOn () |
static void | GlobalWarningDisplayOff () |
static int | GetGlobalWarningDisplay () |
![]() | |
static vtkTypeBool | IsTypeOf (const char *name) |
Return 1 if this class type is the same type of (or a subclass of) the named class. More... | |
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). More... | |
static vtkObjectBase * | New () |
Create an object with Debug turned off, modified time initialized to zero, and reference counting on. More... | |
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. More... | |
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. More... | |
virtual bool | TerminateParticle (vtkLagrangianParticle *particle) |
Terminate a particle, by positioning flags. More... | |
virtual bool | BounceParticle (vtkLagrangianParticle *particle, vtkDataSet *surface, vtkIdType cellId) |
Bounce a particle, using the normal of the cell it bounces on. More... | |
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. More... | |
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. More... | |
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. More... | |
virtual void | InterpolateNextParticleVariables (vtkLagrangianParticle *particle, double interpolationFactor, bool forceInside=false) |
compute all particle variables using interpolation factor This method is thread-safe. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
![]() | |
vtkFunctionSet () | |
~vtkFunctionSet () override | |
![]() | |
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. More... | |
void | InternalReleaseFocus () |
![]() | |
vtkObjectBase () | |
virtual | ~vtkObjectBase () |
virtual void | CollectRevisions (ostream &) |
virtual void | ReportReferences (vtkGarbageCollector *) |
vtkObjectBase (const vtkObjectBase &) | |
void | operator= (const vtkObjectBase &) |
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 InitializeVariablesParticleData and InsertVariablesParticleData to add new UserVariables to integrate with.
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 90 of file vtkLagrangianBasicIntegrationModel.h.
Definition at line 93 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 112 of file vtkLagrangianBasicIntegrationModel.h.
typedef std::queue<PassThroughParticlesItem> vtkLagrangianBasicIntegrationModel::PassThroughParticlesType |
Definition at line 113 of file vtkLagrangianBasicIntegrationModel.h.
|
protected |
Definition at line 603 of file vtkLagrangianBasicIntegrationModel.h.
|
protected |
Enumerator | |
---|---|
SURFACE_TYPE_MODEL | |
SURFACE_TYPE_TERM | |
SURFACE_TYPE_BOUNCE | |
SURFACE_TYPE_BREAK | |
SURFACE_TYPE_PASS |
Definition at line 96 of file vtkLagrangianBasicIntegrationModel.h.
Enumerator | |
---|---|
VARIABLE_STEP_PREV | |
VARIABLE_STEP_CURRENT | |
VARIABLE_STEP_NEXT |
Definition at line 105 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 |
|
virtual |
Get the state of the current locators.
|
virtual |
|
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 |
|
virtual |
Set/Get the Use of initial integration input array to process.
|
virtual |
|
virtual |
|
virtual |
|
virtual |
Get the tolerance to use with this model.
|
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 |
|
inlinevirtual |
Initialize a particle by setting user variables and perform any user model specific operation.
empty in basic implementation.
Definition at line 235 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 245 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 258 of file vtkLagrangianBasicIntegrationModel.h.
|
virtual |
Set/Get Non Planar Quad Support.
|
virtual |
|
virtual |
|
virtual |
|
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 361 of file vtkLagrangianBasicIntegrationModel.h.
|
inlinevirtual |
Let the model allocate and initialize a threaded data.
This method is thread-safe, its reimplementation should still be thread-safe.
Definition at line 367 of file vtkLagrangianBasicIntegrationModel.h.
|
inlinevirtual |
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.
Definition at line 373 of file vtkLagrangianBasicIntegrationModel.h.
|
inlinevirtual |
Enable model post process on output Return true if successful, false otherwise Empty and Always return true with basic model.
Definition at line 380 of file vtkLagrangianBasicIntegrationModel.h.
|
inlinevirtual |
Enable model to modify particle before integration.
Definition at line 389 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 464 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.
|
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]
|
protected |
Definition at line 593 of file vtkLagrangianBasicIntegrationModel.h.
|
protected |
Definition at line 594 of file vtkLagrangianBasicIntegrationModel.h.
|
protected |
Definition at line 595 of file vtkLagrangianBasicIntegrationModel.h.
|
protected |
Definition at line 596 of file vtkLagrangianBasicIntegrationModel.h.
|
protected |
Definition at line 597 of file vtkLagrangianBasicIntegrationModel.h.
|
protected |
Definition at line 604 of file vtkLagrangianBasicIntegrationModel.h.
|
protected |
Definition at line 612 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 617 of file vtkLagrangianBasicIntegrationModel.h.
|
protected |
Definition at line 618 of file vtkLagrangianBasicIntegrationModel.h.
|
protected |
Definition at line 619 of file vtkLagrangianBasicIntegrationModel.h.
|
protected |
Definition at line 620 of file vtkLagrangianBasicIntegrationModel.h.
|
protected |
Definition at line 622 of file vtkLagrangianBasicIntegrationModel.h.
|
protected |
Definition at line 623 of file vtkLagrangianBasicIntegrationModel.h.
|
protected |
Definition at line 624 of file vtkLagrangianBasicIntegrationModel.h.
|
protected |
Definition at line 625 of file vtkLagrangianBasicIntegrationModel.h.
|
protected |
Definition at line 626 of file vtkLagrangianBasicIntegrationModel.h.
|
protected |
Definition at line 627 of file vtkLagrangianBasicIntegrationModel.h.
|
protected |
Definition at line 628 of file vtkLagrangianBasicIntegrationModel.h.
|
protected |
Definition at line 629 of file vtkLagrangianBasicIntegrationModel.h.
|
protected |
Definition at line 631 of file vtkLagrangianBasicIntegrationModel.h.
|
protected |
Definition at line 632 of file vtkLagrangianBasicIntegrationModel.h.