Map is not implemented to beamsplitter
The current finesse.knm.maps.Map does not come into effect for a beamsplitter. See the following example:
The 1W input beam has a beam radius of 8cm and is incident on a 50/50 beamsplitter.
import finesse
finesse.configure(plotting=True)
model = finesse.Model()
model.parse(
"""
l l1
gauss g1 l1.p1.o w0=0.08 z=0
s s1 l1.p1 bs1.p1
bs bs1 R=0.5 T=0.5
modes(maxtem=2)
pd refl bs1.p2.o
pd trns bs1.p3.o
xaxis(bs1.phi, lin, -180, 180, 400)
"""
)
We apply an aperture map with a radius of 5cm to the beamsplitter. The beam should be clipped.
from finesse.knm import Map
from finesse.utilities.maps import circular_aperture
import numpy as np
import matplotlib.pyplot as plt
x = y = np.linspace(-0.17, 0.17, 1000)
test_ap = circular_aperture(x, y, 0.05)
model.bs1.surface_map = Map(x, y, amplitude=test_ap)
# Plot the aperture we are applying.
plt.pcolormesh(x, y, test_ap, rasterized=True, shading="auto")
plt.gca().set_aspect("equal")
plt.colorbar();
The map can be applied to the beamsplitter without any error. But it does not come into effect. The results show that we still have 0.5W reflected beam and 0.5W transmission beam.
sol = model.run()
fig = sol.plot()
If we replace the beamsplitter with a mirror: m m1 R=0.5 T=0.5
.
We will get the power of the clipped beam.