Task #2445
Decide if/how to check for incompatible user input to mdrun for bonds and vsites
Description
In the non-bonded kernels we now make sure that we do not divide by zero when atoms overlap.
But for bonded interactions and virtual sites floating point exceptions and segmentation fault can occur when the starting conformation passed to mdrun has overlapping atoms or multiple atoms in a straight line etc.
A thorough solution would be to throw an exception before any division by zero occurs, but that will likely affect performance significantly. Can we somehow check for this anyhow? E.g. template functions with a check parameter or something like that.
Related to #2444