VTK
Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
vtkLagrangianBasicIntegrationModel Class Referenceabstract

vtkFunctionSet abstract implementation to be used in the vtkLagrangianParticleTracker integrator. More...

#include <vtkLagrangianBasicIntegrationModel.h>

Inheritance diagram for vtkLagrangianBasicIntegrationModel:
[legend]
Collaboration diagram for vtkLagrangianBasicIntegrationModel:
[legend]

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< PassThroughParticlesItemPassThroughParticlesType
 
- 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. More...
 
vtkLagrangianBasicIntegrationModelNewInstance () 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) override
 Evaluate integration model velocity f at position x. More...
 
virtual void SetTracker (vtkLagrangianParticleTracker *Tracker)
 Set the parent tracker. More...
 
virtual vtkLagrangianParticleComputeSurfaceInteraction (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 void InitializeVariablesParticleData (vtkPointData *vtkNotUsed(particleData), int vtkNotUsed(maxTuples)=0)
 Empty method to be reimplemented if necessary in inherited classes. More...
 
virtual void InsertVariablesParticleData (vtkLagrangianParticle *vtkNotUsed(particle), vtkPointData *vtkNotUsed(particleData), int vtkNotUsed(stepEnum))
 Empty method to be reimplemented if necessary in inherited classes. More...
 
virtual void InitializeModelPathData (vtkFieldData *vtkNotUsed(data))
 Empty method to be reimplemented if necessary in inherited classes. More...
 
virtual void InsertModelPathData (vtkLagrangianParticle *vtkNotUsed(particle), vtkFieldData *vtkNotUsed(data))
 Empty method to be reimplemented if necessary in inherited classes. More...
 
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 vtkStringArrayGetSeedArrayNames ()
 Get the seed arrays expected name Used Only be the vtkLagrangianSeedHelper in ParaView plugins. More...
 
virtual vtkIntArrayGetSeedArrayComps ()
 Get the seed arrays expected number of components Used Only be the vtkLagrangianSeedHelper in ParaView plugins. More...
 
virtual vtkIntArrayGetSeedArrayTypes ()
 Get the seed arrays expected type Used Only be the vtkLagrangianSeedHelper in ParaView plugins. More...
 
virtual vtkStringArrayGetSurfaceArrayNames ()
 Get the surface arrays expected name Used Only be the vtkLagrangianSurfaceHelper in ParaView plugins. More...
 
virtual vtkIntArrayGetSurfaceArrayTypes ()
 Get the surface arrays expected type Used Only be the vtkLagrangianSurfaceHelper in ParaView plugins. More...
 
virtual vtkStringArrayGetSurfaceArrayEnumValues ()
 Get the surface arrays expected values and associated enums Used Only be the vtkLagrangianSurfaceHelper in ParaView plugins. More...
 
virtual vtkDoubleArrayGetSurfaceArrayDefaultValues ()
 Get the surface arrays default values for each leaf Used Only be the vtkLagrangianSurfaceHelper in ParaView plugins. More...
 
virtual vtkIntArrayGetSurfaceArrayComps ()
 Get the seed array expected number of components Used Only be the vtkLagrangianSurfaceHelper in ParaView plugins. More...
 
virtual bool ManualIntegration (double *xcur, double *xnext, double t, double &delT, double &delTActual, double minStep, double maxStep, double maxError, double &error, int &integrationResult)
 Let the model define it's own way to integrate Signature is very close to the integrator method 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 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 vtkAbstractArrayGetSeedArray (int idx, vtkPointData *pointData)
 Get a seed array, as set in setInputArrayToProcess from the provided seed point data. More...
 
virtual void SetLocator (vtkAbstractCellLocator *locator)
 Set/Get the locator used to locate cells in the datasets. More...
 
virtual vtkAbstractCellLocatorGetLocator ()
 Set/Get the locator used to locate cells in the datasets. More...
 
virtual bool GetLocatorsBuilt ()
 Get the state of the current locators. More...
 
virtual void SetLocatorsBuilt (bool)
 Get the state of the current locators. 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)
 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 SetUseInitialIntegrationTime (bool)
 Set/Get the Use of initial integration input array to process. More...
 
virtual bool GetUseInitialIntegrationTime ()
 Set/Get the Use of initial integration input array to process. More...
 
virtual void UseInitialIntegrationTimeOn ()
 Set/Get the Use of initial integration input array to process. More...
 
virtual void UseInitialIntegrationTimeOff ()
 Set/Get the Use of initial integration input array to process. More...
 
virtual void SetCurrentParticle (vtkLagrangianParticle *)
 Set the current particle. More...
 
virtual double GetTolerance ()
 Get the tolerance to use with this model. More...
 
virtual bool FindInLocators (double *x, vtkDataSet *&dataset, vtkIdType &cellId, vtkAbstractCellLocator *&loc, double *&weights)
 Look for a dataset in this integration model containing the point x. More...
 
virtual bool FindInLocators (double *x, vtkDataSet *&dataset, vtkIdType &cellId)
 Look for a dataset in this integration model containing the point x. More...
 
virtual bool FindInLocators (double *x)
 Look for a dataset in this integration model containing the point x. More...
 
virtual void SetNonPlanarQuadSupport (bool)
 Set/Get Non Planar Quad Support. More...
 
virtual bool GetNonPlanarQuadSupport ()
 Set/Get Non Planar Quad Support. More...
 
virtual void NonPlanarQuadSupportOn ()
 Set/Get Non Planar Quad Support. More...
 
virtual void NonPlanarQuadSupportOff ()
 Set/Get Non Planar Quad Support. More...
 
virtual int GetWeightsSize ()
 Get the maximum weights size necessary for calling FindInLocators with weights. More...
 
- Public Member Functions inherited from vtkFunctionSet
vtkFunctionSetNewInstance () const
 
virtual int GetNumberOfFunctions ()
 Return the number of functions. More...
 
virtual int GetNumberOfIndependentVariables ()
 Return the number of independent variables. More...
 
- Public Member Functions inherited from vtkObject
 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...
 
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. More...
 
unsigned long AddObserver (const char *event, vtkCommand *, float priority=0.0f)
 Allow people to add/remove/invoke observers (callbacks) to any VTK object. More...
 
vtkCommandGetCommand (unsigned long tag)
 Allow people to add/remove/invoke observers (callbacks) to any VTK object. More...
 
void RemoveObserver (vtkCommand *)
 Allow people to add/remove/invoke observers (callbacks) to any VTK object. More...
 
void RemoveObservers (unsigned long event, vtkCommand *)
 Allow people to add/remove/invoke observers (callbacks) to any VTK object. More...
 
void RemoveObservers (const char *event, vtkCommand *)
 Allow people to add/remove/invoke observers (callbacks) to any VTK object. More...
 
vtkTypeBool HasObserver (unsigned long event, vtkCommand *)
 Allow people to add/remove/invoke observers (callbacks) to any VTK object. More...
 
vtkTypeBool HasObserver (const char *event, vtkCommand *)
 Allow people to add/remove/invoke observers (callbacks) to any VTK object. More...
 
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)
 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, 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)
 This method invokes an event and return whether the event was aborted or not. More...
 
- Public Member Functions inherited from vtkObjectBase
const char * GetClassName () const
 Return the class name as a string. 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 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...
 
virtual void PrintHeader (ostream &os, vtkIndent indent)
 Methods invoked by print to print information about the object including superclasses. More...
 
virtual void PrintTrailer (ostream &os, vtkIndent indent)
 Methods invoked by print to print information about the object including superclasses. More...
 

Static Public Member Functions

static vtkTypeBool IsTypeOf (const char *type)
 
static vtkLagrangianBasicIntegrationModelSafeDownCast (vtkObjectBase *o)
 
- Static Public Member Functions inherited from vtkFunctionSet
static vtkTypeBool IsTypeOf (const char *type)
 
static vtkFunctionSetSafeDownCast (vtkObjectBase *o)
 
- Static Public Member Functions inherited from vtkObject
static vtkObjectNew ()
 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 ()
 This is a global flag that controls whether any debug, warning or error messages are displayed. More...
 
static void GlobalWarningDisplayOff ()
 This is a global flag that controls whether any debug, warning or error messages are displayed. More...
 
static int GetGlobalWarningDisplay ()
 This is a global flag that controls whether any debug, warning or error messages are displayed. More...
 
- 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. More...
 
static vtkObjectBaseNew ()
 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 vtkObjectBaseNewInstanceInternal () const
 
 vtkLagrangianBasicIntegrationModel ()
 
 ~vtkLagrangianBasicIntegrationModel () override
 
