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

shift-and-invert eigensolver #1153

Closed
stevengj opened this issue Mar 18, 2020 · 1 comment · Fixed by #1158
Closed

shift-and-invert eigensolver #1153

stevengj opened this issue Mar 18, 2020 · 1 comment · Fixed by #1158

Comments

@stevengj
Copy link
Collaborator

stevengj commented Mar 18, 2020

We have a frequency-domain solver that computes the fields from a given current source at a given frequency. It would be nice to be able to iterate this — using the resulting fields as the source in a subsequent frequency-domain solve — in order to implement the "shift-and-invert" power iteration to compute resonant modes.

(In the longer run, we could also do Arnoldi, Rayleigh-quotient iteration, etcetera… If we go that route we should probably just call ARPACK or similar.)

@stevengj
Copy link
Collaborator Author

stevengj commented Mar 18, 2020

As explained in the attached notes, I think we actually want to use the D and B fields (not E and H) as current sources in a shift-and-invert power iteration.

freq-domain.pdf

(See also these notes for more background on this formulation of Maxwell's equations.)

Updated: Reviewing the Meep source code, I realized that the linear system we are solving in Meep is already expressed in terms of D and B, so this formulation is especially easy to adapt to a power iteration.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant