vtkPANLSubhaloFinder.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Kitware Inc.
2 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
3 // SPDX-License-Identifier: BSD-3-Clause
4 #ifndef vtkPANLSubhaloFinder_h
5 #define vtkPANLSubhaloFinder_h
6 
27 #include "vtkNew.h" // for vtkNew
28 #include "vtkPVVTKExtensionsCosmoToolsModule.h" // for export macro
30 
32 class vtkIdList;
33 
34 class VTKPVVTKEXTENSIONSCOSMOTOOLS_EXPORT vtkPANLSubhaloFinder : public vtkPassInputTypeAlgorithm
35 {
37 
38 public:
39  static vtkPANLSubhaloFinder* New();
40  void PrintSelf(ostream& os, vtkIndent indent);
41 
42  enum
43  {
44  ALL_HALOS = 0,
45  HALOS_LARGER_THAN_THRESHOLD = 1,
46  ONLY_SELECTED_HALOS = 2
47  };
48 
50 
58  vtkSetClampMacro(Mode, int, ALL_HALOS, ONLY_SELECTED_HALOS);
59  vtkGetMacro(Mode, int);
61 
63 
68  vtkSetMacro(SizeThreshold, vtkIdType);
69  vtkGetMacro(SizeThreshold, vtkIdType);
71 
76  vtkIdType GetHaloToProcess(vtkIdType idx);
81  void AddHaloToProcess(vtkIdType haloId);
86  void SetHaloToProcess(vtkIdType idx, vtkIdType haloId);
91  void SetNumberOfHalosToProcess(vtkIdType num);
96  vtkIdType GetNumberOfHalosToProcess();
101  void ClearHalosToProcess();
102 
104 
108  vtkSetMacro(RL, double);
109  vtkGetMacro(RL, double);
111 
113 
118  vtkSetMacro(DeadSize, double);
119  vtkGetMacro(DeadSize, double);
121 
123 
128  vtkSetMacro(ParticleMass, float);
129  vtkGetMacro(ParticleMass, float);
131 
133 
138  vtkSetMacro(BB, double);
139  vtkGetMacro(BB, double);
141 
143 
148  vtkSetClampMacro(AlphaFactor, double, 0.0, 1.0);
149  vtkGetMacro(AlphaFactor, double);
151 
153 
159  vtkSetClampMacro(BetaFactor, double, 0.0, 1.0);
160  vtkGetMacro(BetaFactor, double);
162 
164 
168  vtkSetMacro(MinCandidateSize, int);
169  vtkGetMacro(MinCandidateSize, int);
171 
173 
177  vtkSetMacro(NumSPHNeighbors, int);
178  vtkGetMacro(NumSPHNeighbors, int);
180 
182 
187  vtkSetMacro(NumNeighbors, int);
188  vtkGetMacro(NumNeighbors, int);
190 
191 protected:
193  virtual ~vtkPANLSubhaloFinder();
194 
195  int FillInputPortInformation(int port, vtkInformation* info);
198 
199  double RL;
200  double DeadSize;
201  double BB;
202  double ParticleMass;
203  double AlphaFactor;
204  double BetaFactor;
208 
209  int Mode;
211 
214 
215  class vtkInternals;
216  vtkInternals* Internal;
217 
218 private:
220  void operator=(const vtkPANLSubhaloFinder&) = delete;
221 
222  void ExecuteSubHaloFinder(vtkUnstructuredGrid* input, vtkUnstructuredGrid* allParticles,
223  vtkUnstructuredGrid* subFofProperties);
224 };
225 
226 #endif
virtual int RequestInformation(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
int vtkIdType
vtkMultiProcessController * Controller
virtual int FillInputPortInformation(int port, vtkInformation *info)
void PrintSelf(ostream &os, vtkIndent indent) VTK_OVERRIDE
vtkNew< vtkIdList > HalosToProcess
void operator=(const vtkObjectBase &)
virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
This filter takes the output of the HACC halo finder and runs the subhalo finder on a user-specified ...
static vtkPassInputTypeAlgorithm * New()