virtual int FunctionValues (vtkDataSet *detaSet, vtkIdType cellId, double *weights, double *x, double *f)=0
 Actually compute the integration model velocity field pure abstract, to be implemented in inherited class. 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. 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. 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. More...
 
virtual bool IntersectWithLine (vtkCell *cell, double p1[3], double p2[3], double tol, double &t, double x[3])
 Call vtkCell::IntersectWithLine This method is to be reimplemented in inherited classes willing to implement specific line/surface intersection. More...
 
virtual void InterpolateNextParticleVariables (vtkLagrangianParticle *particle, double interpolationFactor, bool forceInside=false)
 compute all particle variables using interpolation factor 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. More...
 
virtual vtkAbstractArrayGetSeedArray (int idx, vtkLagrangianParticle *particle)
 Get a seed array, as set in setInputArrayToProcess from the provided particle seed data Access then the correct tuple using vtkLagrangianParticle::GetSeedArrayTupleIndex() More...
 
virtual bool GetFlowOrSurfaceData (int idx, vtkDataSet *flowDataSet, vtkIdType tupleId, double *weights, double *&data, int &nComponents)
 Directly get a double value from flow or surface data as defined in SetInputArrayToProcess data pointer is valid until next call to this method. More...
 
virtual int GetFlowOrSurfaceDataFieldAssociation (int idx)
 Recover a field association for a specified array index if it has been set using SetInputArrayToProcess. More...
 
virtual void ComputeSurfaceDefaultValues (const char *arrayName, vtkDataSet *dataset, int nComponent, double *defaultValues)
 Methods used by ParaView surface helper to get default values for each leaf of each dataset of surface nComponents could be retrieved with arrayName but is given for simplication purposes. More...
 
- Protected Member Functions inherited from vtkFunctionSet
 vtkFunctionSet ()
 
 ~vtkFunctionSet () override
 
- 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. More...
 
void InternalReleaseFocus ()
 These methods allow a command to exclusively grab all events. More...
 
- Protected Member Functions inherited from vtkObjectBase
 vtkObjectBase ()
 
virtual ~vtkObjectBase ()
 
virtual void CollectRevisions (ostream &)
 
virtual void ReportReferences (vtkGarbageCollector *)
 
 vtkObjectBase (const vtkObjectBase &)
 
void operator= (const vtkObjectBase &)
 

Protected Attributes

vtkAbstractCellLocatorLocator
 
bool LocatorsBuilt
 
vtkAbstractCellLocatorLastLocator
 
vtkLocatorsType * Locators
 
vtkDataSetLastDataSet
 
vtkDataSetsType * DataSets
 
vtkGenericCellCell
 
doubleLastWeights
 
int WeightsSize
 
std::map< int, ArrayMapValInputArrays
 
std::map< std::string, SurfaceArrayDescriptionSurfaceArrayDescriptions
 
vtkLagrangianParticleCurrentParticle
 
vtkLagrangianParticleTmpParticle
 
vtkSurfaceType * Surfaces
 
vtkLocatorsType * SurfaceLocators
 
vtkDataArrayTmpArray
 
double Tolerance
 
bool NonPlanarQuadSupport
 
bool UseInitialIntegrationTime
 
vtkNew< vtkStringArraySeedArrayNames
 
vtkNew< vtkIntArraySeedArrayComps
 
vtkNew< vtkIntArraySeedArrayTypes
 
vtkNew< vtkStringArraySurfaceArrayNames
 
vtkNew< vtkIntArraySurfaceArrayComps
 
vtkNew< vtkIntArraySurfaceArrayTypes
 
vtkNew< vtkStringArraySurfaceArrayEnumValues
 
vtkNew< vtkDoubleArraySurfaceArrayDefaultValues
 
vtkWeakPointer< vtkLagrangianParticleTrackerTracker
 
- Protected Attributes inherited from vtkFunctionSet
int NumFuncs
 
int NumIndepVars
 
- Protected Attributes inherited from vtkObject
bool Debug
 
vtkTimeStamp MTime
 
vtkSubjectHelper * SubjectHelper
 
- Protected Attributes inherited from vtkObjectBase
vtkAtomicInt32 ReferenceCount
 
vtkWeakPointerBase ** WeakPointers
 

