Thank you for providing additional information.
I doubled the simulation region to have at least half wavelength between sphere and PML layer (0.2um on all three directions) and then ran simulations for different mesh sizes. Results were converging and show a peak at ~180 nm. Since simulation take a long time to run at finer mesh, I could not make time to repeat the simulation for different PML and perform more convergence testing. Below is my results and show the absorption cross section for different mesh accuracies:
The simulations make sense, and I still do not know why it does not match the experimental results.
Yes, the substrate should be extended through TFSF source region. TFSF source runs two simulation, one with and one without substrate. If you do not extend substrate through TFSF source region, substrate will be considered as an scatterer.
Also, substrate needs to be extended through PML layer as well for best PML performance. You can read more about the importance of extending structure through PML here.
Mie3d will only apply to cases where the sphere is embedded in a dielectric medium. As you have noticed, mie3d only requires the ratio of indices (n_sphere/n_background). This means that you can not use this theory for cases of half sphere, or if the background material is air + substrate. For example, you could not use mie3d command in your case even if you had a full sphere (because substrate covers only part of the sphere). I haven’t tried to come up with other ways to calculate scattering in slightly complicated cases, and I do not have any shortcut to recommend you. Let me know if you had any ideas and we can discuss it further.
I checked results for the second case, and was almost identical to first case. So this should not be a problem.
Your simulation look reasonable to me. As next practices, you can try more convergence test. You can also try to modify the material fit and see if there was any change in results. If not, I guess we should look into why experimental results are different than simulation results, and if there is any difference in experiment compared to what we are simulating.
I hope this was helpful.