Part II Computational Project: Tidal Tails
- C++ compiler (C++11 compliant)
- SDL2
- OpenGL
- GLEW
- cmake
cd {project-directory}
cmake .
make
cd bin
./main {command-line-arguments}
bin/main
- Pan - WASD
$(\uparrow \leftarrow \downarrow \rightarrow)$ . - Zoom out/in - QE
$(-+)$ . - Take Screenshot - P (screenshots are automatically taken at 5.0s intervals (simulated system time)) (.tga file created, can be converted with convert_png.sh script provided).
- Start/Stop data logging to .csv - L.
- Start/Pause/Unpause - SPACEBAR.
- INTERACTIVE == true - left click, drag then release to create a massive particle with velocity proportional to length and direction of drag.
Project executable (main) as well as plot.p and convert_png.sh located in bin directory.
Command line arguments: 5 arguments supplied (Eccentricity,
Command line arguments: 4 arguments supplied (Eccentricity,
Command line arguments:1 argument supplied (INTERACTIVE (1 = true, 0 = false))
Other combinations result in a default simulation being carried out.
Logging Information: Each time step is output to a new line in the data file so that each line has the format t,{x1,y1,z1},{x2,y2,z2},...,{xN,yN,zN}. A Python script could easily be created to carry out text processing on this data file to extract all of the particle's positions at a specific time. The extracted positions could then be written to a text file in a plot friendly format i.e. x1,y2 {newline} x2,y2 etc. and then plotted (matplotlib) all within the same script. This script was not created as it was felt that the screenshots provided sufficient graphical information.