MLFMMTransmitMaps

The MLFMMTransmitMap type calculates the transmission between a MLFMMsource and an IrregularFieldSampling. The MLFMMSource is a hierarchically organized datastructure which splits the source volume into multiple box shaped domains. The source contributions of each box are aggregated and translated towards the observation locations defined in the IrregularFieldSampling according to the Multilevel Fast Multipole Method.

The keyword arguments for the construction of a MLFMMTransmitMap are described in the following table

Keyword ArgumentShort Description
expectedaccuracy::RealDefines the desired approximation accuracy for all operations involving the MLFMMsource. Mainly affects the number of samples used to store the PlaneWaveRepresentations for each box.
verbose = falseDetermines if (debug) text should be printed to console for all operations involving the MLFMMSource.
minboxlength = π / (2 * wavenumber)Side length of the smallest box, defaults to half a wavelength. All larger box side lengths are a $2^n$-multiple of the minboxlength.
orderθ=8Interpolation order along $\theta$ for the ResampleMaps used to intrpolate from one box level to the next. Only affects ResampleMaps with local interpolation strategies.
orderϕ=8Interpolation order along $\phi$ for the ResampleMaps used to intrpolate from one box level to the next. Only affects ResampleMaps with local interpolation strategies.
samplingtype::Type{SphereSamplingStrategy} = GaussLegendreθRegularϕSamplingType of the sampling strategy of the PlaneWaveRepresentations used to represent the accumulated field contributions of each box
num_bufferboxes::Integer = 1

MLFMMTransmitMap( basisfunctions, #Can be ::SurfaceCurrentDensity, ::DipoleArray, NamedTuple(:points,:sourcefunctions) fieldsampling::IrregularFieldSampling, wavenumber::T; expectedaccuracy::T = T(1e-3), verbose = false, minhalfsize = π / (2 * wavenumber), orderθ = 8, orderϕ = 8, samplingtype::Type{S} = GaussLegendreθRegularϕSampling,

transfertype::Type{AT} = PlannedTransfer{samplingtype,Complex{T},T},
mintranslationlevel::Integer = 0,

) where {T<:Real,S<:SphereSamplingStrategy,AT<:AbstractTransfer} C = Complex{T}