Detailed Description

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 multiples datasets locator in order to evaluate the vtkFunctionSet::FunctionValues method. The actual FunctionValues implementation should be found in class inheriting this class Input Array 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 SetCurrentParticle, InitializeVariablesParticleData, and InsertVariablesParticleData to add new UserVariables to integrate with

Inherited classes could reimplement InteractWithSurface or other surface interaction method to changes the way particle interact with surface

Inherited classes could reimplement IntersectWithLine to use a specific algorithm to intersect particles and surface cells.

Inherited class could reimplement CheckFreeFlightTermination to set the way particle terminate in free flight

See also
vtkLagrangianParticleTracker vtkLagrangianParticle vtkLagrangianMatidaIntegrationModel
Tests:
vtkLagrangianBasicIntegrationModel (Tests)

Definition at line 85 of file vtkLagrangianBasicIntegrationModel.h.

Member Typedef Documentation

Definition at line 89 of file vtkLagrangianBasicIntegrationModel.h.

Definition at line 108 of file vtkLagrangianBasicIntegrationModel.h.

Definition at line 109 of file vtkLagrangianBasicIntegrationModel.h.

typedef std::pair<ArrayVal, std::string> vtkLagrangianBasicIntegrationModel::ArrayMapVal
protected

Definition at line 520 of file vtkLagrangianBasicIntegrationModel.h.

Member Enumeration Documentation

Enumerator
SURFACE_TYPE_MODEL 
SURFACE_TYPE_TERM 
SURFACE_TYPE_BOUNCE 
SURFACE_TYPE_BREAK 
SURFACE_TYPE_PASS 

Definition at line 92 of file vtkLagrangianBasicIntegrationModel.h.

Enumerator
VARIABLE_STEP_PREV 
VARIABLE_STEP_CURRENT 
VARIABLE_STEP_NEXT 

Definition at line 101 of file vtkLagrangianBasicIntegrationModel.h.

Constructor & Destructor Documentation

vtkLagrangianBasicIntegrationModel::vtkLagrangianBasicIntegrationModel ( )
protected
vtkLagrangianBasicIntegrationModel::~vtkLagrangianBasicIntegrationModel ( )
overrideprotected

Member Function Documentation

static vtkTypeBool vtkLagrangianBasicIntegrationModel::IsTypeOf ( const char *  type)
static
virtual vtkTypeBool vtkLagrangianBasicIntegrationModel::IsA ( const char *  name)
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 vtkLagrangianBasicIntegrationModel* vtkLagrangianBasicIntegrationModel::SafeDownCast ( vtkObjectBase o)
static
virtual vtkObjectBase* vtkLagrangianBasicIntegrationModel::NewInstanceInternal ( ) const
protectedvirtual

Reimplemented from vtkFunctionSet.

Reimplemented in vtkLagrangianMatidaIntegrationModel.

vtkLagrangianBasicIntegrationModel* vtkLagrangianBasicIntegrationModel::NewInstance ( ) const
void vtkLagrangianBasicIntegrationModel::PrintSelf ( ostream &  os,
vtkIndent  indent 
)
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.

int vtkLagrangianBasicIntegrationModel::FunctionValues ( double x,
double f 
)
overridevirtual

Evaluate integration model velocity f at position x.

Look for the cell containing the position x in all it's added dataset in found this will call FunctionValues(vtkDataSet* detaSet, vtkIdType cellId, double* x, double* f)

Implements vtkFunctionSet.

virtual void vtkLagrangianBasicIntegrationModel::SetLocator ( vtkAbstractCellLocator locator)
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 vtkAbstractCellLocator* vtkLagrangianBasicIntegrationModel::GetLocator ( )
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 bool vtkLagrangianBasicIntegrationModel::GetLocatorsBuilt ( )
virtual

Get the state of the current locators.

virtual void vtkLagrangianBasicIntegrationModel::SetLocatorsBuilt ( bool  )
virtual

Get the state of the current locators.

virtual void vtkLagrangianBasicIntegrationModel::SetTracker ( vtkLagrangianParticleTracker Tracker)
virtual

Set the parent tracker.

virtual void vtkLagrangianBasicIntegrationModel::AddDataSet ( vtkDataSet dataset,
bool  surface = false,
unsigned int  surfaceFlatIndex = 0 
)
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 void vtkLagrangianBasicIntegrationModel::ClearDataSets ( bool  surface = false)
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 void vtkLagrangianBasicIntegrationModel::SetUseInitialIntegrationTime ( bool  )
virtual

