Calculate internal fields inside scatterers
For some applications (topological derivatives, visualizations, pedagogy) it may be useful to calculate the internal field inside a scatterer. Currently, trying to calculate a field inside a scatterer gives something unphysical.
Blueprint information
- Status:
- Started
- Approver:
- Tom Dimiduk
- Priority:
- Low
- Drafter:
- Jerome Fung
- Direction:
- Approved
- Assignee:
- DanHickstein
- Definition:
- New
- Series goal:
- None
- Implementation:
- Good progress
- Milestone target:
- 3.0
- Started by
- Jerome Fung
- Completed by
Related branches
Related bugs
Sprints
Whiteboard
For Mie, this is relatively easy: get internal coefficients c_l and d_l from known external coefficients a_l and b_l. Internal fields go as vector spherical harmonics with j_l(r) radial dependence.
HoloPy follows the conventions of Bohren and Huffman [1], so this implementation should use the internal field conventions from that source.
[1] http://
Note from JF: use logarithmic derivatives and ratios of \psi_l(mx).
Multilayer: slightly harder; field expansion is different in each layer.
Multisphere: hard. Requires some analytical work to calculate explicit forms for internal coefficients in terms of final sphere-centered expansions, plus deep hacking of SCSMFO.
The code for this can go in a (Mie or Multisphere)
A pure python implementation would be fine for now since we can just call it for internal fields which in general there will not be that many of.
Eventually faster implementation will have a fortran mie_internal_fields like mie_f.mieangfun