spread_charge: theta/dtheta only calculated locally, not saved in global memory