Set/Get the Use of initial integration input array to process.

virtual bool vtkLagrangianBasicIntegrationModel::GetUseInitialIntegrationTime ( )
virtual

Set/Get the Use of initial integration input array to process.

virtual void vtkLagrangianBasicIntegrationModel::UseInitialIntegrationTimeOn ( )
virtual

Set/Get the Use of initial integration input array to process.

virtual void vtkLagrangianBasicIntegrationModel::UseInitialIntegrationTimeOff ( )
virtual

Set/Get the Use of initial integration input array to process.

virtual void vtkLagrangianBasicIntegrationModel::SetCurrentParticle ( vtkLagrangianParticle )
virtual

Set the current particle.

virtual double vtkLagrangianBasicIntegrationModel::GetTolerance ( )
virtual

Get the tolerance to use with this model.

virtual vtkLagrangianParticle* vtkLagrangianBasicIntegrationModel::ComputeSurfaceInteraction ( vtkLagrangianParticle particle,
std::queue< vtkLagrangianParticle * > &  particles,
unsigned int interactedSurfaceFlatIndex,
PassThroughParticlesType passThroughParticles 
)
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 void vtkLagrangianBasicIntegrationModel::SetInputArrayToProcess ( int  idx,
int  port,
int  connection,
int  fieldAssociation,
const char *  name 
)
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 bool vtkLagrangianBasicIntegrationModel::FindInLocators ( double x,
vtkDataSet *&  dataset,
vtkIdType cellId,
vtkAbstractCellLocator *&  loc,
double *&  weights 
)
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.

virtual bool vtkLagrangianBasicIntegrationModel::FindInLocators ( double x,
vtkDataSet *&  dataset,
vtkIdType cellId 
)
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.

virtual bool vtkLagrangianBasicIntegrationModel::FindInLocators ( double x)
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.

virtual void vtkLagrangianBasicIntegrationModel::InitializeVariablesParticleData ( vtkPointData vtkNotUsedparticleData,
int   vtkNotUsedmaxTuples = 0 
)
inlinevirtual

Empty method to be reimplemented if necessary in inherited classes.

Allows a intehrited class to create Specific array in the output point data for storing variables.

Definition at line 231 of file vtkLagrangianBasicIntegrationModel.h.

virtual void vtkLagrangianBasicIntegrationModel::InsertVariablesParticleData ( vtkLagrangianParticle vtkNotUsedparticle,
vtkPointData vtkNotUsedparticleData,
int   vtkNotUsedstepEnum 
)
inlinevirtual

Empty method to be reimplemented if necessary in inherited classes.

Allows a inherited class to create specific array in the output point data for filling point data with variables.

Definition at line 239 of file vtkLagrangianBasicIntegrationModel.h.

virtual void vtkLagrangianBasicIntegrationModel::InitializeModelPathData ( vtkFieldData vtkNotUseddata)
inlinevirtual

Empty method to be reimplemented if necessary in inherited classes.

Allows an inherited class to create specific array in the outputs field data associated with each particle path.

Definition at line 247 of file vtkLagrangianBasicIntegrationModel.h.

virtual void vtkLagrangianBasicIntegrationModel::InsertModelPathData ( vtkLagrangianParticle vtkNotUsedparticle,
vtkFieldData vtkNotUseddata 
)
inlinevirtual

Empty method to be reimplemented if necessary in inherited classes.

Allows a inherited class to insert data in initialized array in the outputs field data associated with each particle path.

Definition at line 254 of file vtkLagrangianBasicIntegrationModel.h.

virtual void vtkLagrangianBasicIntegrationModel::InitializeParticle ( vtkLagrangianParticle vtkNotUsedparticle)
inlinevirtual

Initialize a particle by setting user variables and perform any user model specific operation.

empty in basic implementation.

Definition at line 261 of file vtkLagrangianBasicIntegrationModel.h.

virtual bool vtkLagrangianBasicIntegrationModel::CheckAdaptiveStepReintegration ( vtkLagrangianParticle vtkNotUsedparticle)
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 271 of file vtkLagrangianBasicIntegrationModel.h.

virtual bool vtkLagrangianBasicIntegrationModel::CheckFreeFlightTermination ( vtkLagrangianParticle vtkNotUsedparticle)
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.

Definition at line 281 of file vtkLagrangianBasicIntegrationModel.h.

