I would like to show that American call can be exercised early if the stock pays dividend. So, I have a code to value an American call, what I need to know is how to incorporate the dividend. Most FDM books say dividends are set through V(t+,S)=V(t-,S-d), so basically if I implement it, I do:

1. Assume I have a numerical solution V at the grid node t_i,S_j from solving BS PDE, then I set V_updated(t_i,S_j)=V(t_i,S_j-d_i) at time node t_i if the dividend is paid and set V back to V_updated. If this time point the dividend is not paid, do nothing.

2. And because it is American, after I take V(t_i,S_j)=max(V(t_I,S_j),(S_j-K)^+).

3. Solve the BS pde again

4. Repeat

First question: is that a correct iteration algorithm?

Second question: I was not able to find this algorithm online, all the papers that come up on google consider just changing the drift from r to r-d in BS PDE, but I guess this is for the case of a continuous dividend? Why would they consider that because in reality most stocks pay discrete dividends, am I wrong?