org.gwoptics.gaussbeams
Class GaussMode

java.lang.Object
  extended by org.gwoptics.gaussbeams.GaussMode

public class GaussMode
extends java.lang.Object

Gaussmode is a class that provides the mathematical framework for Gaussian beams. Gaussmode objects store the beam parameter, the laser wavelength and the local index of refraction, which fully decribes a Gaussian beam. The class provides a set of utility functions to transform Gaussian beam parameters or to compute properties of the beam (beam size, amplitue patterns, etc.)

Since:
0.1.1
Author:
Andreas Freise 05/6/2009

Field Summary
 Complex _qx
           
 Complex _qy
           
 
Constructor Summary
GaussMode()
          Default constructor which sets dummy parameters for the Gaussian beam: lambda = 1064nm, wavelength of a Nd:YAG laser nr = 1, index of refraction of vacuum (or air) beam waist of w0=1mm at z0=0
GaussMode(float lambda, Complex qx, Complex qy, float nr)
          Additional constructor that sets user defined beam parameters, now optionally different for x- and y-direction.
GaussMode(float lambda, Complex q, float nr)
          Standard constructor that sets user defined beam parameters.
GaussMode(float lambda, float w0, float z, float nr)
          Additional constructor that sets the beam parameters via beam waist radius and beam waist position.
GaussMode(float lambda, float w0x, float zx, float w0y, float zy, float nr)
          Additional constructor that sets the beam parameters via beam waist radius and beam waist position, now allowing different parameters in x- and y-direction.
 
Method Summary
 double get_Gouyx()
          This function returns the Gouy phase Psi(z) in x-direction (tangential plane)
 double get_Gouyy()
          This function returns the Gouy phase Psi(z) in y-direction (sagittal plane)
 double get_lambda()
          This function returns the vacuum wavelength of the laser.
 double get_nr()
          This function returns the local index of refraction
 Complex get_q0x()
          This function Gaussian beam parametera at the waist q0 in x-direction (tangential plane)
 Complex get_q0y()
          This function returns the Gaussian beam parameter at the waist q0 in y-direction (sagittal plane)
 Complex get_qx()
          This function returns the Gaussian beam parameter q in x-direction (tangential plane)
 Complex get_qy()
          This function returns the Gaussian beam parameter q in y-direction (sagittal plane)
 double get_ROCx()
          This function returns the phase front radius of curvature in x-direction (tangential plane)
 double get_ROCy()
          This function returns the phase front radius of curvature in y-direction (sagittal plane)
 double get_w0x()
          This function returns the beam waist radius in x-direction (tangential plane)
 double get_w0y()
          This function returns the beam waist radius in y-direction (sagittal plane)
 double get_wx()
          This function returns the beam radius in x-direction (tangential plane)
 double get_wy()
          This function returns the beam radius in y-direction (sagittal plane)
 double get_zrx()
          This function returns the Rayleigh range z_r in x-direction (tangential plane)
 double get_zry()
          This function returns the Rayleigh range z_r in y-direction (sagittal plane)
 double get_zx()
          This function returns the distance to the beam waist in x-direction (tangential plane)
 double get_zy()
          This function returns the distance to the beam waist in y-direction (sagittal plane)
static java.lang.Double Gouy(Complex q)
          This function computes the Gouy for a given beam parameters.
static Complex make_q(double w0, double z, double lambda, double nr)
          This function computes a Gaussian beam parameters from user defined parameters for the beam waist (and wavelength, and index of refraction).
static Complex q0(Complex q)
          This function computes the beam parameter at the waist for a given beam parameters.