virtual void vtkLagrangianBasicIntegrationModel::SetNonPlanarQuadSupport ( bool  )
virtual

Set/Get Non Planar Quad Support.

virtual bool vtkLagrangianBasicIntegrationModel::GetNonPlanarQuadSupport ( )
virtual

Set/Get Non Planar Quad Support.

virtual void vtkLagrangianBasicIntegrationModel::NonPlanarQuadSupportOn ( )
virtual

Set/Get Non Planar Quad Support.

virtual void vtkLagrangianBasicIntegrationModel::NonPlanarQuadSupportOff ( )
virtual

Set/Get Non Planar Quad Support.

virtual vtkStringArray* vtkLagrangianBasicIntegrationModel::GetSeedArrayNames ( )
virtual

Get the seed arrays expected name Used Only be the vtkLagrangianSeedHelper in ParaView plugins.

virtual vtkIntArray* vtkLagrangianBasicIntegrationModel::GetSeedArrayComps ( )
virtual

Get the seed arrays expected number of components Used Only be the vtkLagrangianSeedHelper in ParaView plugins.

virtual vtkIntArray* vtkLagrangianBasicIntegrationModel::GetSeedArrayTypes ( )
virtual

Get the seed arrays expected type Used Only be the vtkLagrangianSeedHelper in ParaView plugins.

virtual vtkStringArray* vtkLagrangianBasicIntegrationModel::GetSurfaceArrayNames ( )
virtual

Get the surface arrays expected name Used Only be the vtkLagrangianSurfaceHelper in ParaView plugins.

virtual vtkIntArray* vtkLagrangianBasicIntegrationModel::GetSurfaceArrayTypes ( )
virtual

Get the surface arrays expected type Used Only be the vtkLagrangianSurfaceHelper in ParaView plugins.

virtual vtkStringArray* vtkLagrangianBasicIntegrationModel::GetSurfaceArrayEnumValues ( )
virtual

Get the surface arrays expected values and associated enums Used Only be the vtkLagrangianSurfaceHelper in ParaView plugins.

virtual vtkDoubleArray* vtkLagrangianBasicIntegrationModel::GetSurfaceArrayDefaultValues ( )
virtual

Get the surface arrays default values for each leaf Used Only be the vtkLagrangianSurfaceHelper in ParaView plugins.

virtual vtkIntArray* vtkLagrangianBasicIntegrationModel::GetSurfaceArrayComps ( )
virtual

Get the seed array expected number of components Used Only be the vtkLagrangianSurfaceHelper in ParaView plugins.

virtual int vtkLagrangianBasicIntegrationModel::GetWeightsSize ( )
virtual

Get the maximum weights size necessary for calling FindInLocators with weights.

virtual bool vtkLagrangianBasicIntegrationModel::ManualIntegration ( double xcur,
double xnext,
double  t,
double delT,
double delTActual,
double  minStep,
double  maxStep,
double  maxError,
double error,
int integrationResult 
)
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

virtual void vtkLagrangianBasicIntegrationModel::ParallelManualShift ( vtkLagrangianParticle vtkNotUsedparticle)
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 381 of file vtkLagrangianBasicIntegrationModel.h.

virtual bool vtkLagrangianBasicIntegrationModel::FinalizeOutputs ( vtkPolyData vtkNotUsedparticlePathsOutput,
vtkDataObject vtkNotUsedinterractionOutput 
)
inlinevirtual

Enable model post process on output Return true if successful, false otherwise Empty and Always return true with basic model.

Definition at line 388 of file vtkLagrangianBasicIntegrationModel.h.

virtual void vtkLagrangianBasicIntegrationModel::PreIntegrate ( std::queue< vtkLagrangianParticle * > &  vtkNotUsedparticles)
inlinevirtual

Enable model to modify particle before integration.

Definition at line 394 of file vtkLagrangianBasicIntegrationModel.h.

virtual vtkAbstractArray* vtkLagrangianBasicIntegrationModel::GetSeedArray ( int  idx,
vtkPointData pointData 
)
virtual

Get a seed array, as set in setInputArrayToProcess from the provided seed point data.

virtual int vtkLagrangianBasicIntegrationModel::FunctionValues ( vtkDataSet detaSet,
vtkIdType  cellId,
double weights,
double x,
double f 
)
protectedpure virtual

