15 #ifndef vtkPANLHaloFinder_h 16 #define vtkPANLHaloFinder_h 39 #include "vtkPVVTKExtensionsCosmoToolsModule.h" 40 #include "vtkUnstructuredGridAlgorithm.h" 42 class vtkMultiProcessController;
44 class VTKPVVTKEXTENSIONSCOSMOTOOLS_EXPORT
vtkPANLHaloFinder :
public vtkUnstructuredGridAlgorithm
48 void PrintSelf(ostream& os, vtkIndent indent);
55 vtkSetMacro(RunSubHaloFinder,
bool) vtkGetMacro(RunSubHaloFinder,
bool)
56 vtkBooleanMacro(RunSubHaloFinder,
bool)
64 vtkSetMacro(RL,
double) vtkGetMacro(RL,
double)
73 vtkSetMacro(DistanceConvertFactor,
double) vtkGetMacro(DistanceConvertFactor,
double)
82 vtkSetMacro(MassConvertFactor,
double) vtkGetMacro(MassConvertFactor,
double)
91 vtkSetMacro(DeadSize,
double) vtkGetMacro(DeadSize,
double)
100 vtkSetMacro(ParticleMass,
float) vtkGetMacro(ParticleMass,
float)
109 vtkSetMacro(BB,
double) vtkGetMacro(BB,
double)
118 vtkSetClampMacro(AlphaFactor,
double, 0.0, 1.0) vtkGetMacro(AlphaFactor,
double)
128 vtkSetClampMacro(BetaFactor,
double, 0.0, 1.0) vtkGetMacro(BetaFactor,
double)
136 vtkSetMacro(NP,
int) vtkGetMacro(NP,
int)
145 vtkSetMacro(NMin,
int) vtkGetMacro(NMin,
int)
154 vtkSetMacro(PMin,
int) vtkGetMacro(PMin,
int)
162 vtkSetMacro(MinFOFSubhaloSize,
long) vtkGetMacro(MinFOFSubhaloSize,
long)
170 vtkSetMacro(MinCandidateSize,
int) vtkGetMacro(MinCandidateSize,
int)
178 vtkSetMacro(NumSPHNeighbors,
int) vtkGetMacro(NumSPHNeighbors,
int)
187 vtkSetMacro(NumNeighbors,
int) vtkGetMacro(NumNeighbors,
int)
192 MOST_BOUND_PARTICLE = 1,
193 MOST_CONNECTED_PARTICLE = 2,
194 HIST_CENTER_FINDING = 3
203 vtkSetMacro(CenterFindingMode,
int) vtkGetMacro(CenterFindingMode,
int)
211 vtkSetMacro(SmoothingLength,
double) vtkGetMacro(SmoothingLength,
double)
220 vtkSetMacro(OmegaDM,
double) vtkGetMacro(OmegaDM,
double)
229 vtkSetMacro(OmegaNU,
double) vtkGetMacro(OmegaNU,
double)
238 vtkSetMacro(Deut,
double) vtkGetMacro(Deut,
double)
247 vtkSetMacro(Hubble,
double) vtkGetMacro(Hubble,
double)
255 vtkSetMacro(RedShift,
double) vtkGetMacro(RedShift,
double)
259 virtual ~vtkPANLHaloFinder();
261 virtual
int RequestInformation(vtkInformation*, vtkInformationVector**, vtkInformationVector*);
262 virtual
int RequestData(vtkInformation*, vtkInformationVector**, vtkInformationVector*);
263 int FillInputPortInformation(
int port, vtkInformation* info);
266 double DistanceConvertFactor;
267 double MassConvertFactor;
276 long MinFOFSubhaloSize;
277 int MinCandidateSize;
281 bool RunSubHaloFinder;
284 int CenterFindingMode;
285 double SmoothingLength;
292 vtkMultiProcessController* Controller;
295 vtkInternals* Internal;
298 vtkPANLHaloFinder(const vtkPANLHaloFinder&) VTK_DELETE_FUNCTION;
299 void operator=(const vtkPANLHaloFinder&) VTK_DELETE_FUNCTION;
301 void ExtractDataArrays(vtkUnstructuredGrid* input, vtkIdType offset);
302 void DistributeInput();
303 void CreateGhostParticles();
304 void ExecuteHaloFinder(vtkUnstructuredGrid* allParticles, vtkUnstructuredGrid* fofProperties);
305 void ExecuteSubHaloFinder(
306 vtkUnstructuredGrid* allParticles, vtkUnstructuredGrid* subFofProperties);
307 void FindCenters(vtkUnstructuredGrid* allParticles, vtkUnstructuredGrid* fofProperties);
310 #endif // vtkPANLHaloFinder_h Given an input a vtkUnstructuredGrid of points with arrays vx, vy, vz, and id, finds clumps of points...