420 likes | 491 Views
GasPMViewer 1.x.x. The Secrets of Particle Visualization methods. The summer school 2006 on "Computational Cosmology" Astrophysical Institute Potsdam (AIP). OUTLINE. Modern Cosmological Simulations Basics of DM Simulations Density calculation PMViewer basics. Developed Branches.
E N D
GasPMViewer 1.x.x The Secrets of Particle Visualization methods. The summer school 2006 on "Computational Cosmology" Astrophysical Institute Potsdam (AIP).
OUTLINE • Modern Cosmological Simulations • Basics of DM Simulations • Density calculation • PMViewer basics. • Developed Branches. • Visualization algorithms: • DM • GAS • Introduction to Stereo 3D • Basic concepts • 3D stereo facilities at AIP <= NEW Visualization Technique
Modern Cosmological Simulations • The evolution of cosmic structures is a nonlinear process. • In the simulation Box up to 5123(134M) particles or more. • Output of one time step is: ~3.2GB raw data. • ~200K gravitationally bound objects: Haloes and subhaloes. • For constructing merger history we need >100 time steps.
Simulations Diagram • Particles (points) • MESH(AMR grid) • Properties (Rho, T,P etc) • Halo catalogs: • Positions • Radius • Triaxial ellipsoids
What to visualize? • 2 vector fields • Positions r (X,Y,Z) • Velocities v (VX, VY, VZ) • Several scalar fields • Density • Temperature • Pressure • Absolute Velocity measured by observer
Density calculation for Point data • NGP • CIC • TSC • AMR • SPH • BH-Tree (oct-tree) • KD-Tree (binary-tree)
slice with Z depth Mapping particles to GRID
Result=SLICE • After 15 min on supercomputer we will get CIC on a GRID resolution 512^3
Density estimation by BH-Tree • Build the BH-Tree (J.Barnes,P.Hut, 1986) • Calculate density = MCOM/Vnode • Disadvantages: over/under-estimate!!! • Advantages: It is fast and useful for visualizations!!!
True SPH Density • Assign "radius" defined by N-neighbors (Nngb=30-60). • Get density by: i=NjmjW(rij,hi), where W(r , h) is a smoothing kernel. • Disadvantages: Needs computational power!!! • Advantages: It is more accurate.
Examples: SPH on a GRID NGB=40 NGB=250
Idea of PMViewer • Interactivefasttool to visualize particles. • Visualize Haloes to check halo finder algorithms. • Easy to handle and expand. • Multiplatform • possibility to run on supercomputers • non interactive rendering • Make fancy movies
QT based PMViewer 2.x.x • This is not supported anymore.
Modern GasPMViewer’s properties • OS: Linux, MacOS, CygWin • Programming Language: C/C++ • Environment: X11 • Require: >= g++2.99, OpenGL, GLUT • Hardware: >=P3 400Mhz, >32M VRAM. • Notes: Direct Draw should be enabled. • Particles data formats: ART, GADGET-1/2, MLAPM/AMIGA?(ask Alexander), BIN/ASCII(N,X,Y,Z,M) • HALO Catalogs: BDM, BDM_MPI, for new format edit read_halos.cpp file.
This should be YES Force your administrator to install OpenGL correctly!!! How to start? • Look at “glxinfo” ’s output: name of display: 127.0.0.1:0.0 display: 127.0.0.1:0 screen: 0 direct rendering: No server glx vendor string: SGI server glx version string: 1.2 server glx extensions: GLX_ARB_multisample, GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_EXT_import_context, GLX_OML_swap_method, client glx vendor string: SGI client glx version string: 1.4 client glx extensions: ... ...
Getting code. http://pmviewer.sourceforge.net http://www.aip.de/People/AKhalatyan/Download/GasPMViewer.tar.gz
Makefile For DM: • MYOPT= -DSWE -DNOAGE -DVERBOSE -DPBUFFER For Gas and track center • MYOPT= -DVERBOSE -DREADCENTFROMFILE -DNOBH -DSWE -DNOTVISBOUNDPART -DPBUFFER -DDEBUGME For DM,Boundary,Gas,Stars, BH • MYOPT= -DSIMPLE -DVERBOSE -DDEBUGME -DPBUFFER • There are more then 20 options…
Setup my.ini file ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Inifile for GasPMViewer v1.3.3b ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; [DATA_TYPE] ;; 0 or 1 show particles? PARTICLE_FLAG = 1 ;; ASCII 0 || ART data 1 || GADGET 2 || MLAPM 3 DATA_TYPE = 1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; [BOX PARAMETERS] ;; Box Size of simulation only for ART BOX = 30 ;; Per cent of particles proc = 100 ;; 0 or 1 periodic shifting of some point to the center ofbox PERIODIC_FLAG = 0 ;;translation coordinates for shifting to the center in Mpc/h ;;Box50x128 tx= 48.99 ty= 18.64 tz= 48.12 ;; 0 or 1 Dencity scale DENCE_SC = 0 D_MAX = 6.18475e+08 D_MIN = 4.0 ;;;;;;;;;;;;; Write dencity centrs CENT_OUT = 0 Note: The format is case sensitive!!!
my.ini file ;;;;;;;;;;;;;;;;;;;;;;; Draw all particles iside of defined box SUBBOX = 0 ;;in kpc XBOX = 25000.0 YBOX = 25000.0 ZBOX = 25000.0 DBOX = 1210.0 ;;;;;;;;;in K ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Tempmax = 5.0e+6 Tempmin = 1e+1 ;;;;;;;;;;;;;;;;;;;;;trace center CENTER_FILE = FOF/4Kpc/host_track.log ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; [GADGET] ;; 1 or 0 BIG_GADGET = 0 GADGET_TYPE = 1 GAS_FLAG = 0 GADGET_PATH = /work4/arm2arm/GAD/ GADGET_BASENAME = snapshot ;; which moment? SNAP_NUMBER = 32 ;; num of files GADGET_FILES = 1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
my.ini file [ASCII] ASCII_FILE = /windows/D/Projects/MMC/xyz INI_TIME = 492 EVOL = 0 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; [ART] MPI_ART = 0 MPI_DIR = /home/arm2arm/DATA/Box30_chris/ NAME1 = /homeold/arm2arm/DATA/Box30/PMcrd.DAT NAME2 = /home/arm2arm/DATA/Box30_chris/PMcrs0_00490.DAT ;draw Hires particles only MULTI = 0 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; [HALO] ;0 or 1 HALO_FLAG = 0 ;; 0 Old || 1 Stefan|| 2 Christian || 3 Arman_S || 4 Arman || 6 Andrey HALO_FILE_TYPE = 31 ;; header lines of halo file N_SKIP = 18 ;; number of lines in file eg.: wc -l CATH_FILE HALO_FILE_LINES = 395 N_MAX_SHOW_HALO = 175 CATH_FILE = Catshort__00486.DAT.ord ;;optional ;CATH_FILE2 ;CATH_FILE_OUT ;MASS_FUNCTION_FILE
my.ini file ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; [SNAPSHOT] STEP_FOR_SNAP=1 ANI = 0 ;; snapshot file name format Ex: snapshot0000.ppm SNAPSHOT_FILE = /home/arm2arm/AVI/Box50_128/tmp/snapshott%0.4d.ppm ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; [CONFIG] INTENSITY = 1.1 COLOR_TABLE = /home/arm2arm/bin/bgry64k.rgba SCRIPT_FILE = script.cam PIC_FILE = /home/arm2arm/bin/p1.tga ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; [VIEW] WIN_WIDTH = 320 WIN_HEIGHT = 240 ;in internal units minx=-10 maxx=10 x = 0 y = 0 z = 5.0 ; in grad angle = 0
How to run? from command line: #>GasPMViwer.x ./my.ini
PMViewer rendering algorithms. DM Rendering algorithms
Gas rendering NEWalgorithm. • Get SPH density • Hsml • Rho, Temp… • Sort by given property • Rho • Temp • Pot • |V|
Billboarding Billboarding - Excerpt From Real-Time Rendering 2Eby Tomas Akenine-Möller and Eric Haines (16 September 2002)
Go ahead and visualize your simulations. &Thank YOU for Your attention.
References • http://pmviewer.sourceforge.net/ • www.google.com • http://www.aip.de/People/AKhalatyan • nehe.gamedev.net • http://www.lighthouse3d.com/opengl/billboarding/ • http://www.flipcode.com/articles/article_rtr2billboards.shtml • MSDN
3D Stereo Visualization 3D Stereo Visualization facilities in AIP.
Stereographics using stereo pairs To render a stereo pair one needs to create two images, one for each eye in such a way that when independently viewed they will present an acceptable image to the visual cortex and it will fuse the images and extract the depth information as it does in normal viewing.
Parallax The distance between the left and right eye projections is called the horizontal parallax • The object is behind the projection plane. • Object is located in front of the projection plane. • Object lies at the projection plane.
Off-axis (Correct) Toe-in (Incorrect ) Rendering
Rendering Off-axis method requires a non symmetric camera frustum. This is supported by some rendering packages, in particular, OpenGL and DirectX.
3D Stereo in OpenGL Setting drawing modeglutInitDisplayMode( GLUT_STEREO); For Drawing: glDrawBuffer(GL_BACK_LEFT) MyDrawLeft(); glDrawBuffer(GL_BACK_RIGHT); MyDrawRight(); glutSwapBuffers();
Anaglyph • If your graphics card doesn’t support stereographics or even left and right buffers, then try Anaglyph(old method).
Movies at MCC • Box=50 Mpc/h 512^3 (~134 000 000) particles • Evolution of Box=50 Mpc/h 128^3(~2 000 000) particles Interactive Software • Stereo PMViewer. • Pulsar model from Swinburne.