Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Modeling layer in RCWA simulation

Status
Not open for further replies.

strspeed

Newbie level 3
Joined
Jul 20, 2016
Messages
3
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Activity points
36
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.
Untitled.png

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
Joined
Jul 6, 2007
Messages
289
Helped
66
Reputation
132
Reaction score
43
Trophy points
1,308
Location
El Paso, TX
Activity points
3,559
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

Newbie level 3
Joined
Jul 20, 2016
Messages
3
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Activity points
36
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!
Help.PNG
 

rrumpf

Full Member level 5
Joined
Jul 6, 2007
Messages
289
Helped
66
Reputation
132
Reaction score
43
Trophy points
1,308
Location
El Paso, TX
Activity points
3,559
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.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Top