I used Sullivan's formulation and his codes. Sullivan developed his
own simplified PML formulation, he published a couple of articles on
that subject. My EM background is not solid enough so I would not call
his formulation faulty. However, PML constructed using that
formulation reflects more energy than one would expect from decent
ABC.
I tried 3D FDTD program with PML from his book. PML did absorb
something, I didn't see reflections that were lager then excitation
although, I did see quite substantial reflections. Eventually, everything dies out but very slowly. Also in that program the source (dipole antenna) keeps producing impulses. It looks like this: pulse rises; propagates outwards; the field behind the pulse is 0; pulse is being absorbed (with some ugly stuff emerging but absorbed nevertheless); then dipole produces new pulse (with lower amplitude) and so on…
In the patch antenna simulation I’ve got approximately the same picture as shown in the book. Ideally it should be the same as in the paper by Sheen et al. but it is actually shifted. I tried to scale frequency axis differently (just trying to match Sheen’s results) and it worked but it’s kinda fishy trick.
I can email you the C code if you are interested but it is actually the same as in the book. In the book there are a couple of typos and some parts of the code are omitted (like some variables are not initialized) but apart from that… I’m not good enough to spot anything major.