Returns a matrix data set with the propagating grating orders, a unit vector in the direction of the wave vector (or kvector) of each order, and the grating angles. The grating orders are the same as those used by the gratingprojection command to perform a projection.
Syntax 
Description 

out = gratingorders(period, source, frequency, index); 
Returns a matrix data set with the propagating grating orders (integers n and m), a unit vector in the direction of the kvector of each order (call them u (n,m)) and their corresponding angles (theta and phi). The parameters of the data set are n,m and frequency. Indexes n and m correspond to the first and second periodicity directions specified by the input periodicity vectors. The attributes of the data set are the unit vectors u (n,m) and their corresponding angles (theta and phi). The grating angles are defined with respect to the normal incidence direction of the source (call it the n axis). The first angle (theta) is an elevation from the n axis and the and the second angle (phi) is a rotation around the n axis starting from the first periodicity vector. Angle phi is only returned when two periodicity vectors are specified. 
Parameter 
Default value 
Type 
Description 


period 
required 
vector 
[3x1] or [3x2] matrix with the periodicity vectors. These are typically retrieved using the getperiodicity command. 

source 
required 
vector 
[3x1] vector with the normalized source kvector. This is typically retrieved using the getsourcedirection command. 

frequency 
required 
vector 
Vector of frequencies (in Hz). 

index 
optional 
1.0 
number or vector 
Refractive index of the background medium (typically the substrate or superstrate). It can be a scalar or a vector of the same size as the frequency vector. 
Example
This example shows how to find the propagating grating orders from a DGTD simulation with periodic boundary conditions. The source kvector and frequency are obtained from and plane wave source object named "source" and a frequency domain monitor named "monitor", respectively.
# frequency vector of the near fields fields = getresult("DGTD::monitor","fields"); frequency = fields.f; # periodicity vectors period = getperiodicity("DGTD"); # source kvector source_k = getsourcedirection("DGTD::source"); # propagating grating orders go = gratingorders(period,source_k,frequency,1.0); visualize(go);
See Also
List of commands , getperiodicity , getsourcedirection , gratingprojection