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

3D Spots #41

Closed
10 of 11 tasks
ichristen opened this issue May 20, 2023 · 0 comments · Fixed by #69
Closed
10 of 11 tasks

3D Spots #41

ichristen opened this issue May 20, 2023 · 0 comments · Fixed by #69
Assignees
Labels
enhancement New feature or request

Comments

@ichristen
Copy link
Collaborator

ichristen commented May 20, 2023

GS-type algorithms are not fundamentally constricted to using DFTs. Another implementation of GS might consider holography at a handful of points in the farfield ($k$-space), where for each point the equivalent farfield transformation is performed and the remaining points which would have been included in the "knm" DFT grid farfield (zeroed anyway during the GS loop) are disregarded. There are three distinct advantages of such an approach:

  • This point-specific farfield transformation can include depth (hence 3D spots). Other cool things are planned.
  • The 2D or 3D coordinates of the transformation are floating point, which means that memory does not have to be spent to pad a 2D DFT grid if greater effective resolution is desired.
  • Speed, in the case of a small number of points (the cutoff is not yet benchmarked, but probably above 1000 points; this will depend on memory constraints and whether a GPU is used).

TODOs:

  • FreeSpotHologram (name might change) basic structure.
  • Overridden transfer functions for mapping to the point-farfield.
  • Superclass-compatible logic.
  • Estimate of N_batch_max from available memory.
  • Modify 2D spot checks and other functions to include 3D case.
  • Maths for normalized 3D depth, and transformations between units.
  • Determine best hierarchy sharing with SpotHologram.
  • Raw GPU kernels for speed.
  • Mapping feature.
  • Testing.
  • Documentation.
@ichristen ichristen self-assigned this May 20, 2023
@ichristen ichristen added the enhancement New feature or request label May 20, 2023
@ichristen ichristen linked a pull request Jul 23, 2024 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant