General Tab
 PROPAGATION AXIS: Axis of propagation for the plane wave source (before source rotations are applied). This axis is normal to the layers of the structure.
 PROPAGATION DIRECTION: Direction of propagation for the source along the PROPAGATION AXIS, either forward (in the + axis direction) or backward (in the – axis direction). Selecting BOTH will run an RCWA simulation for both directions.
 SIMULATION REGION: Defines the dimensions of the simulation region. The simulation region can be 2D, normal to the X, Y, or Z axis, or 3D. A 2D simulation region cannot be normal to the propagation axis.
 BACKGROUND MATERIAL: The material of the surrounding background medium in the simulation region. Any volume not filled by a geometry object will be assigned this material.
 INDEX: The refractive index of the surrounding, background medium in the simulation region if <Object defined dielectric> is chosen for BACKGROUND MATERIAL.
Geometry Tab
The geometry of the RCWA solver object defines the simulation region. The span of the simulation region along the axes normal to the propagation direction defines the boundaries of the unit cell (and therefore, the periodicity). The geometry is assumed to be periodic along these axes outside the simulation region.
The span of the RCWA solver object along the propagation direction should be large enough to include a layer of the substrate and superstrate before the outer interfaces of the layer stack.
 X, Y, Z: The center position of the simulation region
 X MIN, X MAX: X min, X max position
 Y MIN, Y MAX: Y min, Y max position
 Z MIN, Z MAX: Z min, Z max position
 X SPAN, Y SPAN, Z SPAN: X, Y, Z span of the simulation region
 LATTICE VECTOR ANGLE: Sets the angle between the lattice vectors of the RCWA unit cell. For more information, see Using Nonorthogonal RCWA Unit Cells.
Interface Position
The RCWA solver divides the simulation region into layers normal to the propagation axis. There are two options for defining the interfaces between these layers:
 INTERFACE ABSOLUTE POSITIONS: Interface positions are defined in a table of positions along the axis of propagation in the global coordinate system. The properties of the table are:
 ADD: Adds an entry above the selected entry.
 REMOVE: Removes the selected entry.
 SORT: Sort each column of the table in ascending order.
 INTERFACE REFERENCE POSITIONS: Interface positions are defined in terms of the maximum and minimum positions of the objects in the simulation. If the objects are modified, for example in a parameter sweep, the layer interface positions will automatically update. The layer positions are defined in a table with the following columns:
 ENABLED: Use this location as a layer interface in the simulation
 CALCULATED POSITION: Position of the interface
 NAME: Name of the simulation object
 TYPE: Whether the interface is at the maximum or minimum position of the object in the direction of propagation
 INTERFACES: the number of interfaces between this interface (inclusive) and the next defined interface. If the type of this interface is MAX (MIN), the “next defined interface” is considered the next interface below (above) this layer. If there are conflicting numbers of interfaces defined (for example, between a MAX and a MIN layer) then the higher value is used.
The screenshot below shows an example of the INTERFACE REFERENCE POSITIONS option:
The interfaces are shown as orange lines in the viewport. The maximum and minimum of the triangle object were chosen in the table, with a total of 11 interfaces along the triangle object.
Setting Interface Positions Through Script Commands
The RCWA solver's interface positions can also be set through the set or setnamed script commands. To choose between the "interface absolute positions" or "interface reference positions" options, set the "interface position" property of the RCWA solver object to either "absolute" or "reference", respectively. For example, the following command can be used to select the "interface reference positions" option:
setnamed("RCWA", "interface position", "reference");
If the "interface absolute positions" option is selected, the positions of the interfaces can be defined by setting the "interface absolute positions" property to the interface positions in the form of a 1D matrix. For example, the following script command can be used to define interfaces at 0, 0.1, and 0.2 um along the propagation axis:
setnamed("RCWA", "interface absolute positions", [0, 0.1, 0.2]*1e6);
If the "interface reference positions" option is selected, the positions of the interfaces can be defined by setting the "interface reference positions" property through the set or setnamed commands. In this case the interface positions are defined in a cell array. The cell array contains other cell arrays defining the enabled interfaces. Each inner cell array has fields for the name, type, and number of interfaces, corresponding to the NAME, TYPE, and INTERFACES columns of the reference positions table in the graphical interface, respectively.
For example, the reference positions in the screenshot above can be set with the following script commands:
interfaces = {{"::model::triangle", "max", 10},{"::model::triangle", "min", 1}};
setnamed("RCWA", "interface reference positions", interfaces);
Solver Tab
The RCWA solver expands the fields into Fourier modes in each layer. The modes have a finite number of wavevectors called k vectors. Increasing the number of k vectors improves the accuracy of the simulation, but also increases the simulation time.
 K VECTORS DOMAIN: Shape of the domain of wave vectors in reciprocal space to use for the Fourier mode decomposition. There are two options for a 3D simulation region:
 CIRCULAR: K vectors within a certain radius of the origin are used. This is generally the more efficient choice. The maximum total number of k vectors is determined by the MAX NUMBER K VECTORS property. It corresponds to the N vectors closest to the origin such that N ≤ MAX NUMBER K VECTORS, and provided all other vectors are farther from the origin.
