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

Complex frequency (wavelength) #219

Open
myurkin opened this issue Nov 18, 2016 · 3 comments
Open

Complex frequency (wavelength) #219

myurkin opened this issue Nov 18, 2016 · 3 comments
Assignees
Labels
comp-Logic Related to internal code logic feature Allows new functionality pri-Medium Worth assigning to a milestone usability Makes using code more convenient
Milestone

Comments

@myurkin
Copy link
Member

myurkin commented Nov 18, 2016

In a discussion Helge Dobbertin mentioned that to simulate certain physical phenomena (like Casimir forces) it is required to solve classical electromagnetic problem for complex frequency (wavelength or wavenumber). In this respect I see the following questions:

  • Will ADDA break down if we just redefine corresponding variables as complex? What additional changes are required and for what computed quantities? I guess, internal fields will be the easiest, while far-fields or radiation forces may require additional effort.
  • How the calculation of Sommerfeld integrals (for surface mode) would be affected?
  • Is it possible to define wavelength etc. always as complex without significant increase of computational time? (and without excessive use of if-s).

This issue may also be related to simulations for particles inside an absorbing medium - the latter is mentioned in #91.

@myurkin myurkin added comp-Logic Related to internal code logic usability Makes using code more convenient labels Nov 18, 2016
@myurkin myurkin self-assigned this Nov 18, 2016
@myurkin myurkin added this to the 1.6 milestone Jul 10, 2018
@myurkin myurkin assigned myurkin and unassigned myurkin Sep 13, 2020
@myurkin
Copy link
Member Author

myurkin commented Sep 13, 2020

@Sunmosk

@Sunmosk
Copy link
Contributor

Sunmosk commented Sep 14, 2020

For now, I'm going to make the WaveNum variable complex and change all the downstream variables and functions accordingly. Not sure it will solve this issue, but let's try :)

@myurkin myurkin assigned Sunmosk and unassigned myurkin Sep 14, 2020
@myurkin myurkin modified the milestones: 1.6, 1.5 Apr 24, 2021
@myurkin myurkin added pri-Medium Worth assigning to a milestone feature Allows new functionality labels Apr 24, 2021
@myurkin
Copy link
Member Author

myurkin commented May 25, 2023

Most of ADDA internal calculations depend only on wave number in the host medium, and relative refractive index (of particle to that of the host medium). Implementing absorbing host medium (#91) makes any complex wave number possible, which is exactly what we need to simulate complex frequency. So frequency w=a*w0 (complex a, real w0) in the host medium with refractive index mh (and particle refractive index m) is equivalent to frequency w0, host medium a*mh and particle refractive index a*m. So one can already simulate complex frequency with ADDA using -mhost command line option. There are, however, two issues:

  1. Some quantities inside ADDA, such as wavelength inside the medium, are determined through Re(mh), which may be zero for purely imaginary frequency (which is relevant for calculation of Casimir forces). Then this wavelength is effectively infinite. These quantities are not critical for ADDA calculations, but are shown in the output for informational purpose. Thus, we should, at least, avoid infinities there.

  2. Some simulation results do depend on the frequency (or on k0). For now, it seems that only EELS and CL probabilities (Simulation of EELS spectra #155) are such quantities (since the electron energy is another relevant parameter, which breaks standard scaling invariance). Thus, there is motivation to enable additional control of frequency in addition to mh. For instance, we can allow complex arguments to -lambda command line option).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
comp-Logic Related to internal code logic feature Allows new functionality pri-Medium Worth assigning to a milestone usability Makes using code more convenient
Projects
None yet
Development

No branches or pull requests

2 participants