Metalens design and simulation

  • 15 November 2023
  • 3 replies
  • 368 views

Userlevel 5
Badge +3

This forum post is trying to list the potentially useful information for you to have a better concept of Metalens design with the work we have done.


3 replies

Userlevel 5
Badge +3

This KBA is going to show you the overall scope of what we have and how you can do it. I will highlight some references listed in this article since I think that they are quite important. 

How to design DOE lens or metalens in OpticStudio – Knowledgebase (zemax.com)

The dll mentioned above could be found in this forum post with more details.

DLL (User-Defined Surface): Sequential Binary 1+2 | Zemax Community

For engineers who have a Physics background other than the lens design, I would like to recommend you reading the articles in this path before you go directly into the optimization. 

Imaging System Fundamentals – Zemax

Lens Design - A Pencil of Rays

You may also want to check how we model this in OpticStudio. 

How diffractive surfaces are modeled in OpticStudio – Knowledgebase (zemax.com)

The Binary 2 surface is frequently used for Metalens. 

How to model diffractive optics using the Binary 2 surface – Knowledgebase (zemax.com)

If you are familiar with Lumerical, these solutions might be something interesting. 

Small-Scale Metalens – Field Propagation – Ansys Optics

Large-Scale Metalens – Ray Propagation – Ansys Optics

[Webinar] Zemax and Lumerical: Part 2 - From Nano-scale to Macro-scale Optics and Back [Q&A] | Zemax Community

For users who need to import and create the phase distributions that could not be described using existing phase surfaces, you can either import it or write your own dll to describe. 

About importing and simulating a phase profile of a DOE lens | Zemax Community

When writing your User-Defined Surface DLL, the User Data Structure is used to pass information from OpticStudio to the DLL and back. This includes the x, y, z ray locations on a plane tangent to the surface vertex, the l, m, n direction cosines of the ray, and the ln, mn, nn surface normals. You may use these coordinates and write your own User Defined Surface function based on these parameters.
For more information about custom DLLs in OpticStudio, please take a look at these knowledgebase articles, which discuss the data structures and give guidelines about how to compile or debug your code:
Custom DLLs in OpticStudio: An overview of user-defined surfaces, objects, and other DLL types – Knowledgebase (zemax.com)
How to compile a User-Defined DLL – Knowledgebase (zemax.com)
How to debug a DLL or EXE – Knowledgebase (zemax.com)
  

I'm trying to design a trifocal lens. For this, I have reviewed almost all the articles you referenced above. But my question will be more fundamental. Is there no way to manage the phase profile without using a dll? What do I need to do to get a step by step phase profile? Why do I not see a staircase-shaped phase profile when I use Binary2 lenses, but I get sharp peaks? I want to determine the phase profile and have it make calculations for the surface of my lens. Or do you think it is possible to do this in non-sequential mode by placing surfaces on top of each other?

Userlevel 5
Badge +3

I'm trying to design a trifocal lens. For this, I have reviewed almost all the articles you referenced above. But my question will be more fundamental. Is there no way to manage the phase profile without using a dll? What do I need to do to get a step by step phase profile? Why do I not see a staircase-shaped phase profile when I use Binary2 lenses, but I get sharp peaks? I want to determine the phase profile and have it make calculations for the surface of my lens. Or do you think it is possible to do this in non-sequential mode by placing surfaces on top of each other?

HI Senturke, if you want to have a step-by-step phase profile, you could use the grid phase.

The usage of this surface could be found in the help file: The Setup Tab > Editors Group (Setup Tab) > Lens Data Editor > Sequential Surfaces (lens data editor) > Grid Phase

If you want to do optimization of phase distribution first, you can use the existing binary surface and then convert it to grid phase. The KBA below might be useful for you. 

How to calculate the sag of a diffractive optical element with a macro – Knowledgebase (zemax.com)

 

Reply