I believe there is a bug when using the variable trigger in multisphere break at the following location:
I think the line always assumes that you are using a fix. However when using a variable, the code
update->ntimestep % (modify->fix[triggerIdx_]->peratom_freq
becomes undefined because "(modify->fix[triggerIdx_]->peratom_freq = 0" giving us k%0 division errors.
Below is a proposed fix to the bug that simply checks that we are using a fix.
if (triggerType_ == FIX)
if (triggerName_ && update->ntimestep % (modify->fix[triggerIdx_]->peratom_freq))
error->all(FLERR,"Fix used in fix multisphere/break not computed at compatible time");
Attached is a modified multisphere_stone_restitution input file using the height of the atoms in a variable as the trigger.