# Modeling layer in RCWA simulation

Status
Not open for further replies.

#### strspeed

##### Newbie level 3
Hi,

I've been working with the EMpy simulation software and comparing my results to other suites with good results. However, I'm running into issues modeling layers which are not simple binary gratings.

For example I'm trying to get the Fourier transform coefficients of the following layer.
I've been reading all of the papers I can find on the topic but either they are not clicking with me or it has not been discussed.

The library has two functions, one called SymmetricDoubleGrating (I cant get working, or dont undersand) and another Called AsymetricDoubleGrating (I can get working, dont understand). I'd like to understand what exactly is happening in their getEPSFourierCoeffs method given that I believe it's what I'm hopping to achieve.

link to the library and described functions.
https://github.com/lbolla/EMpy/blob/master/EMpy/utils.py

#### rrumpf

##### Full Member level 5
I have a few resources for you. For arbitrary and strange grating cross sections, you can use an FFT to calculate the Fourier coefficients. Take a look at "Lecture x -- FFT" here:

https://emlab.utep.edu/ee4386_5301_CompMethEE.htm

You will need to use many points on your array describing the grating cross section, like maybe 1000 points.

If you are using RCWA and want more details on this method, take a look at Lectures 18 and 21-23 here:

https://emlab.utep.edu/ee5390cem.htm

Hope this helps!

strspeed

### strspeed

Points: 2

#### strspeed

##### Newbie level 3
Hi,

Thank you for your previous help! I hope you don't mind me asking a follow up question.

The library I've been studying (EMpy or ElectromagneticPython) uses a Sinc approach to describing binary gratings. I had been wrestling trying to figure out what Sinc was doing in the following code. Should have just googled it earlier! Its the Fourier transform of the rectangle function!

That code is here for reference:
Code:
rix1 = 1
rix2 = 1.5
f = .5
h = [-n...0...n]
EPS = (rix1 ** 2 - rix2 ** 2) * f * numpy.sinc(h * f) + rix2 ** 2 * (h == 0)

I was able to use FFT to generate the same EPS results with a little struggle
the sudo code of my workings are as following:
Code:
build device on 1xN grid with device centered around midpoint
FFT the device

My question however is if I wanted to change the DC of my binary grating do I only have to do is remove some of the rix2 material from my device grid and replace it with rix1 material? Could I model Asymmetric devices this way using stacks of this 0xN layers, or can I not FFT an asymmetric grid. My grating layer (stacked so its easier to see) is in the picture below.

Thank you!

#### rrumpf

##### Full Member level 5
I have not used this software so this is only my best guess. If you wanted to increase the DC component by rdc, you would need

rix1 = rdc + 1
rix2 = rdc + 1.5

Status
Not open for further replies.