Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PEC/Metallic Structures #7

Closed
siegel8 opened this issue Oct 27, 2022 · 4 comments
Closed

PEC/Metallic Structures #7

siegel8 opened this issue Oct 27, 2022 · 4 comments

Comments

@siegel8
Copy link

siegel8 commented Oct 27, 2022

I was wondering if/how to implement TORCWA with a PEC/metallic back-reflector? For a metallic back-reflector, is it as simple as changing the substrate_eps to be a metallic dielectric function or is it more complicated than that? In a similar vein, what is the appropriate method to define a PEC? Would it be setting substrate_eps = inf?

image

@kch3782
Copy link
Owner

kch3782 commented Oct 28, 2022

When simulating with a metal reflector, you can simply use the complex permittivity of the metal. We found that the S-matrix calculated for similar simulations is nearly identical when compared to the COMSOL simulations. I haven't tried it, but if setting infinity substrate_eps, the program either doesn't work or gives a large error. Following literature would be helpful.

[1] Moharam, M. G., and Thomas K. Gaylord. "Rigorous coupled-wave analysis of metallic surface-relief gratings." JOSA a 3.11 (1986): 1780-1787.

In addition, if you put a metal reflector in the input layer as shown in the left situation figure, you need to set options in 'set_incident_angle' to 'output', and set options in 'S-matrix' and 'plain wave source' functions to 'backward'.

set_incident_angle(inc_ang,azi_ang,angle_layer='output')
sim.S_parameters(orders,direction='backward',port='transmission',polarization='xx',ref_order=[0,0]):
sim.source_planewave(amplitude=[1.,0.],direction='backward')

If you flip the entire structure and place the metal reflector in the output layer as shown in the right situation figure, the same simulation can be done by just put 'substrate_eps' in 'add_output_layer' instead of 'add_input_layer'.

sim.add_output_layer(eps=substrate_eps)
fig1

@siegel8
Copy link
Author

siegel8 commented Oct 28, 2022

Thank you for clarifying that! And that is very useful to know how to adjust the simulation to ensure proper incident fields.

As a follow-up, has a metallic structure been optimized over instead of a dielectric like Si with this gradient technique? My experience with similar (adjoint based optimization instead of automatic differentiation) was that it can work, with just a more complicated mapping of the density function to the permittivity distribution. See this work for an example of the mapping (the machine learning aspect is not relevant as they base it on the adjoint method first). "Machine-learning-assisted metasurfacedesign for high-efficiency thermal emitteroptimization" doi: 10.1063/1.5134792

@kch3782
Copy link
Owner

kch3782 commented Oct 31, 2022

We haven't tried gradiet-based optimization using TORCWA for metallic structures. Since the mapping function in the literature is a differentiable function (automatic differentiation is possible) and we think that optimization is possible.

@siegel8
Copy link
Author

siegel8 commented Oct 31, 2022

Great. Thanks!

@siegel8 siegel8 closed this as completed Oct 31, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants