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

Modified zoneplate #138

Open
mano2931 opened this issue Mar 13, 2023 · 4 comments
Open

Modified zoneplate #138

mano2931 opened this issue Mar 13, 2023 · 4 comments

Comments

@mano2931
Copy link

I would like to use the zoneplate as a focusing element in my simulation but i would like to input the radii of the nth zone. How would i be able to introduce a custom optical element in XRT? Is that possible? Can you help me with it

@kklmn
Copy link
Owner

kklmn commented Mar 13, 2023

Inherit from xrt.backends.raycing.oes.NormalFZP or xrt.backends.raycing.oes.GeneralFZPin0YZ and modify the method rays_good_gn() that for local 3D coordinates returns grating vector and ray state. The latter class is more general, where one can modify the shape of the zones and set a phase shift to the zones. In the former class, the zones are always circular.

@mano2931
Copy link
Author

Sorry. I didn't quite understand what you mean by inherit. Should i modify the backend files or is there a way to clone it.

Pardon me, iam not an advanced user.

Also, i would like to couple the zoneplate with refractive lenses to simulate an achromatic hybrid lens as in https://www.nature.com/articles/s41467-022-28902-8. I was also looking for modules of spherical lenses but i didnt find any. Could you please clarify that also

@mano2931 mano2931 reopened this Mar 13, 2023
@mano2931
Copy link
Author

The idea behind modifiying the periodicity of the zoneplate comes from the notion that the spherical abberation introduced by the spheres can be compensated by the zoneplate. Its my first time with XRT and so i need a little assistance to get going :)

@kklmn
Copy link
Owner

kklmn commented Mar 13, 2023

Google will help you with "Python Inheritance".

I was also looking for modules of spherical lenses but i didnt find any

Inherit from Plate or ParaboloidFlatLens. Create your desired shape by providing height and normal for both sides of the lens: local_z1, local_n1, local_z2, local_n2.

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