static java.lang.Double ROC(Complex q)
          This function computes the phase front curvature for a given beam parameters.
 Complex u_lp_cos_xy(int p, int l, double x, double y)
          This function returns the complex amplitude of a sinusoidal Laguerre-Gaussian beam shape u_pl.
 double u_n_amp(int n, Complex q, double x)
          This function represents the one-dimensional part of u_nm_amp the amplitude of a u_nm Hermite-Gauss beam pattern.
 double u_n_phs(int n, Complex q, double x)
          This function represents the one-dimensional part of u_nm_phs the phase of a u_nm Hermite-Gauss beam pattern.
 Complex u_n(int n, Complex q, double x)
          This function represents the one-dimensional part of a u_nm Hermite-Gauss beam patter,
 double u_nm_amp(int n, int m, double x, double y)
          This function returns the real amplitude only of a Hermite-Gaussian beam shape u_nm.
 double u_nm_phs(int n, int m, double x, double y)
          This function returns the phase of a Hermite-Gaussian beam shape u_nm, *without* the sign flips from the H polynomials!
 Complex u_nm(int n, int m, double x, double y)
          This function returns the complex amplitude of a Hermite-Gaussian beam shape u_nm.
 double u_pl_amp_xy(int p, int l, double x, double y)
          This function returns the real amplitude only of a heical Laguerre-Gaussian beam shape u_pl.
 double u_pl_amp(int p, int l, double r, double phi)
          This function returns the real amplitude only of a helical Laguerre-Gaussian beam shape u_pl.
 double u_pl_cos_amp_xy(int p, int l, double x, double y)
          This function returns the real amplitude only of a sinusoidal Laguerre-Gaussian beam shape u_pl.
 double u_pl_cos_amp(int p, int l, double r, double phi)
          This function returns the real amplitude only of a sinusoidal Laguerre-Gaussian beam shape u_pl.
 Complex u_pl_cos(int p, int l, double r, double phi)
          This function returns the complex amplitude of a sinusoidal Laguerre-Gaussian beam shape u_pl.
 Complex u_pl_xy(int p, int l, double x, double y)
          This function returns the complex amplitude of a heical Laguerre-Gaussian beam shape u_pl.
 Complex u_pl(int p, int l, double r, double phi)
          This function returns the complex amplitude of a helical Laguerre-Gaussian beam shape u_pl.
 java.lang.Double w_size(Complex q)
          This function computes the beam radius for a given beam parameters.
static java.lang.Double w_size(Complex q, java.lang.Double lambda, java.lang.Double nr)
          This function computes the beam radius for a given beam parameters.
 java.lang.Double w0_size(Complex q)
          This function computes the beam waist radius for a given beam parameters.
static java.lang.Double w0_size(Complex q, java.lang.Double lambda, java.lang.Double nr)
          This function computes the beam waist radius for a given beam parameters.
static java.lang.Double zr(Complex q)
          This function computes the Rayleigh range for a given beam parameters.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_qx

public Complex _qx

_qy

public Complex _qy
Constructor Detail

GaussMode

public GaussMode()
Default constructor which sets dummy parameters for the Gaussian beam: lambda = 1064nm, wavelength of a Nd:YAG laser nr = 1, index of refraction of vacuum (or air) beam waist of w0=1mm at z0=0


GaussMode

public GaussMode(float lambda,
                 Complex q,
                 float nr)
Standard constructor that sets user defined beam parameters.

Parameters:
lambda - laser vacuum wavelength (in meters)
q - Gaussian beam parameters for x- and y-direction
nr - local index of refraction (typically nr=1)

GaussMode

public GaussMode(float lambda,
                 Complex qx,
                 Complex qy,
                 float nr)
Additional constructor that sets user defined beam parameters, now optionally different for x- and y-direction.

Parameters:
lambda - vacuum wavelength of laser (in meters)
qx - Gaussian beam parameter in x-direction (tangential plane)
qy - Gaussian beam parameter in y-direction (sagittal plane)
nr - local index of refraction (typically nr=1)

GaussMode

public GaussMode(float lambda,
                 float w0,
                 float z,
                 float nr)
Additional constructor that sets the beam parameters via beam waist radius and beam waist position.

Parameters:
lambda - vacuum wavelength of laser (in meters)
w0 - beam waist radius (in meters)
z - beam waist position (in meters)
nr - local index of refraction (typically n=1)

GaussMode

