Now that the exams are over we have resumed working on our algorithm. Mainly, we have gone through the code, directly involved in solving for the UIC, to make sure that every operation is carried out correctly. Some errors have been discovered and fixed, but we are certain that there are more parameters, affecting the result, that need to be dealt with. The good news are, though, the fixes we have made have greatly improved the behaviour of the agents. At least, now, we get results that are logical, that we can actually understand.
In the video below we run the same scenario as before, with the agents spawned in a disc and their target positions at the diametrical opposite point. The green arrows indicate the velocity component that is a result of solving for the UIC.
We clearly see that we get an initial spiral taking form, something that we would want. However, it vanishes quickly and turns into an outwards motion. When the agents have moved a certain distance out from the middle, the preferred velocity takes over, and steers them towards the middle again. This is simply a result of the changing density, and thus then changing pressure gradient, in the middle. It continues in this fashion for a while until all the agents suddenly start to move in the same direction, something that we can not really explain.