MultipleScattering.jl icon indicating copy to clipboard operation
MultipleScattering.jl copied to clipboard

RFC: Include example of vector waves (such as electromagnetism or elasticity)

Open jondea opened this issue 7 years ago • 1 comments

Currently the machinery should work for acoustics, which is a scalar equation. But we have not yet tested for any physics with a FieldDim > 1. Without a test case it is hard to see what to do. The outer types and structure should be fine, but I expect the inner machinery will break. We also need to be careful that when we generalise the machinery fully that we don't make it slower.

jondea avatar May 17 '18 07:05 jondea

Much of the inner machinery has now been made more abstract, making it easier to add a new kind of wave, including vectorial waves.

Below is a list of functions and types that need to be implemented. For clarity I will imagine we are trying to implement Electromagnetism:

  • A subtype Electromagnetism{T,Dim} <: PhysicalMedium{Dim,2}
  • The basis functions of the space including:
    • outgoing_basis_function for outgoing waves
    • regular_basis_function for regular spherical waves
    • outgoing_translation_matrix to translate outgoing waves from one origin to another (addition translation theorem)
    • basisorder_to_basislength and basislength_to_basisorder
  • A T-matrix, for example for a sphere we would need to define the function t_matrix(p::Particle{3,Electromagnetism{T,3},Sphere{T,3}}

After this, some small detail in internal working of the functions run and field may need adjusting, but this should be very minor.

arturgower avatar Dec 08 '21 15:12 arturgower