VTK
vtkPCosmoHaloFinder.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkPCosmoHaloFinder.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 /*=========================================================================
16 
17  Program: VTK/ParaView Los Alamos National Laboratory Modules (PVLANL)
18  Module: vtkPCosmoHaloFinder.h
19 
20 Copyright (c) 2007, 2009, Los Alamos National Security, LLC
21 
22 All rights reserved.
23 
24 Copyright 2007, 2009. Los Alamos National Security, LLC.
25 This software was produced under U.S. Government contract DE-AC52-06NA25396
26 for Los Alamos National Laboratory (LANL), which is operated by
27 Los Alamos National Security, LLC for the U.S. Department of Energy.
28 The U.S. Government has rights to use, reproduce, and distribute this software.
29 NEITHER THE GOVERNMENT NOR LOS ALAMOS NATIONAL SECURITY, LLC MAKES ANY WARRANTY,
30 EXPRESS OR IMPLIED, OR ASSUMES ANY LIABILITY FOR THE USE OF THIS SOFTWARE.
31 If software is modified to produce derivative works, such modified software
32 should be clearly marked, so as not to confuse it with the version available
33 from LANL.
34 
35 Additionally, redistribution and use in source and binary forms, with or
36 without modification, are permitted provided that the following conditions
37 are met:
38 - Redistributions of source code must retain the above copyright notice,
39  this list of conditions and the following disclaimer.
40 - Redistributions in binary form must reproduce the above copyright notice,
41  this list of conditions and the following disclaimer in the documentation
42  and/or other materials provided with the distribution.
43 - Neither the name of Los Alamos National Security, LLC, Los Alamos National
44  Laboratory, LANL, the U.S. Government, nor the names of its contributors
45  may be used to endorse or promote products derived from this software
46  without specific prior written permission.
47 
48 THIS SOFTWARE IS PROVIDED BY LOS ALAMOS NATIONAL SECURITY, LLC AND CONTRIBUTORS
49 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
50 THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
51 ARE DISCLAIMED. IN NO EVENT SHALL LOS ALAMOS NATIONAL SECURITY, LLC OR
52 CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
53 EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
54 PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
55 OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
56 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
57 OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
58 ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
59 
60 =========================================================================*/
69 #ifndef __vtkPCosmoHaloFinder_h
70 #define __vtkPCosmoHaloFinder_h
71 
73 
75 
77 {
78  public:
79  static vtkPCosmoHaloFinder *New();
80 
82  void PrintSelf(ostream& os, vtkIndent indent);
83 
85 
86  virtual vtkMultiProcessController* GetController();
87  virtual void SetController(vtkMultiProcessController*);
89 
91 
93  vtkSetMacro(NP, int);
94  vtkGetMacro(NP, int);
96 
98 
99  vtkSetMacro(RL, float);
100  vtkGetMacro(RL, float);
102 
104 
106  vtkSetMacro(Overlap, float);
107  vtkGetMacro(Overlap, float);
109 
111 
113  vtkSetMacro(PMin, int);
114  vtkGetMacro(PMin, int);
116 
118 
119  vtkSetMacro(BB, float);
120  vtkGetMacro(BB, float);
122 
124 
125  vtkSetMacro(CopyHaloDataToParticles, int);
126  vtkGetMacro(CopyHaloDataToParticles, int);
128 
130 
132  vtkSetMacro(ComputeMostBoundParticle, int);
133  vtkGetMacro(ComputeMostBoundParticle, int);
135 
137 
139  vtkSetMacro(ComputeMostConnectedParticle, int);
140  vtkGetMacro(ComputeMostConnectedParticle, int);
142 
144 
145  vtkSetMacro(ComputeSOD, int);
146  vtkGetMacro(ComputeSOD, int);
148 
150 
152  vtkSetMacro(SODCenterType, int);
153  vtkGetMacro(SODCenterType, int);
155 
157 
159  vtkSetMacro(RhoCScale, float);
160  vtkGetMacro(RhoCScale, float);
162 
164 
165  vtkSetMacro(SODMassScale, float);
166  vtkGetMacro(SODMassScale, float);
168 
169  protected:
172 
173  virtual int RequestInformation(vtkInformation*,
176 
177  virtual int RequestData(vtkInformation*,
180 
182 
183  int NP; // number of particles in the original simulation
184  float RL; // The physical box dimensions (rL)
185  float Overlap; // The ghost cell boundary space
186  int PMin; // The minimum particles for a halo
187  float BB; // The linking length
188  int CopyHaloDataToParticles; // Copy halo information to original data
189  int ComputeMostBoundParticle; // Turn on MBP finding
190  int ComputeMostConnectedParticle; // Turn on MCP finding
191 
192  int ComputeSOD; // Turn on Spherical OverDensity (SOD) halos
193  int SODCenterType; // Set the center finding for SOD halos
194  float RhoCScale; // Scale factor for rho_C (2.77536627e11)
195  float SODMassScale; // Scale factor for initial SOD mass (1.0e14)
196 
197  private:
198  vtkPCosmoHaloFinder(const vtkPCosmoHaloFinder&); // Not implemented.
199  void operator=(const vtkPCosmoHaloFinder&); // Not implemented.
200 
201 };
202 
203 #endif // __vtkPCosmoHaloFinder_h
vtkMultiProcessController * Controller
virtual int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
Store vtkAlgorithm input/output information.
static vtkUnstructuredGridAlgorithm * New()
virtual int RequestInformation(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
a simple class to control print indentation
Definition: vtkIndent.h:37
void PrintSelf(ostream &os, vtkIndent indent)
Superclass for algorithms that produce only unstructured grid as output.
find halos within a cosmology data file
#define VTK_PARALLEL_EXPORT
Store zero or more vtkInformation instances.
Multiprocessing communication superclass.