Actually compute the integration model velocity field pure abstract, to be implemented in inherited class.

Implemented in vtkLagrangianMatidaIntegrationModel.

virtual vtkIdType vtkLagrangianBasicIntegrationModel::FindInLocator ( vtkDataSet dataSet,
vtkAbstractCellLocator locator,
double x,
vtkGenericCell cell,
double weights 
)
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.

virtual bool vtkLagrangianBasicIntegrationModel::TerminateParticle ( vtkLagrangianParticle particle)
protectedvirtual

Terminate a particle, by positioning flags.

Return true to record the interaction, false otherwise

virtual bool vtkLagrangianBasicIntegrationModel::BounceParticle ( vtkLagrangianParticle particle,
vtkDataSet surface,
vtkIdType  cellId 
)
protectedvirtual

Bounce a particle, using the normal of the cell it bounces on.

Return true to record the interaction, false otherwise

virtual bool vtkLagrangianBasicIntegrationModel::BreakParticle ( vtkLagrangianParticle particle,
vtkDataSet surface,
vtkIdType  cellId,
std::queue< vtkLagrangianParticle * > &  particles 
)
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.

virtual bool vtkLagrangianBasicIntegrationModel::InteractWithSurface ( int  surfaceType,
vtkLagrangianParticle particle,
vtkDataSet surface,
vtkIdType  cellId,
std::queue< vtkLagrangianParticle * > &  particles 
)
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.

virtual bool vtkLagrangianBasicIntegrationModel::IntersectWithLine ( vtkCell cell,
double  p1[3],
double  p2[3],
double  tol,
double t,
double  x[3] 
)
protectedvirtual

Call vtkCell::IntersectWithLine This method is to be reimplemented in inherited classes willing to implement specific line/surface intersection.

virtual void vtkLagrangianBasicIntegrationModel::InterpolateNextParticleVariables ( vtkLagrangianParticle particle,
double  interpolationFactor,
bool  forceInside = false 
)
protectedvirtual

compute all particle variables using interpolation factor

virtual bool vtkLagrangianBasicIntegrationModel::CheckSurfacePerforation ( vtkLagrangianParticle particle,
vtkDataSet surface,
vtkIdType  cellId 
)
protectedvirtual

Given a particle, check if it perforate a surface cell ie : interact with next step after interacting with it.

virtual vtkAbstractArray* vtkLagrangianBasicIntegrationModel::GetSeedArray ( int  idx,
vtkLagrangianParticle particle 
)
protectedvirtual

Get a seed array, as set in setInputArrayToProcess from the provided particle seed data Access then the correct tuple using vtkLagrangianParticle::GetSeedArrayTupleIndex()

virtual bool vtkLagrangianBasicIntegrationModel::GetFlowOrSurfaceData ( int  idx,
vtkDataSet flowDataSet,
vtkIdType  tupleId,
double weights,
double *&  data,
int nComponents 
)
protectedvirtual

Directly get a double value from flow or surface data as defined in SetInputArrayToProcess data pointer is valid until next call to this method.

virtual int vtkLagrangianBasicIntegrationModel::GetFlowOrSurfaceDataFieldAssociation ( int  idx)
protectedvirtual

Recover a field association for a specified array index if it has been set using SetInputArrayToProcess.

virtual void vtkLagrangianBasicIntegrationModel::ComputeSurfaceDefaultValues ( const char *  arrayName,
vtkDataSet dataset,
int  nComponent,
double defaultValues 
)
protectedvirtual

Methods 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]

Member Data Documentation

vtkAbstractCellLocator* vtkLagrangianBasicIntegrationModel::Locator
protected

Definition at line 505 of file vtkLagrangianBasicIntegrationModel.h.

bool vtkLagrangianBasicIntegrationModel::LocatorsBuilt
protected

Definition at line 506 of file vtkLagrangianBasicIntegrationModel.h.

vtkAbstractCellLocator* vtkLagrangianBasicIntegrationModel::LastLocator
protected

Definition at line 507 of file vtkLagrangianBasicIntegrationModel.h.

vtkLocatorsType* vtkLagrangianBasicIntegrationModel::Locators
protected

Definition at line 508 of file vtkLagrangianBasicIntegrationModel.h.

vtkDataSet* vtkLagrangianBasicIntegrationModel::LastDataSet
protected

Definition at line 510 of file vtkLagrangianBasicIntegrationModel.h.

