vtkPANLHaloFinder.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 vtkPANLHaloFinder_h
5 #define vtkPANLHaloFinder_h
6 
28 #include "vtkPVVTKExtensionsCosmoToolsModule.h" // For export macro
30 
32 
33 class VTKPVVTKEXTENSIONSCOSMOTOOLS_EXPORT vtkPANLHaloFinder : public vtkUnstructuredGridAlgorithm
34 {
36 
37 public:
38  static vtkPANLHaloFinder* New();
39  void PrintSelf(ostream& os, vtkIndent indent);
40 
42 
46  vtkSetMacro(RunSubHaloFinder, bool);
47  vtkGetMacro(RunSubHaloFinder, bool);
48  vtkBooleanMacro(RunSubHaloFinder, bool);
50 
52 
56  vtkSetMacro(RL, double);
57  vtkGetMacro(RL, double);
59 
61 
66  vtkSetMacro(DistanceConvertFactor, double);
67  vtkGetMacro(DistanceConvertFactor, double);
69 
71 
76  vtkSetMacro(MassConvertFactor, double);
77  vtkGetMacro(MassConvertFactor, double);
79 
81 
86  vtkSetMacro(DeadSize, double);
87  vtkGetMacro(DeadSize, double);
89 
91 
96  vtkSetMacro(ParticleMass, float);
97  vtkGetMacro(ParticleMass, float);
99 
101 
106  vtkSetMacro(BB, double);
107  vtkGetMacro(BB, double);
109 
111 
116  vtkSetClampMacro(AlphaFactor, double, 0.0, 1.0);
117  vtkGetMacro(AlphaFactor, double);
119 
121 
127  vtkSetClampMacro(BetaFactor, double, 0.0, 1.0);
128  vtkGetMacro(BetaFactor, double);
130 
132 
136  vtkSetMacro(NP, int);
137  vtkGetMacro(NP, int);
139 
141 
146  vtkSetMacro(NMin, int);
147  vtkGetMacro(NMin, int);
149 
151 
156  vtkSetMacro(PMin, int);
157  vtkGetMacro(PMin, int);
159 
161 
165  vtkSetMacro(MinFOFSubhaloSize, long);
166  vtkGetMacro(MinFOFSubhaloSize, long);
168 
170 
174  vtkSetMacro(MinCandidateSize, int);
175  vtkGetMacro(MinCandidateSize, int);
177 
179 
183  vtkSetMacro(NumSPHNeighbors, int);
184  vtkGetMacro(NumSPHNeighbors, int);
186 
188 
193  vtkSetMacro(NumNeighbors, int);
194  vtkGetMacro(NumNeighbors, int);
196 
198  {
199  NONE = 0,
200  MOST_BOUND_PARTICLE = 1,
201  MOST_CONNECTED_PARTICLE = 2,
202  HIST_CENTER_FINDING = 3
203  };
204 
206 
211  vtkSetMacro(CenterFindingMode, int);
212  vtkGetMacro(CenterFindingMode, int);
214 
216 
220  vtkSetMacro(SmoothingLength, double);
221  vtkGetMacro(SmoothingLength, double);
223 
225 
230  vtkSetMacro(OmegaDM, double);
231  vtkGetMacro(OmegaDM, double);
233 
235 
240  vtkSetMacro(OmegaNU, double);
241  vtkGetMacro(OmegaNU, double);
243 
245 
250  vtkSetMacro(Deut, double);
251  vtkGetMacro(Deut, double);
253 
255 
260  vtkSetMacro(Hubble, double);
261  vtkGetMacro(Hubble, double);
263 
265 
269  vtkSetMacro(RedShift, double);
270  vtkGetMacro(RedShift, double);
272 
273 protected:
275  virtual ~vtkPANLHaloFinder();
276 
279  int FillInputPortInformation(int port, vtkInformation* info);
280 
281  double RL;
284  double DeadSize;
286  double BB;
287  double AlphaFactor;
288  double BetaFactor;
289  int NP;
290  int NMin;
291  int PMin;
296 
298 
299  // Center finding parameters
302  double OmegaNU;
303  double OmegaDM;
304  double Deut;
305  double Hubble;
306  double RedShift;
307 
309 
310  class vtkInternals;
311  vtkInternals* Internal;
312 
313 private:
314  vtkPANLHaloFinder(const vtkPANLHaloFinder&) = delete;
315  void operator=(const vtkPANLHaloFinder&) = delete;
316 
317  void ExtractDataArrays(vtkUnstructuredGrid* input, vtkIdType offset);
318  void DistributeInput();
319  void CreateGhostParticles();
320  void ExecuteHaloFinder(vtkUnstructuredGrid* allParticles, vtkUnstructuredGrid* fofProperties);
321  void ExecuteSubHaloFinder(
322  vtkUnstructuredGrid* allParticles, vtkUnstructuredGrid* subFofProperties);
323  void FindCenters(vtkUnstructuredGrid* allParticles, vtkUnstructuredGrid* fofProperties);
324 };
325 
326 #endif // vtkPANLHaloFinder_h
vtkPANLHaloFinder::MinFOFSubhaloSize
long MinFOFSubhaloSize
Definition: vtkPANLHaloFinder.h:292
vtkObjectBase::operator=
void operator=(const vtkObjectBase &)
vtkPANLHaloFinder::SmoothingLength
double SmoothingLength
Definition: vtkPANLHaloFinder.h:301
vtkPANLHaloFinder::CenterFindingType
CenterFindingType
Definition: vtkPANLHaloFinder.h:197
vtkIdType
int vtkIdType
vtkPANLHaloFinder::DistanceConvertFactor
double DistanceConvertFactor
Definition: vtkPANLHaloFinder.h:282
vtkInformationVector
vtkPANLHaloFinder::RunSubHaloFinder
bool RunSubHaloFinder
Definition: vtkPANLHaloFinder.h:297
vtkPANLHaloFinder::NumNeighbors
int NumNeighbors
Definition: vtkPANLHaloFinder.h:295
vtkPANLHaloFinder::NumSPHNeighbors
int NumSPHNeighbors
Definition: vtkPANLHaloFinder.h:294
vtkPANLHaloFinder::PMin
int PMin
Definition: vtkPANLHaloFinder.h:291
vtkPANLHaloFinder::OmegaNU
double OmegaNU
Definition: vtkPANLHaloFinder.h:302
vtkPANLHaloFinder::BetaFactor
double BetaFactor
Definition: vtkPANLHaloFinder.h:288
vtkPANLHaloFinder::Controller
vtkMultiProcessController * Controller
Definition: vtkPANLHaloFinder.h:308
vtkPANLHaloFinder::RL
double RL
Definition: vtkPANLHaloFinder.h:281
vtkPANLHaloFinder::MinCandidateSize
int MinCandidateSize
Definition: vtkPANLHaloFinder.h:293
vtkPANLHaloFinder::MassConvertFactor
double MassConvertFactor
Definition: vtkPANLHaloFinder.h:283
vtkPANLHaloFinder::CenterFindingMode
int CenterFindingMode
Definition: vtkPANLHaloFinder.h:300
vtkPANLHaloFinder::RedShift
double RedShift
Definition: vtkPANLHaloFinder.h:306
vtkUnstructuredGridAlgorithm::RequestInformation
virtual int RequestInformation(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
vtkPANLHaloFinder::NP
int NP
Definition: vtkPANLHaloFinder.h:289
vtkMultiProcessController
vtkUnstructuredGridAlgorithm::RequestData
virtual int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
vtkIndent
vtkUnstructuredGridAlgorithm::FillInputPortInformation
virtual int FillInputPortInformation(int port, vtkInformation *info)
vtkPANLHaloFinder
Definition: vtkPANLHaloFinder.h:33
vtkPANLHaloFinder::BB
double BB
Definition: vtkPANLHaloFinder.h:286
vtkPANLHaloFinder::Hubble
double Hubble
Definition: vtkPANLHaloFinder.h:305
vtkUnstructuredGridAlgorithm::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) VTK_OVERRIDE
vtkInformation
vtkUnstructuredGridAlgorithm::New
static vtkUnstructuredGridAlgorithm * New()
vtkUnstructuredGridAlgorithm.h
vtkPANLHaloFinder::DeadSize
double DeadSize
Definition: vtkPANLHaloFinder.h:284
vtkUnstructuredGridAlgorithm
vtkPANLHaloFinder::AlphaFactor
double AlphaFactor
Definition: vtkPANLHaloFinder.h:287
vtkUnstructuredGrid
vtkPANLHaloFinder::ParticleMass
float ParticleMass
Definition: vtkPANLHaloFinder.h:285
vtkPANLHaloFinder::Internal
vtkInternals * Internal
Definition: vtkPANLHaloFinder.h:310
vtkPANLHaloFinder::NMin
int NMin
Definition: vtkPANLHaloFinder.h:290
vtkPANLHaloFinder::Deut
double Deut
Definition: vtkPANLHaloFinder.h:304
pqTimelineTrack::NONE
@ NONE
Definition: pqTimelineModel.h:41
vtkPANLHaloFinder::OmegaDM
double OmegaDM
Definition: vtkPANLHaloFinder.h:303