RFC: Include example of vector waves (such as electromagnetism or elasticity)
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.
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_functionfor outgoing waves -
regular_basis_functionfor regular spherical waves -
outgoing_translation_matrixto translate outgoing waves from one origin to another (addition translation theorem) -
basisorder_to_basislengthandbasislength_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.