Since the version 2023 R2.1, the k_{x} and k_{y} components are individually scaled to consider the aspect ratio of the simulation region. Then, note that if the region is not orthogonal and square, plotting k² would give concentric ellipses rather than circles. The wavevectors actually used in the simulation can be accessed from the RCWA results, below is an illustration of how they can be seen in the visualizer in two different cases.  RECTANGULAR: Allows different numbers of k vector mesh points in each direction. The number of k vectors along each axis is determined by the MAX NUMBER KU and MAX NUMBER KV properties. Which direction each refer to depends on the propagation axis:
 CIRCULAR: K vectors within a certain radius of the origin are used. This is generally the more efficient choice. The maximum total number of k vectors is determined by the MAX NUMBER K VECTORS property. It corresponds to the N vectors closest to the origin such that N ≤ MAX NUMBER K VECTORS, and provided all other vectors are farther from the origin.
Propagation Axis  KU axis  KV axis 

X  Y  Z 
Y  X  Z 
Z  X  Y 
 MESH REFINEMENT: Mesh refinement method for the meshing of the simulation layers. Mesh refinement can give subcell accuracy for a simulation. See the Mesh refinement options page for more information.
 USE TANGENT VECTOR FIELD: This option is available for 3D simulations. Use the tangent vector field decomposition method. Using this method can result in faster convergence with increasing number of k vectors for highindexcontrast materials (e.g., metals in dielectrics). The tangent vector field option should only be used with MESH REFINEMENT set to conformal variant 0, 1, or 2.
 USE LI FACTORIZATION: This option is available for 2D simulations. Similar to tangent vector field option, this is helpful for speeding up the simulation convergence with increasing number of k vectors for highindexcontrast materials (e.g., metals in dielectrics).
Material Tab
 FIT MATERIALS WITH MULTICOEFFICIENT MODEL: Use a multicoefficient material fit of the material data in the Material Database to determine the material properties used in the RCWA simulation. This is the same model used by FDTD. This setting cannot be deselected.
 OVERRIDE MATERIALS FREQUENCY RANGE: By default, the frequency range of the RCWA simulation is used for the bandwidth of the material fit. Selecting this option allows the range to be specified by the user. The range can be specified using frequency or wavelength, using the maximum and minimum values or the center and span of the range.
Excitation Tab
This tab determines the incident angles and frequencies of the source where the RCWA simulation will be performed. For definitions of theta (\(\theta\)) and phi (\(\phi\)), see the RCWA Solver Introduction page.
Incident Angle
 INCIDENT ANGLE: Method for selecting the incident angles for the source. The options are:
 SINGLE: An individual ANGLE THETA and ANGLE PHI are chosen.
 TABLE: The THETA and PHI angles are chosen in a table. An RCWA simulation will be run with the THETA and PHI combinations from each row in the table. The properties of the table are:
 ADD: Adds an entry above the selected entry.
 REMOVE: Removes the selected entry.
 SORT: Sort the entries of the table.
