class CrossRCW_Model


The class CrossRCW_Model implements Rigorous Coupled-Wave theory of L. Li for a crossed grating, that is, a grating with periodicity along two directions. The class has a member parameter of type CrossGrating that describes the specific grating. The class calculates fields in reflection or transmission, and for incident radiation propagating from above or below. The fields outside of the grating are accessed through the function, GetAmplitude(int i,int j), while diffraction efficiencies are accessed through the function GetIntensity(int i,int j).

Parameters:

Parameter Data Type Description Default
thetai double The incident angle, measured from the surface normal [degrees]. 0
lambda double The wavelength of the light in vacuum [µm]. 0.532
rotation double The azimuthal rotation of the sample [degrees]. 0
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
order1 int The maximum Floquet order in the field expansion in the 1st coordinate. 10
order2 int The maximum Floquet order in the field expansion in the 2nd coordinate. 10
grating CrossGrating_Ptr A description of the grating profile and optical properties. OneD_CrossGrating

The following parameter is not a formal parameter, but is accessible using the set_parameter(parameter,value) function.

Parameter Data Type Description Default
WriteEigenvalues string If this value is set, it specifies a file to which the eigenvalues for each of the layers are written. This information can be used to evaluate the band structure of a photonic crystal. (blank)

See also:

SCATMECH Home,   MuellerMatrix,   JonesMatrix,   CrossGrating

L. Li, "New formulation of the Fourier modal method for crossed surface-relief gratings," J. Opt. Soc. Am. A 14, 2758-2767 (1997).

L. Li, "Formulation and comparison of two recursive matrix algorithms for modeling layered diffraction gratings," J. Opt. Soc. Am. A 13, 1024-1035 (1996).

Include file:

#include "crossrcw.h"

Source code:

crossrcw.cpp

Definition of public elements:

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

        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,int j)

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

Top of Page

Vector GetDirection(int i,int j)

GetDirection(i,j) returns the direction of propagation associated with the (i,j) order diffraction. If the substrate is absorbing or if the diffraction order does not propagate, then this function will return (0,0,0). If it is propagating, the vector will have unit length.

Top of Page

MuellerMatrix GetIntensity(int i,int j)

GetIntensity(i,j) returns the Mueller matrix diffraction efficiency for the (i,j) diffracted order. If the order does not propagate, then the function returns a zero Mueller matrix.

Top of Page

CVector GetPropagationVector(int i,int j)

GetPropagationVector(i,j) returns the propagation vector for the (i,j) diffracted 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)