Both CPU and GPU propagation support

The propagation controller function will either launch a host or global
function propagating the particles depending on the command line input.