Laser#
- class Laser(options)#
Bases:
matlab.mixin.Heterogeneous,handleLaserspecifies monochromatic laser parameters and derived quantities.Stores wavelength/frequency, polarization, direction/angles, phase, intensity and power. Provides dependent properties (e.g.,
Wavevector,AngularFrequency) and helpers (spacePhaseFunc(),timePhaseFunc(),spaceTimePhaseFunc(),rotate(),rotateToAngle()).Example:
l = Laser(frequency=3.84e14, polarization=[1;0;0], direction=[0;0;1]); k = l.AngularWavevector; % [rad/m] f = l.timePhaseFunc(); % function_handle for :math:`e^{i \omega t}`
- Constructor Summary
- Laser(options)#
Construct a
Laser.- Parameters:
frequency (
double, optional) – Linear frequency \(f\) [Hz] (sets \(\lambda\))wavelength (
double, optional) – Wavelength \(\lambda\) [m] (sets \(f\))polarization (
double(3,1), optional) – Jones vector \((E_x,E_y,E_z)\)phase (
double, optional) – Optical phase \(\phi\) [rad]direction (
double(3,1), optional) – Propagation direction unit vector \((x,y,z)\)angle (
double(1,2), optional) – Spherical angles \((\theta,\phi)\) [rad]intensity (
double, optional) – Intensity \(I\) [W/m^2]power (
double, optional) – Power \(P\) [W]
- Property Summary
- Angle (1,2) double = [0,0]#
Spherical angles \((\theta,\phi)\) in [rad]
- AngularFrequency#
\(\omega = 2\pi f\) [rad/s]
- AngularWavenumber#
\(k = 2\pi/\lambda\) [rad/m]
- AngularWavevector#
\(\mathbf{k} = k\, \hat{\mathbf{k}}\) [rad/m]
- Direction (3,1) double = [0;0;1]#
Propagation unit vector \(\hat{\mathbf{k}} = (x,y,z)\)
- ElectricFieldAmplitude#
Field amplitude \(|E| = \sqrt{2 Z_0 I}\) in [V/m]
- Frequency (1,1) double = NaN#
Linear frequency \(f\) in [Hz]
- Intensity double = NaN#
Intensity \(I\) in [W/m^2]
- IntensityLu#
Intensity in [mW/cm^2]
- Phase (1,1) double = 0#
Optical phase \(\phi\) in [rad]
- Polarization (3,1) double = [1;0;0]#
Jones polarization vector \((E_x,E_y,E_z)\). The definition here is the conjugate of wiki’s
- Power double = NaN#
Optical power \(P\) in [W]
- Wavelength (1,1) double = NaN#
Wavelength \(\lambda\) in [m]
- WavelengthInAir#
\(\lambda_{\mathrm{air}}\) in [m]
- Wavenumber#
\(k_0 = 1/\lambda\) [1/m]
- Wavevector#
\(\mathbf{k}_0 = k_0\, \hat{\mathbf{k}}\) [1/m]
- Method Summary
- rotate(eul)#
Rotate direction and polarization by ZYZ Euler angles.
- Parameters:
eul (
double(1,3)) – Euler angles \([\alpha,\beta,\gamma]\) (ZYZ) in radians- Returns:
Self-reference
- Return type:
- rotateToAngle(angle)#
Rotate to target spherical angles \([\theta,\phi]\).
- Parameters:
angle (
double(1,2)) – \([\theta,\phi]\) in radians- Returns:
Self-reference
- Return type:
- spacePhaseFunc()#
Build \(e^{i(\phi - \mathbf{k}\cdot \mathbf{r})}\) phase function of space.
- Returns:
function handle mapping position \(\mathbf{r}\) to phase factor
- Return type:
function_handle
- spaceTimePhaseFunc()#
Build \(e^{i(\omega t + \phi - \mathbf{k}\cdot \mathbf{r})}\) phase function.
- Returns:
function handle mapping (\(\mathbf{r},t\)) to phase factor
- Return type:
function_handle
- timePhaseFunc()#
Build \(e^{i \omega t}\) phase function of time.
- Returns:
function handle mapping \(t\) to phase factor
- Return type:
function_handle