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

Vector fields docs #89

Open
smartalecH opened this issue Feb 9, 2024 · 1 comment
Open

Vector fields docs #89

smartalecH opened this issue Feb 9, 2024 · 1 comment
Assignees

Comments

@smartalecH
Copy link
Contributor

Would be good to add a simple page in the docs that describe how fmmax computes vector fields. The paper describes this to some detail, but even since then, fmmax has changed it's approach.

Some interesting details include...

  • FOMs used
  • Comparisons of methods (especially compared to their FOURIER counterparts)
  • When to use some vs others

We can start will a "brain dump" (it doesn't have to sound like a paper). But documenting this will help us keep things consistent.

@smartalecH
Copy link
Contributor Author

Here's some good info:

fmmax/src/fmmax/vector.py

Lines 113 to 130 in c6cd855

The calculation finds the minimum of a quadratic loss function using a single
Newton iteration. Rather than optimizing the real-space tangent field, the
Fourier coefficients are directly optimized.
The tangent field has several properties or invariances:
- The tangent field is independent of the scale of the unit cell; if the
unit cell is uniformly scaled (e.g. by changing units from nm to microns),
the vector field is unchanged.
- The tangent field for a supercell (containing e.g. 2x2 unit cells) is
identical to that of a single unit cell, so long as the number of terms in
the Fourier expansion is increased correspondingly. Note that this means that
the tangent field depends upon the number of terms in the Fourier expansion.
- The tangent field is independent of the resolution of the discretized unit
cell. That is, whether the permittivity distribution is specified with a
`(100, 100)` or `(200, 200)` shaped array has no impact on the resulting field.
- The tangent field is independent of the amplitude of the array from which it is
obtained, e.g. the permittivity contrast.

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