Dear Zhengxin,
as a quick fix that allows you to properly see the fields, I recommend to set zmin to a lerger value in the show_near_field command. You can set for example zmin=-0.2.
As an alternative, it might also help to play around with the vmin / vmax options of the graphical output (I haven't checked that).
Some explanation:
The underlying problem is a numerical inaccuracy in the transfer matrix (or, scattering matrix) scheme for plane wave propagation in stratified media which produces wrong fields when we go deeper into the absorbing bottom layer.
The initial field illumination is from op, so in the bottom layer we actually have only a downwards propagating component. Numerically, the upwards propagating component is, however, computed to ~10^-17, i.e., we have a tiny numerical error in the up-propagating component.
That small error is then tremendeously amplified, because the bottom layer has a strong absorption. Downward propagating waves in the bottom layer are damped with a factor exp(a * z), where a is a large number. So, towards negative z, the wave quickly decays. The upwards propagating wave has a factor exp(-a * z), so towards negative z, the wave quickly grows. In reality, that component doesn't exist, but as I said, there is a small contribution here due to a numerical error. As a consequence, we have a (wrong) field contribution of ~10^-17 * exp(-a * z) that becomes significant after some distance in the negative z and then dominates the whole plot.
Please give me a quick reply if updating zmin to a value that is not too far in the negative is a good option for you. Otherwise we can work out another fix that involves manually suppressing the wrong upgoing field components in the bottom layer.
Best regards, Amos