Frequency Sample Spacing
 SAMPLE SPACING: Spacing type for the frequencies used by the simulation. The options are:
 UNIFORM: Points are uniformly spaced between a maximum and minimum value. The maximum and minimum value can be chosen using frequency or wavelength, using either maximum and minimum or center and span values.
 CHEBYSHEV: Points are selected between a maximum and minimum value using Chebyshev spacing. The maximum and minimum value can be chosen using frequency or wavelength, using either maximum and minimum or center and span values.
 CUSTOM: Frequency points are defined in a table. Properties of the table are:
 ADD: Adds an entry above the selected entry to the "frequency (THz)" table.
 REMOVE: Removes the selected entry from the "frequency (THz)" table.
 SORT: Sorts the table with frequency from low to high.
 USE WAVELENGTH SPACING: By default, data is recorded at points spaced with respect to frequency. Selecting this option spaces the data with respect to wavelength.
 FREQUENCY POINTS: Set to choose the number of frequency points at which to record data.
Results Tab
The results returned by the RCWA solver are selected in this tab. See the Results Returned section for descriptions of the results.
 REPORT INDEX: Return the “index” result as well as the “index preview” result when the simulation is in LAYOUT mode.
 REPORT TANGENT VECTOR FIELD: Return the “tangent_vector_field” result.
 REPORT GRATING ORDERS: Return the “grating_orders” result.
 REPORT GRATING POWER: Return the “grating_power” result.
 REPORT GRATING CHARACTERIZATION: Return the “grating_characterization” result.
 REPORT MODE AMPLITUDES: Return the “mode_amplitudes” result.
 REPORT FIELD AMPLITUDES: Return the “field_amplitudes” result.
Results Returned
In ANALYSIS mode:
Before running the simulation and when the "report index" is checked, the "Result View  RCWA" panel displays the index preview. The “index preview” result allows users to check if the index profile is correct without having to run the simulation first.

index preview
The "index preview" result is the calculated refractive index in each of the layers of the RCWA simulation. It is returned as a rectilinear dataset as a function of position and frequency/wavelength.
NOTE: The "index preview" result is available from version 2024 R2.
In LAYOUT mode:
After the simulation has run the following results can be returned as results of the RCWA solver object. An RCWA simulation will be run for every combination of selected frequency, incident angle, propagation direction, and S and P incident polarization.
For simulation results that include phase, the source is assumed to be placed at the first interface and the phase change is measured at the last interface (not the maximum/minimum of the RCWA solver region).

index
The "index" result is the refractive index at the interfaces of each layer of the RCWA simulation. It is returned as a rectilinear dataset as a function of position and frequency/wavelength. In RCWA algorithm, the results are calculated at the midpoint of each layer. But for improved visualization of the index, the "index" result is reported at the interfaces of the layers. As a result, the user might notice that the length of the dataset parameter (x,y,z vs f) is larger than the length of the dataset attribute (index_x, index_y, index_z) by 1 only along the propagation direction.

tangent_vector_field
The "tangent_vector_field" result is the tangent vector field in each layer of the RCWA simulation. The tangent vector is the electric field vector that is normal to the material interfaces in the layer.

total_energy
The "total_energy" result is the fraction of the power of the source that is reflected and transmitted from the simulated structure. The results are returned with names in the format (R,T)(s,p). The (R,T) indicates whether the result is transmission or reflection and the (s,p) indicates the polarization of the source.

substrate
The refractive index of the incident medium and transmitted medium. The "n_lower" result is the index for the medium in the negative direction of the propagation axis and the "n_upper" result is the index for the medium in the positive direction of the propagation axis.

