VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkPCosmoHaloFinder.h 00005 00006 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 00007 All rights reserved. 00008 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00009 00010 This software is distributed WITHOUT ANY WARRANTY; without even 00011 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00012 PURPOSE. See the above copyright notice for more information. 00013 00014 =========================================================================*/ 00015 /*========================================================================= 00016 00017 Program: VTK/ParaView Los Alamos National Laboratory Modules (PVLANL) 00018 Module: vtkPCosmoHaloFinder.h 00019 00020 Copyright (c) 2007, 2009, Los Alamos National Security, LLC 00021 00022 All rights reserved. 00023 00024 Copyright 2007, 2009. Los Alamos National Security, LLC. 00025 This software was produced under U.S. Government contract DE-AC52-06NA25396 00026 for Los Alamos National Laboratory (LANL), which is operated by 00027 Los Alamos National Security, LLC for the U.S. Department of Energy. 00028 The U.S. Government has rights to use, reproduce, and distribute this software. 00029 NEITHER THE GOVERNMENT NOR LOS ALAMOS NATIONAL SECURITY, LLC MAKES ANY WARRANTY, 00030 EXPRESS OR IMPLIED, OR ASSUMES ANY LIABILITY FOR THE USE OF THIS SOFTWARE. 00031 If software is modified to produce derivative works, such modified software 00032 should be clearly marked, so as not to confuse it with the version available 00033 from LANL. 00034 00035 Additionally, redistribution and use in source and binary forms, with or 00036 without modification, are permitted provided that the following conditions 00037 are met: 00038 - Redistributions of source code must retain the above copyright notice, 00039 this list of conditions and the following disclaimer. 00040 - Redistributions in binary form must reproduce the above copyright notice, 00041 this list of conditions and the following disclaimer in the documentation 00042 and/or other materials provided with the distribution. 00043 - Neither the name of Los Alamos National Security, LLC, Los Alamos National 00044 Laboratory, LANL, the U.S. Government, nor the names of its contributors 00045 may be used to endorse or promote products derived from this software 00046 without specific prior written permission. 00047 00048 THIS SOFTWARE IS PROVIDED BY LOS ALAMOS NATIONAL SECURITY, LLC AND CONTRIBUTORS 00049 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 00050 THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 00051 ARE DISCLAIMED. IN NO EVENT SHALL LOS ALAMOS NATIONAL SECURITY, LLC OR 00052 CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 00053 EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 00054 PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 00055 OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 00056 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 00057 OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 00058 ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00059 00060 =========================================================================*/ 00069 #ifndef __vtkPCosmoHaloFinder_h 00070 #define __vtkPCosmoHaloFinder_h 00071 00072 #include "vtkUnstructuredGridAlgorithm.h" 00073 00074 class vtkMultiProcessController; 00075 00076 class VTK_PARALLEL_EXPORT vtkPCosmoHaloFinder : public vtkUnstructuredGridAlgorithm 00077 { 00078 public: 00079 static vtkPCosmoHaloFinder *New(); 00080 00081 vtkTypeMacro(vtkPCosmoHaloFinder,vtkUnstructuredGridAlgorithm); 00082 void PrintSelf(ostream& os, vtkIndent indent); 00083 00085 00086 virtual vtkMultiProcessController* GetController(); 00087 virtual void SetController(vtkMultiProcessController*); 00089 00091 00093 vtkSetMacro(NP, int); 00094 vtkGetMacro(NP, int); 00096 00098 00099 vtkSetMacro(RL, float); 00100 vtkGetMacro(RL, float); 00102 00104 00106 vtkSetMacro(Overlap, float); 00107 vtkGetMacro(Overlap, float); 00109 00111 00113 vtkSetMacro(PMin, int); 00114 vtkGetMacro(PMin, int); 00116 00118 00119 vtkSetMacro(BB, float); 00120 vtkGetMacro(BB, float); 00122 00124 00125 vtkSetMacro(CopyHaloDataToParticles, int); 00126 vtkGetMacro(CopyHaloDataToParticles, int); 00128 00130 00132 vtkSetMacro(ComputeMostBoundParticle, int); 00133 vtkGetMacro(ComputeMostBoundParticle, int); 00135 00137 00139 vtkSetMacro(ComputeMostConnectedParticle, int); 00140 vtkGetMacro(ComputeMostConnectedParticle, int); 00142 00144 00145 vtkSetMacro(ComputeSOD, int); 00146 vtkGetMacro(ComputeSOD, int); 00148 00150 00152 vtkSetMacro(SODCenterType, int); 00153 vtkGetMacro(SODCenterType, int); 00155 00157 00158 vtkSetMacro(RhoC, float); 00159 vtkGetMacro(RhoC, float); 00161 00163 00164 vtkSetMacro(SODMass, float); 00165 vtkGetMacro(SODMass, float); 00167 00169 00170 vtkSetMacro(MinRadiusFactor, float); 00171 vtkGetMacro(MinRadiusFactor, float); 00173 00175 00176 vtkSetMacro(MaxRadiusFactor, float); 00177 vtkGetMacro(MaxRadiusFactor, float); 00179 00181 00182 vtkSetMacro(SODBins, int); 00183 vtkGetMacro(SODBins, int); 00185 00187 00188 vtkSetMacro(MinFOFSize, int); 00189 vtkGetMacro(MinFOFSize, int); 00191 00193 00194 vtkSetMacro(MinFOFMass, float); 00195 vtkGetMacro(MinFOFMass, float); 00197 00198 protected: 00199 vtkPCosmoHaloFinder(); 00200 ~vtkPCosmoHaloFinder(); 00201 00202 virtual int RequestInformation(vtkInformation*, 00203 vtkInformationVector**, 00204 vtkInformationVector*); 00205 00206 virtual int RequestData(vtkInformation*, 00207 vtkInformationVector**, 00208 vtkInformationVector*); 00209 00210 vtkMultiProcessController* Controller; 00211 00212 int NP; // number of particles in the original simulation 00213 float RL; // The physical box dimensions (rL) 00214 float Overlap; // The ghost cell boundary space 00215 int PMin; // The minimum particles for a halo 00216 float BB; // The linking length 00217 int CopyHaloDataToParticles; // Copy halo information to original data 00218 int ComputeMostBoundParticle; // Turn on MBP finding 00219 int ComputeMostConnectedParticle; // Turn on MCP finding 00220 00221 int ComputeSOD; // Turn on Spherical OverDensity (SOD) halos 00222 int SODCenterType; // Set the center finding for SOD halos 00223 00224 float RhoC; // SOD rho_C (2.77536627e11) 00225 float SODMass; // Initial SOD mass (1.0e14) 00226 float MinRadiusFactor; // Minimum factor of SOD radius (0.5) 00227 float MaxRadiusFactor; // Maximum factor of SOD radius (2.0) 00228 int SODBins; // Number of log scale bins for SOD (20) 00229 int MinFOFSize; // Minimum FOF size for SOD (1000) 00230 float MinFOFMass; // Minimum FOF mass for SOD (5.0e12) 00231 00232 private: 00233 vtkPCosmoHaloFinder(const vtkPCosmoHaloFinder&); // Not implemented. 00234 void operator=(const vtkPCosmoHaloFinder&); // Not implemented. 00235 00236 }; 00237 00238 #endif // __vtkPCosmoHaloFinder_h