IMD
Version 4.1.1, August 2000
David L. Windt
windt@astro.columbia.edu
http://cletus.phys.columbia.edu/windt/idl
Copyright (c) 1997-2000, David L. Windt. All
rights reserved
IMD is a point-and-click IDL application that can calculate specular and non-specular (diffuse) optical functions of an arbitrary multilayer structure, i.e., a structure consisting of any number of layers of any thickness, and of any material. IMD includes a database of optical constants for over 150 materials, spanning the X-ray region to the infrared. It's also easy to use your own optical constants if necessary, or to create new X-ray optical constants for any compound, using tabulated atomic scattering factors for 92 elements. IMD can be used for both modeling and for parameter estimation by nonlinear, least-squares curve-fitting (including confidence interval generation) to your own measured data.
The IMD graphical user interface allows you to quickly define the multilayer structure you wish to consider. The general multilayer structure consists of any number of individual layers, which can be grouped together to create periodic (and optionally depth-graded) multilayers, if desired. You can even create 'groups of groups' of layers, with no limit on nesting depth. Layers and periodic multilayers can be inserted or removed anywhere in the stack.
Specular optical functions - reflectance, transmittance, absorbtance, electric field intensities, phase shifts, and ellipsometric psi and delta functions - are computed using an algorithm that is based on recursive application of the Fresnel equations [1], modified to include interfacial roughness and/or diffuseness [2,3]. Non-specular reflected intensities can be computed using either a dynamical Born approximation vector theory [4], or the so-called 'Distorted-Wave Born Approximation' formalism [5-8], a scalar theory which is nonetheless valid below the critical angle of total external reflection in the X-ray region. For both specular and non-specular computations, a stochastic model of film growth and erosion [9] can be used to account for the evolution of interfacial roughness through the film stack. Alternatively, a more conventional roughness model [10] can be used, with the option of defining depth-graded roughness and correlation length parameters.
The specular and non-specular optical functions can be calculated not just as a function of incidence angle and/or wavelength, but also as a function of any of the parameters that describe the multilayer structure (i.e., optical constants, densities, layer thicknesses, roughness parameters, etc.,) and/or the incident 'beam' (i.e., polarization, and spectral or angular resolution) You can designate as many as eight independent variables simultaneously. In addition, individual structure parameters can be coupled to one another, so that a single independent variable (or fit parameter) can be used to vary multiple parameters.
An interactive visualization tool, IMDXPLOT, allows you to view, analyze and print 1D or 2D 'slices' through multi-dimensional optical functions; with this visualization tool, it's possible to vary a given parameter and see the resulting effect on the optical functions in real time. IMDXPLOT makes it easy to overlay multiple optical functions on a single plot, and to include a variety of labels and legends; 2D 'slices' can be viewed as either surface or contour plots You can also overlay your own measured data in order to compare interactively your measurements to the calculations.
Parameter estimation is afforded by fitting an optical function to your own experimental data, using nonlinear, least-squares curve-fitting, with an unlimited number of adjustable parameters: any of the parameters that describe the multilayer structure or the incident beam can be fit. Multi-dimensional confidence intervals associated with the best-fit parameter values can be estimated as well, and IMDXPLOT can be used to view confidence interval 'slices' in parameter space.
The IMD interface was created with the hope that you will not need to consult this documentation very much. Nonetheless, contained in the chapters that follow is a detailed description of how to use IMD for modeling and parameter estimation. In addition, a variety of example files are included with the IMD distribution, which illustrate some of IMD's unique modelling and visualization capabilities. You might also have a look at the preprint of reference [11], to learn a bit more about the inner workings of IMD (as of version 3.1, that is.)