I do not know exactly the application you have in mind, however, there is an analytical approach (simple formula) from which you can calculate the reflectivity as a function of wave length and roughness. We have demonstrated the applicability for various materials, see e.g.
S. Shokhovets et al. "Reflectivity study of hexagonal GaN films grown on GaAs: Surface roughness, interface layer, and refractive index" (http://dx.doi.org/10.1063/1.368223)
optical simulation are not as popular as one may wish, but then you can try alternativeto.net and find software for your $ and operating system, open source is free and over a LINUX repository completely reliable, i don't recommend using open source over win or mac from unknown sources
I do not know exactly the application you have in mind, however, there is an analytical approach (simple formula) from which you can calculate the reflectivity as a function of wave length and roughness. We have demonstrated the applicability for various materials, see e.g.
S. Shokhovets et al. "Reflectivity study of hexagonal GaN films grown on GaAs: Surface roughness, interface layer, and refractive index" (http://dx.doi.org/10.1063/1.368223)
there are two basic ways to determine roughness from reflectivity data. One is from the fitting of reflectivity data vs angle. A second one would be by analysis the diffuse scattering in theta rocking scans crossing the reflectivity ridge.
1. Reflectivity vs angle
A simple algorithm for recursive optical reflection via Fresnel coefficients that is use in most reflectivity studies is the so called Parrat approach. This is simple to implement.
Parratt L G 1954 Phys. Rev. 95 359–69.
This is good unless you need to deal with anisotropic media, but for most cases and particularly for roughness evaluation might not be very complicated.
Then you have to model roughness, and a simple approach that is a good enough approximation in many cases is the so called Nevot-Croce approximation, which basically gives an exponential attenuation with a roughness coefficient.
Névot L and Croce P 1980 Rev. Phys. Appl. 15 761–79
I recommend you chapter 3 in the book of Als-Nielsen and Des McMorrow. Indeed it also presents in a very compact way the treatment of distributions for interface/surface roughness.
Indeed it has the equations there so you will take 30 min to put then in Matlab or other (even they may have matlab code in the appendix for some of the stuff).
2. Fitting diffuse scattering from rocking scans. (this approach is more complex)
One of the main early papers establishing this is by S.K. Sinha and co-workers, where they introduce the use of Distorted Wave Born Approximation and deduce some scaling laws.
X-ray and neutron scattering from rough surfaces
S. K. Sinha, E. B. Sirota, S. Garoff, and H. B. Stanley
The approach 2 is more complex and technical, but has one advantage. In the approach 1, you have to model your full structure to get the reflectivity well simulated. In the second approach, you model the diffuse scattering, not the reflectivity, and allows you to do analysis that goes beyond an average roughness.
I am sure there are probably more sophisticated analysis for the R vs angle data than the Nevot Croce may allow for more detailed account of roughness, probably through matrix approaches (you may want to look for reviews such as the one of Fewster, X-ray analysis of thin films and multilayers,http://iopscience.iop.org/article/10.1088/0034-4885/59/11/001/meta).
One concern when measuring reflectivity, as in SXRD, is that you have the diffuse scattering. So depending on the size of the detector and how rough are samples, this diffuse will concentrate close to the specular or become very broad, so in your measured specular reflectivity you have added a part the diffuse which will indeed depend on the sample roughness. So in order to do the right fit of specular reflectivity, one has to deal properly with that, by integrating the diffuse or removing it, etc etc.
Un abrazo,
Manuel
P.D: If you cannot find your way quickly I have a few mathcad worksheets that I can pass you. I can also help you to do it with Alessandro Mirone program, which runs in python. But if you just need a simple figure of merit number, the simple Parrat may be what you need.
Hi everyone for your kind support. I will check carefully your sugestions and advices. Thanks one more time. My goal is to check how reflectivity is modified when surface roughness of the sample is increased. It is related with Phong Model.