vtkDataSetsType* vtkLagrangianBasicIntegrationModel::DataSets
protected

Definition at line 511 of file vtkLagrangianBasicIntegrationModel.h.

vtkGenericCell* vtkLagrangianBasicIntegrationModel::Cell
protected

Definition at line 512 of file vtkLagrangianBasicIntegrationModel.h.

double* vtkLagrangianBasicIntegrationModel::LastWeights
protected

Definition at line 513 of file vtkLagrangianBasicIntegrationModel.h.

int vtkLagrangianBasicIntegrationModel::WeightsSize
protected

Definition at line 514 of file vtkLagrangianBasicIntegrationModel.h.

std::map<int, ArrayMapVal> vtkLagrangianBasicIntegrationModel::InputArrays
protected

Definition at line 521 of file vtkLagrangianBasicIntegrationModel.h.

std::map<std::string, SurfaceArrayDescription> vtkLagrangianBasicIntegrationModel::SurfaceArrayDescriptions
protected

Definition at line 529 of file vtkLagrangianBasicIntegrationModel.h.

vtkLagrangianParticle* vtkLagrangianBasicIntegrationModel::CurrentParticle
protected

Definition at line 531 of file vtkLagrangianBasicIntegrationModel.h.

vtkLagrangianParticle* vtkLagrangianBasicIntegrationModel::TmpParticle
protected

Definition at line 532 of file vtkLagrangianBasicIntegrationModel.h.

vtkSurfaceType* vtkLagrangianBasicIntegrationModel::Surfaces
protected

Definition at line 534 of file vtkLagrangianBasicIntegrationModel.h.

vtkLocatorsType* vtkLagrangianBasicIntegrationModel::SurfaceLocators
protected

Definition at line 535 of file vtkLagrangianBasicIntegrationModel.h.

vtkDataArray* vtkLagrangianBasicIntegrationModel::TmpArray
protected

Definition at line 537 of file vtkLagrangianBasicIntegrationModel.h.

double vtkLagrangianBasicIntegrationModel::Tolerance
protected

Definition at line 539 of file vtkLagrangianBasicIntegrationModel.h.

bool vtkLagrangianBasicIntegrationModel::NonPlanarQuadSupport
protected

Definition at line 540 of file vtkLagrangianBasicIntegrationModel.h.

bool vtkLagrangianBasicIntegrationModel::UseInitialIntegrationTime
protected

Definition at line 541 of file vtkLagrangianBasicIntegrationModel.h.

vtkNew<vtkStringArray> vtkLagrangianBasicIntegrationModel::SeedArrayNames
protected

Definition at line 543 of file vtkLagrangianBasicIntegrationModel.h.

vtkNew<vtkIntArray> vtkLagrangianBasicIntegrationModel::SeedArrayComps
protected

Definition at line 544 of file vtkLagrangianBasicIntegrationModel.h.

vtkNew<vtkIntArray> vtkLagrangianBasicIntegrationModel::SeedArrayTypes
protected

Definition at line 545 of file vtkLagrangianBasicIntegrationModel.h.

vtkNew<vtkStringArray> vtkLagrangianBasicIntegrationModel::SurfaceArrayNames
protected

Definition at line 546 of file vtkLagrangianBasicIntegrationModel.h.

vtkNew<vtkIntArray> vtkLagrangianBasicIntegrationModel::SurfaceArrayComps
protected

Definition at line 547 of file vtkLagrangianBasicIntegrationModel.h.

vtkNew<vtkIntArray> vtkLagrangianBasicIntegrationModel::SurfaceArrayTypes
protected

Definition at line 548 of file vtkLagrangianBasicIntegrationModel.h.

vtkNew<vtkStringArray> vtkLagrangianBasicIntegrationModel::SurfaceArrayEnumValues
protected

Definition at line 549 of file vtkLagrangianBasicIntegrationModel.h.

vtkNew<vtkDoubleArray> vtkLagrangianBasicIntegrationModel::SurfaceArrayDefaultValues
protected

Definition at line 550 of file vtkLagrangianBasicIntegrationModel.h.

vtkWeakPointer<vtkLagrangianParticleTracker> vtkLagrangianBasicIntegrationModel::Tracker
protected

Definition at line 552 of file vtkLagrangianBasicIntegrationModel.h.


The documentation for this class was generated from the following file: