1.2. : The role of function overloading "createSimulation" to associate one method or another one depending of the type or number of arguments that takes the method.
2.2. : To ensure that references are correctly managed to python bindings we used shared pointers : std::shared_ptr<>. Using this, the memory of these pointers will be DEALLOCATED when the python's reference goes to 0!
Can run the example using the command ./particles 365 1 ../init.csv planet 1 from the build folder. From C++ the gravitational constant G must be changed accordingly.
The trajectories can be viewed using Paraview, and we observe trajectories as expected. Except for Mercury.
See the file python_functions.py. Run the file from the build folder with python3 ../python_functions.py.
Note that we assume 5 integers in the filenames (e.g. step-00000.csv), i.e., not 4 as in the trajectory folder. We can easily rename multiple files using the command rename 's/step-0/step-00/g' * in order to get same naming convention.
We find that the scaling factor for Mercury's velocity is approximately 0.4.