Lumerical’s Rigorous Coupled-Wave Analysis (RCWA) solver can be used to analyze the optical response of a plane wave incident on a multilayer structure. Unlike the STACK solver, the RCWA solver can be used with structures that have periodic variations in the layer geometry, for example photonic crystals and diffraction gratings. With simulation times that are generally much shorter than FDTD, the RCWA solver is an ideal tool for the analysis of these types of periodic structures.

[[NOTES:]] With release 2022 R1, the RCWA solver can be used through the rcwa script command. With release 2023 R1, the RCWA solver can be used through the RCWA Solver simulation object. |

## Solver Physics

The RCWA method is a semi-analytical technique for solving Maxwell’s equations in multilayer structures. In this method, the structure is divided into a series of uniform layers along the direction of propagation. Structures that have gradually changing cross-sections along the direction of propagation can be approximated by a series of uniform layers. For example, in the geometry shown below, the trapezoid shape (left) is approximated with a series of five layers (right):

Increasing the number of layers over the cross-section increases the accuracy of the simulation at a cost of increased simulation time.

Once the structure is divided into layers, Maxwell’s equations are solved analytically in each layer in the Fourier domain. The wavevectors of the Fourier modes are referred to as k-vectors. Due to the periodicity of the structure, only discrete k-vectors are allowed. Increasing the number of k-vectors increases the accuracy at a cost of increased simulation time.

The solution to each section is then propagated bi-directionally to calculate the S-matrix of the entire device. Once the S-matrix has been calculated, the light from an incident plane wave can be propagated through the structure. Due to the periodic nature of the geometry, the incident plane wave is diffracted into a finite set of plane waves referred to as "grating orders". After the S-matrix is calculated, results like the fraction of incident power that is transmitted and reflected, the power in each grating order, and the electric and magnetic fields inside the structure can be calculated.

## Solver Workflow

The recommended workflow for using the RCWA solver is as follows:

- Add an RCWA solver object to the simulation using the
**Add RCWA**button on the toolbar:

- Edit the RCWA solver object's properties to specify the simulation parameters. See the RCWA Solver - Simulation Object page for more information on these parameters.
- Run the RCWA simulation using the
**Run**button on the toolbar (it may also be labelled as the**Run RCWA**button, if there is an FDTD solver present in the simulation):

- Get the results returned by the RCWA solver object in the
**Result View**:

These results can be visualized directly in the Visualizer by right-clicking and selecting **Visualize** > **New Visualizer**. They can also be sent to the **Script Workspace** for further analysis by selecting **Send to script**:

More information on the results returned by the RCWA solver can be found on the RCWA Solver - Simulation Object page.

The RCWA solver object can also be used with the built-in parameter sweep and optimization tools.

## Simulation Source

A plane wave is used as the source in an RCWA simulation. The user selects the frequency and incident direction of the source and the incident wave is propagated through the layers of the structure to calculate results like transmission and reflection. The source can be oriented along the X, Y or Z axis, propagating in the forward (+) or backward (-) direction.

### Source Direction

The direction of the incident plane wave is defined in terms of polar angles \(\theta\) and \(\phi\). \(\theta\) is the angle between the axis normal to the RCWA layers, referred to as the propagation axis, and the incident wavevector \(k_i\). \(\phi\) is the rotation around the propagation axis. Theta must be between 0 and 90 degrees, and \(\phi\) between 0 and 360 degrees.

The source unit k-vector \(\hat{k}_i\) can be written in terms of \(\theta\) and \(\phi\):

±X propagation axis:

$$\hat{k}_i = \begin{bmatrix} \pm \cos(\theta) \cr \pm \sin(\theta)\cos(\phi) \cr \pm \sin(\theta)\sin(\phi) \end{bmatrix}$$

±Y propagation axis:

$$\hat{k}_i = \begin{bmatrix} \pm \sin(\theta)\sin(\phi) \cr \pm \cos(\theta) \cr \pm \sin(\theta)\cos(\phi) \end{bmatrix}$$

±Z propagation axis:

$$\hat{k}_i = \begin{bmatrix} \pm \sin(\theta)\cos(\phi) \cr \pm \sin(\theta)\sin(\phi) \cr \pm \cos(\theta) \end{bmatrix}$$

### Source Polarization

The source is polarized in either the S or P direction, where the electric field vector is perpendicular to the plane of incidence for S polarization and parallel to the plane of incidence for P polarization. Defined in terms of \(\theta\) and \(\phi\), these polarizations are:

±X propagation axis:

$$\hat{s} = \begin{bmatrix} 0 \cr \pm \sin(\phi) \cr \mp \cos(\phi) \end{bmatrix}$$

$$\hat{p} = \begin{bmatrix} - \sin(\theta) \cr \pm \cos(\theta)\cos(\phi) \cr \pm \cos(\theta)\sin(\phi) \end{bmatrix}$$

±Y propagation axis:

$$\hat{s} = \begin{bmatrix} \mp \cos(\phi) \cr 0 \cr \pm \sin(\phi) \end{bmatrix}$$

$$\hat{p} = \begin{bmatrix} \pm \cos(\theta)\sin(\phi) \cr - \sin(\theta) \cr \pm \cos(\theta)\cos(\phi) \end{bmatrix}$$

±Z propagation axis:

$$\hat{s} = \begin{bmatrix} \pm \sin(\phi) \cr \mp \cos(\phi) \cr 0 \end{bmatrix}$$

$$\hat{p} = \begin{bmatrix} \pm \cos(\theta)\cos(\phi) \cr \pm \cos(\theta)\sin(\phi) \cr - \sin(\theta) \end{bmatrix}$$

## RCWA vs. FDTD vs. STACK

The RCWA, FDTD, and STACK solvers can all be used to perform optical simulations of multilayer structures. Which solver is most suitable for a given simulation depends on the details of the geometry and the optical source.

In general, FDTD can be used for any simulation that can be done with RCWA or STACK. However, RCWA and STACK will be faster in most cases, unless very broadband results are required. FDTD is also a fully numerical method, while RCWA is semi-analytical and STACK is analytical, so the results from FDTD will generally be less accurate than RCWA or STACK results. RCWA and STACK simulations are also much simpler to set up than FDTD simulations, reducing the chances that the simulation is not properly set up.

For simulations with a plane wave source incident on a multi-layer structure, STACK can be used if the layers are uniform in the transverse direction. If the layers are non-uniform but periodic in the transverse direction the RCWA solver can be used. If the layers are not periodic in the transverse direction the FDTD solver must be used.

For simulations of emissive multi-layer structures like OLEDs, the STACK solver can be used if the layers are uniform (see Planar OLED Microcavities - Color Shift and Extraction Efficiency). If the layers are not uniform, for example with some sort of patterning, the FDTD solver must be used (see OLED (2D)). It is not currently possible to use the RCWA solver for emissive structures, as it doesn’t have a dipole source option available.

## Units and Normalization

Unless otherwise specified, all quantities are returned in SI units. Please see Units and Normalization for more information.

## See Also

- RCWA Solver - Simulation Object
- rcwa – Script Command
- rcwasweeppropagation - Script Command
- Photonic Crystal Slab (RCWA)
- Metalens - Zemax Interoperability (See Step 2, where rcwa is used for unit cell simulations)