| 
         SCATMECH > Classes and Functions >
        Grating Models >
        RCW_Model 
        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);
};
         
        
	
          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 
	
        
          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 
	
        
          These functions return the minimum and maximum orders for
          which the reflectance or transmittance is propagating.
          
        Top of Page 
	
        
          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 
	
        
          GetPropagationVector(i) returns the complex propagation vector 
          for the i-th diffraction order.
          
        Top of Page 
        
        
          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) 
 
  |