grating_orders
The "grating_orders" result gives the fraction of the incident power in each individual grating orders, normalized to the refractive index of the incident medium \(n_i\) and the cosine of the incident angle theta, \(\cos(\theta)\). To obtain the total fraction of incident power that is diffracted into the grating orders, divide the result by \(n_i \cos(\theta)\) (see the grating_power results).
The results are returned with names in the format (R,T)(s,p)_grating. The (R,T) indicates whether the grating orders are on the transmitted or reflected side of the structure. The (s,p) in the result name indicates the polarization of the incident field, not the polarization of the grating order. Results for all kvectors, including kvectors corresponding to nonpropagating grating orders, are returned.
The grating orders are indexed by two indices, n and m, corresponding to the two axis directions normal to the propagation axis. The components of the grating order wavevectors normal to the propagation axis are also returned as "kx" and "ky". They are normalized by the incident wavenumber in vacuum \(k_0 = 2\pi f/c\), where \(f\) is the frequency of the source.
Which index and wavevector components corresponds to which axis depends on the propagation axis, as shown in the table below:
Propagation Axis n, kx axis m, ky axis X Y Z Y X Z Z X Y 
grating_power
The "grating_power" is equivalent to the grating_orders result, but with a different normalization factor so that we obtain the total fraction of incident power that is diffracted into the grating orders. The two types of results are related as follows: \(grating\_order = grating\_power * n_i * cos(\theta_i)\)
where \(n_i\) and \(\theta_i\) are respectively the refractive index and the incidence angle in the incident medium.
The grating_power result keeps only the data that contain at least one nonzero value, i.e. all the orders that do not propagate to the farfield are filtered out of the dataset.

grating_characterization
The "grating_characterization" result is the complex Sparameters for each grating order, split into S and P polarization. The amplitude of the Sparameters is the square root of the power transmission for that grating order. The phase of the Sparameter is the difference in phase of the grating order plane waves compared to the source.
The Sparameters are similar to the amplitude transmission and reflection coefficients relating the electric field amplitudes of the grating orders to the source, but they account for the change in angle and refracted index with the correction factor
$$\frac{n_t \cos(\theta_t)}{n_i \cos(\theta_i)}$$
Where \(n_t\) is the refractive index of the grating order medium, \(n_i\) is the refractive index of the source medium, \(\theta_t\) is the angle of the grating order, and \(\theta_i\) is the angle of the source. With this correction factor, the square of the Sparameter becomes the power transmission/reflection coefficient.
The results are returned with names in the format (R,T)(s,p)(s,p). The (R,T) indicates whether the grating orders are on the transmitted or reflected side of the structure. The first (s,p) indicates the source polarization and the second (s,p) indicates the polarization of the outgoing plane wave in the grating order.

mode_amplitudes
The "mode_amplitudes" result is the amplitudes of the forward and backward propagating Fourier modes in the top and bottom layers of the stack. This result is mainly intended to be used by the Lumerical RCWA  Zemax dynamic link API, and will not be useful for most users.
The results are returned with names in the format (a,b)(s,p)(x,y,z) where the (a,b) indicates forward or backward propagating modes, (s,p) indicates incident polarization, and (x,y,z) indicates the magnetic field component.
These results are equivalent to the mode amplitudes given in equation 29 of [1] in SI units. The results a(s,p)x, a(s,p)y, b(s,p)x, and b(s,p)y are equivalent to \(\phi_{x,n}a_n\), \(\phi_{y,n}a_n\), \(\phi_{x,n}b_n\), and \(\phi_{y,n}b_n\), respectively.

field_amplitudes
The "field_amplitudes" result is the amplitude of the transmitted/reflected grating order electric fields at the outer interfaces of the layer stack, normalized to the electric field amplitude of the source.
The results are returned with the names in the format ek(x,y,z)_(f,b)(s,p), where the (x,y,z) indicates the component of the electric field vector, the (f,b) indicates the direction of the grating order (f for forwards or b for backwards), and (s,p) indicates the polarization of the incident field.
The components of the grating order wavevectors normal to the propagation axis are also returned as kx and ky, defined the same way as they are in the "grating_orders" result above.

peak_memory
The peak usage of memory. This is a value reported after the simulation is run (not an estimate).

simulation_run_time
The time it takes to run the RCWA simulation in seconds. This is exactly the same as the reported "time to run RCWA simulation" in the log file.

total_threads
The number of threads used to run the RCWA simulation. When the simulation is "run within design environment", it is the value shown in the Design environment tab, in Resource Configuration. Otherwise it is the value shown in the RCWA solver tab.
References
 V. Liu and S. Fan, "S4: A free electromagnetic solver for layered periodic structures", Computer Physics Communications, 183, 22332244, 2012