public GaussMode(float lambda,
                 float w0x,
                 float zx,
                 float w0y,
                 float zy,
                 float nr)
Additional constructor that sets the beam parameters via beam waist radius and beam waist position, now allowing different parameters in x- and y-direction.

Parameters:
lambda - vacuum wavelength of laser (in meters)
w0x - beam waist radius, x-direction (in meters)
w0y - beam waist radius, y-direction (in meters)
zx - beam waist position, x-direction (in meters)
zy - beam waist position, y-direction (in meters)
nr - local index of refraction (typically n=1)
Method Detail

get_lambda

public double get_lambda()
This function returns the vacuum wavelength of the laser.

Returns:
lambda, vacuum wavelength

get_nr

public double get_nr()
This function returns the local index of refraction

Returns:
nr, local index of refraction

get_qx

public Complex get_qx()
This function returns the Gaussian beam parameter q in x-direction (tangential plane)

Returns:
qx

get_qy

public Complex get_qy()
This function returns the Gaussian beam parameter q in y-direction (sagittal plane)

Returns:
qy

get_w0x

public double get_w0x()
This function returns the beam waist radius in x-direction (tangential plane)

Returns:
w0 in x-direction

get_w0y

public double get_w0y()
This function returns the beam waist radius in y-direction (sagittal plane)

Returns:
w0 in y-direction

get_wx

public double get_wx()
This function returns the beam radius in x-direction (tangential plane)

Returns:
w in x-direction

get_wy

public double get_wy()
This function returns the beam radius in y-direction (sagittal plane)

Returns:
w in y-direction

get_zx

public double get_zx()
This function returns the distance to the beam waist in x-direction (tangential plane)

Returns:
z-z0 in x-direction

get_zy

public double get_zy()
This function returns the distance to the beam waist in y-direction (sagittal plane)

Returns:
z-z0 in y-direction

get_zrx

public double get_zrx()
This function returns the Rayleigh range z_r in x-direction (tangential plane)

Returns:
zr in x-direction

get_zry

public double get_zry()
This function returns the Rayleigh range z_r in y-direction (sagittal plane)

Returns:
zr in y-direction

get_ROCx

public double get_ROCx()
This function returns the phase front radius of curvature in x-direction (tangential plane)

Returns:
ROC in x-direction

get_ROCy

public double get_ROCy()
This function returns the phase front radius of curvature in y-direction (sagittal plane)

Returns:
ROC in y-direction

get_Gouyx

public double get_Gouyx()
This function returns the Gouy phase Psi(z) in x-direction (tangential plane)

Returns:
Psi(z) in x-direction

get_Gouyy

public double get_Gouyy()
This function returns the Gouy phase Psi(z) in y-direction (sagittal plane)

Returns:
Psi(z) in y-direction

get_q0x

public Complex get_q0x()
This function Gaussian beam parametera at the waist q0 in x-direction (tangential plane)

Returns:
q0 in x-direction

get_q0y

public Complex get_q0y()
This function returns the Gaussian beam parameter at the waist q0 in y-direction (sagittal plane)

Returns:
q0 in y-direction

make_q

public static Complex make_q(double w0,
                             double z,
                             double lambda,
                             double nr)
This function computes a Gaussian beam parameters from user defined parameters for the beam waist (and wavelength, and index of refraction).

Parameters:
w0 - beam waist radius
z - distance to beam waist
lambda - vacuum wavelength of the laser
nr - local index of refraction
Returns:
Gaussian beam parameter q

w0_size

public java.lang.Double w0_size(Complex q)
This function computes the beam waist radius for a given beam parameters. This function takes the wavelength and index of refraction from its GaussMode onject!

Parameters:
q - Gaussian beam parameter
Returns:
beam waist radius w0

w0_size

public static java.lang.Double w0_size(Complex q,
                                       java.lang.Double lambda,
                                       java.lang.Double nr)
This function computes the beam waist radius for a given beam parameters.

Parameters:
q - Gaussian beam parameter
lambda - vacuum wavelength
nr - local index of refraction
Returns:
beam waist radius w0

w_size

public java.lang.Double w_size(Complex q)
This function computes the beam radius for a given beam parameters. This function takes the wavelength and index of refraction from its GaussMode onject!

Parameters:
q - Gaussian beam parameter
Returns:
beam radius w

w_size

public static java.lang.Double w_size(Complex q,
                                      java.lang.Double lambda,
                                      java.lang.Double nr)
This function computes the beam radius for a given beam parameters.

Parameters:
q - Gaussian beam parameter
lambda - vacuum wavelength
nr - local index of refraction
Returns:
beam radius w

ROC

public static java.lang.Double ROC(Complex q)
This function computes the phase front curvature for a given beam parameters.

Parameters:
q - Gaussian beam parameter
Returns:
radius of curvature ROC

Gouy

public static java.lang.Double Gouy(Complex q)
This function computes the Gouy for a given beam parameters.

Parameters:
q - Gaussian beam parameter
Returns:
Gouy phase Psi

q0

public static Complex q0(Complex q)
This function computes the beam parameter at the waist for a given beam parameters.

Parameters:
q - Gaussian beam parameter
Returns:
Gaussian beam parameter at waist q0

zr

public static java.lang.Double zr(Complex q)
This function computes the Rayleigh range for a given beam parameters.

Parameters:
q - Gaussian beam parameter
Returns:
Rayleigh range zr

u_nm

public Complex u_nm(int n,
                    int m,
                    double x,
                    double y)
This function returns the complex amplitude of a Hermite-Gaussian beam shape u_nm.

Parameters:
n - horizontal mode index
m - vertical mode index
x - position on x-xaxis (orthogonal to beam direction) in meters
y - position on y-xaxis (orthogonal to beam direction) in meters
Returns:
complex amplitude

u_nm_amp

public double u_nm_amp(int n,
                       int m,
                       double x,
                       double y)
This function returns the real amplitude only of a Hermite-Gaussian beam shape u_nm. This is not simply abs(u_nm) or real(u_nm) but the amplitude including the characteristic sign flips.

Parameters:
n - horizontal mode index
m - vertical mode index
x - position on x-xaxis (orthogonal to beam direction) in meters
y - position on y-xaxis (orthogonal to beam direction) in meters
Returns:
bipolar real amplitude
See Also:
u_nm

u_nm_phs

public double u_nm_phs(int n,
                       int m,
                       double x,
                       double y)
This function returns the phase of a Hermite-Gaussian beam shape u_nm, *without* the sign flips from the H polynomials!

Parameters:
n - horizontal mode index
m - vertical mode index
x - position on x-xaxis (orthogonal to beam direction) in meters
y - position on y-xaxis (orthogonal to beam direction) in meters
Returns:
phase
See Also:
u_nm

u_n_amp

public double u_n_amp(int n,
                      Complex q,
                      double x)
This function represents the one-dimensional part of u_nm_amp the amplitude of a u_nm Hermite-Gauss beam pattern.

Parameters:
n - mode index
q - Gaussian beam parameter
x - position on axis
Returns:
complex amplitude
See Also:
u_nm_amp

u_n_phs

public double u_n_phs(int n,
                      Complex q,
                      double x)
This function represents the one-dimensional part of u_nm_phs the phase of a u_nm Hermite-Gauss beam pattern.

Parameters:
n - mode index
q - Gaussian beam parameter
x - position on axis
Returns:
complex amplitude
See Also:
u_nm_phs

u_n

public Complex u_n(int n,
                   Complex q,
                   double x)
This function represents the one-dimensional part of a u_nm Hermite-Gauss beam patter,

Parameters:
n - mode index
q - Gaussian beam parameter
x - position on axis
Returns:
complex amplitude
See Also:
u_nm

u_pl_xy

public Complex u_pl_xy(int p,
                       int l,
                       double x,
                       double y)
This function returns the complex amplitude of a heical Laguerre-Gaussian beam shape u_pl. This is a wrapper for u_pl which uses cylindrical coordinates.

Parameters:
p - radial mode index
l - azimuthal mode index
x - position on x-xaxis (orthogonal to beam direction) in meters
y - position on y-xaxis (orthogonal to beam direction) in meters
Returns:
complex amplitude
See Also:
u_pl

u_pl

public Complex u_pl(int p,
                    int l,
                    double r,
                    double phi)
This function returns the complex amplitude of a helical Laguerre-Gaussian beam shape u_pl.

Parameters:
p - radial mode index
l - azimuthal mode index
r - radial position (orthogonal to beam direction) in meters
phi - azimuthal phase (orthogonal to beam direction) in radians
Returns:
complex amplitude

u_pl_amp_xy

public double u_pl_amp_xy(int p,
                          int l,
                          double x,
                          double y)
This function returns the real amplitude only of a heical Laguerre-Gaussian beam shape u_pl. This is a wrapper for u_pl_amp which uses cylindrical coordinates.

Parameters:
p - radial mode index
l - azimuthal mode index
x - position on x-xaxis (orthogonal to beam direction) in meters
y - position on y-xaxis (orthogonal to beam direction) in meters
Returns:
bipolar real amplitude
See Also:
u_pl_amp

u_pl_amp

public double u_pl_amp(int p,
                       int l,
                       double r,
                       double phi)
This function returns the real amplitude only of a helical Laguerre-Gaussian beam shape u_pl. This is not simply abs(u_pl) or real(u_pl) but the amplitude including the characteristic sign flips.

Parameters:
p - radial mode index
l - azimuthal mode index
r - radial position (orthogonal to beam direction) in meters
phi - azimuthal phase (orthogonal to beam direction) in radians
Returns:
bipolar real amplitude
See Also:
u_pl

u_lp_cos_xy

public Complex u_lp_cos_xy(int p,
                           int l,
                           double x,
                           double y)
This function returns the complex amplitude of a sinusoidal Laguerre-Gaussian beam shape u_pl. This is a wrapper function for u_pl_cos which uses cylindrical coordinates.

Parameters:
p - radial mode index
l - azimuthal mode index
x - position on x-xaxis (orthogonal to beam direction) in meters
y - position on y-xaxis (orthogonal to beam direction) in meters
Returns:
complex amplitude
See Also:
u_pl_cos

u_pl_cos

public Complex u_pl_cos(int p,
                        int l,
                        double r,
                        double phi)
This function returns the complex amplitude of a sinusoidal Laguerre-Gaussian beam shape u_pl.

Parameters:
p - radial mode index
l - azimuthal mode index
r - radial position (orthogonal to beam direction) in meters
phi - azimuthal phase (orthogonal to beam direction) in radians
Returns:
complex amplitude
See Also:
u_pl

u_pl_cos_amp_xy

public double u_pl_cos_amp_xy(int p,
                              int l,
                              double x,
                              double y)
This function returns the real amplitude only of a sinusoidal Laguerre-Gaussian beam shape u_pl. This is a wrapper for u_pl_cos_amp which uses cylindrical coordinates.

Parameters:
p - radial mode index
l - azimuthal mode index
x - position on x-xaxis (orthogonal to beam direction) in meters
y - position on y-xaxis (orthogonal to beam direction) in meters
Returns:
bipolar real amplitude
See Also:
u_pl_cos_amp

u_pl_cos_amp

public double u_pl_cos_amp(int p,
                           int l,
                           double r,
                           double phi)
This function returns the real amplitude only of a sinusoidal Laguerre-Gaussian beam shape u_pl. This is not simply abs(u_pl) or real(u_pl) but the amplitude including the characteristic sign flips.

Parameters:
p - radial mode index
l - azimuthal mode index
r - radial position (orthogonal to beam direction) in meters
phi - azimuthal phase (orthogonal to beam direction) in radians
Returns:
bipolar real amplitude
See Also:
u_pl_cos


processing library gwoptics by Daniel Brown and Andreas Freise. (c) 2009 onwards