adda icon indicating copy to clipboard operation
adda copied to clipboard

Non-linear refractive index

Open myurkin opened this issue 5 years ago • 1 comments

It should be relatively easy to adapt ADDA to calculation of scattering by particles made of non-linear materials (under sufficiently strong electric fields). There are two options:

  • Use ADDA iteratively with some external script. First, set the refractive index for low intensity and calculate internal field, then update the refractive index on each dipole using this internal fields and non-linear expression for the specific material. Then, repeat it until convergence (probably, a few iterations would be sufficient). Similar idea has been used in a number of papers: https://doi.org/10.1021/jp202070z https://doi.org/10.1364/OE.18.021603 The only problem is that ADDA currently doesn't support continuous change of refractive index - see #12 , but a workaround already exists.
  • Insert the non-linearity in the iterative solver itself. ADDA would take the non-linear relation from a command line (or a separate file) and use it in the application of the diagonal part of the interaction vector (instead of the current point-wise multiplication of vector by a constant one). Actually, it is sufficient to update the square root of polarizabilities (diagonal matrix S) and apply them with current code. Two issues with that are:
    • internal fields (vector x) are not immediately available in the iterative solver (only S.x). So the update of S will require first dividing by it (although this can probably be combined with non-linear relation itself). Should not take a lot of time, but can be performed only once in several iterations.
    • it is not clear how the iterative solvers will behave, when the interaction matrix is changed during iteration (some mathematical literature should be studied). Moreover, currently the system to be solved in (I+S.D.S).(S.x)=(S.b), where D is the Green's-tensor matrix and b - vector of incident fields. So the right-hand-side is also non-constant. I guess the latter should be fatal to most iterative solvers - they will converge to a solution for initial right-hand-side. Using the original (non-symmetrized) system (I+D.S.S).x=b may help, but it will break some existing parts of the code (so better to avoid it).

myurkin avatar Sep 30 '19 17:09 myurkin

Note also, that second-order nonlinear optical process is forbidden in centrosymmetric media (in the electric dipole approximation), which explains its surface sensitivity (as explained in reference below). Thus, it is hard to obtain accurate DDA results for it. By contrast, the DDA is more suitable for third-order nonlinearity, which is generally a volumetric phenomenon.

Gallinet B., Butet J., and Martin O.J.F. Numerical methods for nanophotonics: standard problems and future challenges, Laser & Photon. Rev. 9, 577–603 (2015).

myurkin avatar May 26 '23 07:05 myurkin