class RCW_Model


The class RCW_Model implements Rigorous Coupled-Wave theory for a grating. It accepts a member variable of type Grating, which describes the specific profile, and calculates fields in reflection or transmission in either the "in-plane" configuration or the conical configuration. The fields outside of the grating are accessed through the function GetAmplitude(int i), while diffraction efficiencies are accessed through the function GetIntensity(int i). Gratings can contain diagonally anisotropic and magnetic materials.

Parameters:

Parameter Data Type Description Default
order int The Fourier order considered in the calculation. The calculation will expand the dielectric function in a layer from -order to order. Convergence of the solution should be checked by varying this parameter. The calculation time will be proportional to the cube of order. 25
type int Indicates whether the light is incident from above the substrate or from within the substrate and whether the scattering is evaluated in reflection or transmission. The choices are:
0 : Light is incident from the above the substrate, and scattering is evaluated in reflection.
1 : Light is incident from the above the substrate, and scattering is evaluated in transmission.
2 : Light is incident from the within the substrate, and scattering is evaluated in reflection.
3 : Light is incident from the within the substrate, and scattering is evaluated in transmission.
For 1, 2, and 3, the substrate must be non-absorbing.
0
lambda double The wavelength of the light in vacuum [µm]. 0.532
thetai double The incident angle, measured from the surface normal [degrees]. 0
rotation double The azimuthal rotation of the sample [degrees]. When rotation is non-zero, the geometry is considered to be in the conical mount, and the calculation time is longer. 0
grating Grating_Ptr A description of the grating profile and optical properties. Single_Line_Grating

See also:

SCATMECH Home,   MuellerMatrix,   JonesMatrix,   Grating

M.G. Moharam, E.B. Grann, D.A. Pommet, and T.K. Gaylord, "Formulation for stable and efficient implementation of the rigorous coupled-wave analysis of binary gratings," J. Opt. Soc. Am. A 12, 1068-1076 (1995).
P. Lalanne and G.M. Morris, "Highly improved convergence of the coupled-wave method for TM polarization" J. Opt. Soc. Am. A 13, 779-784 (1996).
G. Granet and B. Buizal, "Efficient implementation of the coupled-wave method for metallic lamellar gratings in TM polarization," J. Opt. Soc. Am. A 13, 1019-1023 (1996).
L. Li, "Use of Fourier series in the analysis of discontinuous periodic structures," J. Opt. Soc. Am. A 13, 1870-1876 (1996).

Include file:

#include "rcw.h"

Source code:

rcw.cpp

Definition of public and protected elements:

class RCW_Model : public Model {
public:
        JonesMatrix GetAmplitude(int i);      
        MuellerMatrix GetIntensity(int i);
        Vector GetDirection(int i);
        CVector GetPropagationVector(int i);

        int GetMinimumPropagatingOrder();
        int GetMaximumPropagatingOrder();

        CVector GetEField(const JonesVector& input, const Vector& pos);
        CVector GetHField(const JonesVector& input, const Vector& pos);
        CVector GetDField(const JonesVector& input, const Vector& pos);
        CVector GetBField(const JonesVector& input, const Vector& pos);
};


JonesMatrix GetAmplitude(int i)

GetAmplitude(i) returns the Jones matrix associated with the i-th order diffraction. The Jones matrix relates the amplitude of the diffracted plane wave to the amplitude of the incident plane wave.

Top of Page

MuellerMatrix GetIntensity(int i)

GetIntensity(i) returns the Mueller matrix diffraction efficiency (reflectance, if type=0, or transmittance, if type=1) associated with the i-th order diffraction.

Top of Page

int GetMinimumPropagatingOrder()
int GetMaximumPropagatingOrder()

These functions return the minimum and maximum orders for which the reflectance or transmittance is propagating.

Top of Page

Vector GetDirection(int i)

GetDirection(i) returns a unit vector in the direction of propagation of the i-th diffraction order. It returns a zero vector for those orders which are not propagating.

Top of Page

CVector GetPropagationVector(int i)

GetPropagationVector(i) returns the complex propagation vector for the i-th diffraction order.

Top of Page

CVector GetEField(const JonesVector& input, const Vector& pos)
CVector GetHField(const JonesVector& input, const Vector& pos)
CVector GetDField(const JonesVector& input, const Vector& pos)
CVector GetBField(const JonesVector& input, const Vector& pos)

These functions return the amplitude of the electric field (GetEField), the magnetic field (GetHField), the electric displacement (GetDField), and the magnetic induction (GetBField), evaluated at location pos for a given incident Jones vector input. Locations are defined with respect to the top of the grating (incident beam side), with positive z coordinates being in the incident half-space. At this time, the fields can only be evaluated outside of the grating, and only in the region defined by parameter type. That is, if type is 0, the fields can be evaluated above the grating, and if type is 1, the fields can be evaluated below the grating.

Top of Page


For More Information

SCATMECH Technical Information and Questions
Sensor Science Division Home Page
Sensor Science Division Inquiries
Website Comments

Current SCATMECH version: 7.22 (April 2021)