This file is indexed.

/usr/include/paraview/vtkPParticleTracerBase.h is in paraview-dev 4.0.1-1ubuntu1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
/*=========================================================================

  Program:   Visualization Toolkit
  Module:    vtkParticleTracerBase.h

  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
  All rights reserved.
  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.

     This software is distributed WITHOUT ANY WARRANTY; without even
     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
     PURPOSE.  See the above copyright notice for more information.

=========================================================================*/
// .NAME vtkParticleTracerBase - A parallel particle tracer for vector fields
// .SECTION Description
// vtkPParticleTracerBase is the base class for parallel filters that advect particles
// in a vector field. Note that the input vtkPointData structure must
// be identical on all datasets.
// .SECTION See Also
// vtkRibbonFilter vtkRuledSurfaceFilter vtkInitialValueProblemSolver
// vtkRungeKutta2 vtkRungeKutta4 vtkRungeKutta45 vtkStreamTracer

#ifndef __vtkPParticleTracerBase_h
#define __vtkPParticleTracerBase_h

#include "vtkSmartPointer.h" // For protected ivars.
#include "vtkParticleTracerBase.h"

//BTX
#include <vector> // STL Header
#include <list>   // STL Header
//ETX

#include "vtkFiltersParallelFlowPathsModule.h" // For export macro

class VTKFILTERSPARALLELFLOWPATHS_EXPORT vtkPParticleTracerBase : public vtkParticleTracerBase
{
public:

    vtkTypeMacro(vtkPParticleTracerBase,vtkParticleTracerBase);
    void PrintSelf(ostream& os, vtkIndent indent);


    // Description:
    // Set/Get the controller used when sending particles between processes
    // The controller must be an instance of vtkMPIController.
    virtual void SetController(vtkMultiProcessController* controller);
    vtkGetObjectMacro(Controller, vtkMultiProcessController);

  protected:
    struct  RemoteParticleInfo
    {
      vtkParticleTracerBaseNamespace::ParticleInformation Current;
      vtkParticleTracerBaseNamespace::ParticleInformation Previous;
      vtkSmartPointer<vtkPointData> PreviousPD;
    };

    typedef std::vector<RemoteParticleInfo>  RemoteParticleVector;


     vtkPParticleTracerBase();
    ~vtkPParticleTracerBase();

    virtual int RequestUpdateExtent(vtkInformation* request,
                                  vtkInformationVector** inputVector,
                                  vtkInformationVector* outputVector);

    //
    // Generate output
    //
    virtual int RequestData(vtkInformation* request,
                            vtkInformationVector** inputVector,
                            vtkInformationVector* outputVector);

//
//BTX

    virtual vtkPolyData* Execute(vtkInformationVector** inputVector);
    virtual bool SendParticleToAnotherProcess(vtkParticleTracerBaseNamespace::ParticleInformation & info,
                                              vtkParticleTracerBaseNamespace::ParticleInformation & previous,
                                              vtkPointData*);

    // Description : Before starting the particle trace, classify
    // all the injection/seed points according to which processor
    // they belong to. This saves us retesting at every injection time
    // providing 1) The volumes are static, 2) the seed points are static
    // If either are non static, then this step is skipped.
    virtual void AssignSeedsToProcessors(double time,
      vtkDataSet *source, int sourceID, int ptId,
      vtkParticleTracerBaseNamespace::ParticleVector &LocalSeedPoints,
      int &LocalAssignedCount);

    // Description : once seeds have been assigned to a process, we
    // give each one a uniqu ID. We need to use MPI to find out
    // who is using which numbers.
    virtual void AssignUniqueIds(
      vtkParticleTracerBaseNamespace::ParticleVector &LocalSeedPoints);

    // Description : Perform a GatherV operation on a vector of particles
    // this is used during classification of seed points and also between iterations
    // of the main loop as particles leave each processor domain
    virtual void SendReceiveParticles(RemoteParticleVector &outofdomain, RemoteParticleVector &received);

    void UpdateParticleListFromOtherProcesses();

  // Description:
  // Method that checks that the input arrays are ordered the
  // same on all data sets. This needs to be true for all
  // blocks in a composite data set as well as across all processes.
  virtual bool IsPointDataValid(vtkDataObject* input);


//
//ETX
//

  // MPI controller needed when running in parallel
  vtkMultiProcessController* Controller;

  // List used for transmitting between processors during parallel operation
  RemoteParticleVector MPISendList;

  int Rank;
  int NumProcs;
  RemoteParticleVector Tail; //this is to receive the "tails" of traces from other processes
private:
  vtkPParticleTracerBase(const vtkPParticleTracerBase&);  // Not implemented.
  void operator=(const vtkPParticleTracerBase&);  // Not implemented.

};

#endif