26 #ifndef __vtkTemporalStreamTracer_h
27 #define __vtkTemporalStreamTracer_h
33 #include <vtkstd/vector>
34 #include <vtkstd/list>
61 int CachedDataSetId[2];
101 vtkSetMacro(TimeStep,
unsigned int);
102 vtkGetMacro(TimeStep,
unsigned int);
108 vtkSetMacro(IgnorePipelineTime,
int);
109 vtkGetMacro(IgnorePipelineTime,
int);
110 vtkBooleanMacro(IgnorePipelineTime,
int);
119 vtkSetMacro(TimeStepResolution,
double);
120 vtkGetMacro(TimeStepResolution,
double);
131 vtkSetMacro(ForceReinjectionEveryNSteps,
int);
132 vtkGetMacro(ForceReinjectionEveryNSteps,
int);
139 TERMINATION_STEP_UNIT
148 vtkSetMacro(TerminationTime,
double);
149 vtkGetMacro(TerminationTime,
double);
155 vtkSetMacro(TerminationTimeUnit,
int);
156 vtkGetMacro(TerminationTimeUnit,
int);
158 {this->SetTerminationTimeUnit(TERMINATION_TIME_UNIT);};
160 {this->SetTerminationTimeUnit(TERMINATION_STEP_UNIT);};
170 vtkSetMacro(StaticSeeds,
int);
171 vtkGetMacro(StaticSeeds,
int);
172 vtkBooleanMacro(StaticSeeds,
int);
181 vtkSetMacro(StaticMesh,
int);
182 vtkGetMacro(StaticMesh,
int);
183 vtkBooleanMacro(StaticMesh,
int);
207 vtkSetStringMacro(ParticleFileName);
208 vtkGetStringMacro(ParticleFileName);
214 vtkSetMacro(EnableParticleWriting,
int);
215 vtkGetMacro(EnableParticleWriting,
int);
216 vtkBooleanMacro(EnableParticleWriting,
int);
222 void RemoveAllSources();
267 int InitializeInterpolator();
288 void AssignSeedsToProcessors(
291 int &LocalAssignedCount);
297 void AssignUniqueIds(
304 void UpdateParticleList(
312 void TransmitReceiveParticles(
320 void IntegrateParticle(
322 double currenttime,
double terminationtime,
334 double velocity[3],
double delT);
339 bool SendParticleToAnotherProcess(
341 double point1[4],
double delT);
343 void AddParticleToMPISendList(
350 bool ComputeDomainExitLocation(
351 double pos[4],
double p2[4],
double intersection[4],
380 double CurrentTimeSteps[2];
440 vtkstd::vector<bounds> CachedBounds[2];
443 bool InsideBounds(
double point[]);
A helper class for interpolating between times during particle tracing.
vtkSmartPointer< vtkDoubleArray > cellVectors
int EnableParticleWriting
void PrintSelf(ostream &os, vtkIndent indent)
abstract class to write particle data to file
unsigned int NumberOfParticles
vtkIdType UniqueIdCounterMPI
vtkIdType UniqueIdCounter
int ForceReinjectionEveryNSteps
abstract class to specify dataset behavior
virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
vtkSmartPointer< vtkTemporalInterpolatedVelocityField > Interpolator
vtkSmartPointer< vtkFloatArray > ParticleAge
record modification and/or execution time
dynamic, self-adjusting array of float
An abstract class for obtaining the interpolated velocity values at a point.
vtkSmartPointer< vtkPointData > OutputPointData
vtkstd::vector< ParticleInformation > ParticleVector
vtkTemporalStreamTracerNamespace::ParticleDataList ParticleHistories
Composite dataset that holds multiple times.
vtkSmartPointer< vtkIntArray > InjectedStepIds
ParticleVector::iterator ParticleIterator
void SetTerminationTimeUnitToStepUnit()
provides thread-safe access to cells
double TimeStepResolution
vtkTimeStamp ParticleInjectionTime
Proxy object to connect input/output ports.
dynamic, self-adjusting array of double
unsigned int ActualTimeStep
virtual int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
dynamic, self-adjusting array of char
virtual int ProcessRequest(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
dynamic, self-adjusting array of int
unsigned int NumberOfInputTimeSteps
vtkSmartPointer< vtkIntArray > InjectedPointIds
vtkMultiProcessController * Controller
static vtkStreamTracer * New()
a simple class to control print indentation
virtual int RequestInformation(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
abstract superclass for arrays of numeric data
A Parallel Particle tracer for unsteady vector fields.
vtkstd::vector< double > InputTimeValues
vtkAbstractParticleWriter * ParticleWriter
vtkSmartPointer< vtkFloatArray > ParticleVorticity
vtkSmartPointer< vtkCellArray > ParticleCells
boost::graph_traits< vtkGraph * >::vertex_descriptor source(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
object to represent cell connectivity
vtkSmartPointer< vtkCharArray > ParticleSourceIds
vtkSmartPointer< vtkPoints > OutputCoordinates
vtkTemporalStreamTracerNamespace::ParticleVector MPISendList
Composite dataset that organizes datasets into blocks.
void SetInterpolatorPrototype(vtkAbstractInterpolatedVelocityField *ivf)
vtkSmartPointer< vtkFloatArray > ParticleAngularVel
vtkstd::vector< double > OutputTimeValues
ParticleDataList::iterator ParticleListIterator
vtkSmartPointer< vtkIntArray > ErrorCode
vtkSmartPointer< vtkIntArray > ParticleIds
vtkTemporalStreamTracerNamespace::ParticleVector LocalSeeds
vtkstd::list< ParticleInformation > ParticleDataList
virtual int FillInputPortInformation(int, vtkInformation *)
represent and manipulate 3D points
void SetTerminationTimeUnitToTimeUnit()
vtkSmartPointer< vtkFloatArray > ParticleRotation
Integrate a set of ordinary differential equations (initial value problem) in time.
Multiprocessing communication superclass.