Hi all,
I'm currently trying to visualise the beam profile of a laser in 2D and include the wavefronts every z=10 (so z={10, 20,30...etc}, given that the limits of the plot in the z-dirn will be +- 100.
The beam radius follows a simple equation as a function of distance (z) from the waist (w0 where z=0)
I have plotted the beam profile according to it's radius:
beamprofile[zlimit_] :=
Module[{w, beamwaist,w0, \[Lambda]},
w0 = 100*10^-3; (* set beam waist radius to 100\[Mu]m *);
\[Lambda] = 0.7*10^-3; (*set wavelength of laser to 700nm *)
w[z_] := w0*Sqrt[1 + ((\[Lambda] z)/(\[Pi] w0^2))^2];
beamwaist = Plot[{-w[z], w[z]}, {z, -zlimit, zlimit},
PlotRange -> All,
PlotStyle -> {Blue, Blue},
PlotLabel -> Style["Gaussian Beam profile"]]
]
Adding the wavefronts becomes difficult as they are transverse (ie. along the vertical axis) and they are not circular. I'm trying to bound these wavefronts by the upper and lower beam radii curves.
As mentioned above the wavefronts are gaussian.
I have tried multiple ways to parametrize, or create circles to use with varying radii of curvature to no avail. The radii of curvature of the wavelengths follow this equation:
R[z_]: = z*(1+((\[Pi] w0^2)/(\[Lambda] z))^2
The closest I have gotten was to include Bezier curves between the points needed, but these aren't bounded by the upper and lower beam profile:
beamprofile[zlimit_] :=
Module[{w, R, d, curves, beamwaist, wavefronts, \[Theta],
w0, \[Lambda]},
w0 = 100*10^-3; (* set beam waist radius to 100\[Mu]m *);
\[Lambda] = 0.7*10^-3; (*set wavelength of laser to 700nm *)
w[z_] := w0*Sqrt[1 + ((\[Lambda] z)/(\[Pi] w0^2))^2];
R[z_] := z*(1 + ((\[Pi] w0^2)/(\[Lambda] z))^2);
beamwaist = Plot[{-w[z], w[z]}, {z, -zlimit, zlimit},
PlotRange -> All,
PlotStyle -> {Blue, Blue},
PlotLabel -> Style["Gaussian Beam profile"]];
\[Theta][x_] := ArcSin[w[x]/R[x]];
d[x_] := R[x] (1 - (w[x]/R[x])^2)^(1/2);
curves =
Graphics[
Table[BezierCurve[{{R[z] - d[z], w[z]}, {z,
0}, {R[z] - d[z], -w[z]}}], {z, zlimit/10, 2*zlimit,
zlimit/5}]];
Show[{beamwaist, curves}]
]
beamprofile[100]
Any assistance or advice is welcome!