vtkPANLSubhaloFinder.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkPANLSubhaloFinder.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14  =========================================================================*/
15 #ifndef vtkPANLSubhaloFinder_h
16 #define vtkPANLSubhaloFinder_h
17 
38 #include "vtkNew.h" // for vtkNew
39 #include "vtkPVVTKExtensionsCosmoToolsModule.h" // for export macro
41 
43 class vtkIdList;
44 
45 class VTKPVVTKEXTENSIONSCOSMOTOOLS_EXPORT vtkPANLSubhaloFinder : public vtkPassInputTypeAlgorithm
46 {
48  : static vtkPANLSubhaloFinder* New();
49  void PrintSelf(ostream& os, vtkIndent indent);
50 
51  enum
52  {
53  ALL_HALOS = 0,
54  HALOS_LARGER_THAN_THRESHOLD = 1,
55  ONLY_SELECTED_HALOS = 2
56  };
57 
59 
67  vtkSetClampMacro(Mode, int, ALL_HALOS, ONLY_SELECTED_HALOS) vtkGetMacro(Mode, int)
69 
71 
76  vtkSetMacro(SizeThreshold, vtkIdType) vtkGetMacro(SizeThreshold, vtkIdType)
78 
83  vtkIdType GetHaloToProcess(vtkIdType idx);
88  void AddHaloToProcess(vtkIdType haloId);
93  void SetHaloToProcess(vtkIdType idx, vtkIdType haloId);
98  void SetNumberOfHalosToProcess(vtkIdType num);
103  vtkIdType GetNumberOfHalosToProcess();
108  void ClearHalosToProcess();
109 
111 
115  vtkSetMacro(RL, double) vtkGetMacro(RL, double)
117 
119 
124  vtkSetMacro(DeadSize, double) vtkGetMacro(DeadSize, double)
126 
128 
133  vtkSetMacro(ParticleMass, float) vtkGetMacro(ParticleMass, float)
135 
137 
142  vtkSetMacro(BB, double) vtkGetMacro(BB, double)
144 
146 
151  vtkSetClampMacro(AlphaFactor, double, 0.0, 1.0) vtkGetMacro(AlphaFactor, double)
153 
155 
161  vtkSetClampMacro(BetaFactor, double, 0.0, 1.0) vtkGetMacro(BetaFactor, double)
163 
165 
169  vtkSetMacro(MinCandidateSize, int) vtkGetMacro(MinCandidateSize, int)
171 
173 
177  vtkSetMacro(NumSPHNeighbors, int) vtkGetMacro(NumSPHNeighbors, int)
179 
181 
186  vtkSetMacro(NumNeighbors, int) vtkGetMacro(NumNeighbors, int)
188 
189  protected : vtkPANLSubhaloFinder();
190  virtual ~vtkPANLSubhaloFinder();
191 
192  int FillInputPortInformation(int port, vtkInformation* info);
193  virtual int RequestInformation(vtkInformation*, vtkInformationVector**, vtkInformationVector*);
194  virtual int RequestData(vtkInformation*, vtkInformationVector**, vtkInformationVector*);
195 
196  double RL;
197  double DeadSize;
198  double BB;
199  double ParticleMass;
200  double AlphaFactor;
201  double BetaFactor;
202  int MinCandidateSize;
203  int NumSPHNeighbors;
204  int NumNeighbors;
205 
206  int Mode;
207  vtkIdType SizeThreshold;
208 
209  vtkNew<vtkIdList> HalosToProcess;
211 
212  class vtkInternals;
213  vtkInternals* Internal;
214 
215 private:
216  vtkPANLSubhaloFinder(const vtkPANLSubhaloFinder&) = delete;
217  void operator=(const vtkPANLSubhaloFinder&) = delete;
218 
219  void ExecuteSubHaloFinder(vtkUnstructuredGrid* input, vtkUnstructuredGrid* allParticles,
220  vtkUnstructuredGrid* subFofProperties);
221 };
222 
223 #endif
int vtkIdType
void PrintSelf(ostream &os, vtkIndent indent) VTK_OVERRIDE
#define const
Definition: zconf.h:235
This filter takes the output of the HACC halo finder and runs the subhalo finder on a user-specified ...
static vtkPassInputTypeAlgorithm * New()