Already found a bug - it was adding delta v for every ring it looked at instead of once at the end.