Setting C6 parameter zero within combination rules 2 and 3
According to the page 117 of the manual, "when sigma and epsilon need to be supplied (rule 2 and 3), it would seem it is impossible to have a non-zero C12 combined with zero C6 parameter. However, providing a negative sigma will do exactly that, such that C6 is set to zero and C12 is calculated normally. This situation represents a special case in reading the value of sigma".
However, this special option of setting negative sigma is not working as intended. Gromacs is reading sigma value with sign, so effectively sigma_ij = (sigma_i + sigma_j)/2 (for comb rule 2) is being translated as sigma_ij = (sigma_i - sigma_j)/2, if sigma_j was provided with a negative sign.
In case of combination rule 3, the same procedure leads to "segmentation fault" and mdrun crashes at the 0th step with all energy terms being "nan". This might originate from the fact that we are attempting square root of a negative number, if the sigma is being read with a negative sign.
So basically the special case of reading a negative sigma value needs to be checked for a possible bug.
Process negative sigma correctly with combrule 2 or 3
The initial combination rule code (for sigma/epsilon)
did not take negative sigma rules into account, which
caused segfaults instead of the values reaching the code
in convparm.c that handles sigma<0 during conversion
to c6/c12 (where it is used to signal c6=0).