Skip to content

Small Disk Transformer Breakdown #22

@J-co

Description

@J-co

So as you might know, the transformer boostfactor breaks down for small disks, starting at a radius of ~4-5cm. Since it's collapsing quite suddendly, it might be a bug/numerical instability rather than wrong assumptions. The assumptions might still be invalid for small disks but I would rather expect a wrong boostfactor and not a collapse to zero from that.
comsol_vs_mode_matching_disk_radius

One suspect I have is the following:
For smaller disks the X-Y grid should be smaller and finer than for large disks. Usually, we set it up like this:

# Coordinate System
    dx = 0.02
    coords = SeedCoordinateSystem(X = -0.5:dx:0.5, Y = -0.5:dx:0.5)

If dx is very small than the momentum grid kX, kY in SeedCoordinateSystem containts values larger than k0.
In boost_fractor.jl, line 167 this leads to the situation the comment already warns us from:

#TODO: If maximum k is higher than k0, then it is not defined
#       what happens with this mode
#       We should give a warning and handle this here
#       At the moment the script will just also propagate with a loss for those components
# Propagate through space
k0 = 2*pi/lambda*sqrt(eps)
k_prop = [conj(sqrt( Complex{Float64}(k0^2 - Kx^2 - Ky^2) )) for Kx in coords.kX, Ky in coords.kY]
E0 = E0 .* exp.(-1im*k_prop*dz)

The exponent becomes real and we have absorption. If I just scale the X-Y grid linearly with disk radius, almost all of kX,kY are large than k0 in magnitude at which point they could maybe overwhelm the propagating smaller kX,kY...

Just my theory at the moment, could be something else or a combination of things.

Cheers,
Jacob

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions