T6: Multiple (test) particles and extended potentials
Before the tutorials:
Do, think about, and research the following:
-  Bring your own program to the level of the example given for the last tutorial,
so that you can start from a clean and working version.
 
-  This time we need to extend our program to handle several (test) particles within a system. How can the vector class of C++ help us here  ?
 
-  What is the Plummer potential ?
 
-  What is the effective potential ?
 
-  Remember what phase-space means.
 
During the tutorials:
Program it!
  -  Take your leap-frog integrator from last time and extend the progrem to handle multiple particles.
       Setup a solar system and plot the orbits.  
  -  How do you implement your variable timestep criteria in this case ? 
 
  -  Setup the whole solar system as test case.
       Plot the orbits of the planets in gnuplot ! 
  -  Change the central potential to be a plummer potenial. 
       Include as output the effective potential for each particle. How does it look like ? 
  -  Distribute randomly particles (maybe some tens ?) with zero initial velocity and let the system evolve.
       Whatch the evolution of the particles in phase space 
Maybe you can further explore the power of C++:
  - Try to read the initial conditions directly from a file.
 
  - Can you give the file name from the command line top the program ?
 
Example programs:
These are just examples.
- C/C++:
 - F90:
- Simple version (this is sufficient for the moment, but it doesn’t hurt you to start improving it as suggested above):
T6.f90
(colorized),
Makefile
(colorized) (rename to “Makefile” or use with “make -f Makefile_gfortran”)
 - More complex version:
(To be added later.  We will reorganize the program structure when we get to multiple particles; think about how you would do this on your own.)
 
 
Discussion of the results:
Plot your results with gnuplot and see the time evolution of the particles (effective potential, phasespace).
  Can you explain what you see ?
  
Example plots:
Programming goals for T6:
Goal of this tutorial is that you get familiar with the vector class in C++.
   In addition you might get familiar with reading your initial setup directly from a file.