Physics Stack Exchange is a question and answer site for active researchers, academics and students of physics. It's 100% free.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm trying to simulate the light distribution characteristics from a Gaussian laser beam, but having difficulty with the angular distribution.

I need to generate a large number of points on an x/y plane, along with pointing vectors down the z-axis, such that their aggregate approximates the power distribution of a laser beam. The distribution on the x/y plane is a Gaussian, while the pointing vector down the z-axis approximates the laser divergence.

For example, a beam with a 1 mm beam waist with a 1.5 mrad divergence has the following beam irradiance, E(r):

$E(r) = exp(-r^2/b^2)/(\pi b^2)$

where $r$ is the radius from the beam center, $b$ is the beam waist (1/e radius). Therefore, I can sample from this distribution by the following equation:

$r = b\sqrt(-ln(1-\mathbb{R}))$

where $\mathbb{R}$ is a random number uniformly distribution on [0,1], to get the radius from the origin on the beams starting point on the x/y plane.

OK, so the question I'm having trouble with, is how do I randomly choose the polar angle $\theta$ of divergence such that it approximates the laser divergence of 1.5 mradians? Do I just choose the polar angle to be uniform on $[0,1.5e^{-3}]$ radians?

I guess I'm getting confused by whether the distribution should be uniform over polar angle, or uniform irradiance over the solid angle, and how to sample from that. Below is an illustration to help sort things out. I'm trying to determine how to distribute the polar angle in order to approximate the laser divergence.

enter image description here

share|cite|improve this question
up vote 1 down vote accepted

This process is treated in this paper:

The relevant equations are:





These give the x and y positions of rays at the beam waist ($x_f$) and at a point far away ($x_s$), with d much greater than the Rayleigh range. $w(z)$ is the standard gaussian beam waist formula, and the $r_i$ are uniform random variates on (0,1).

EDIT: Realized I didn't really address your divergence issue. The above is valid for a collimated diffraction limited beam, so to add excess divergence you could apply the ABCD matrix for a thin lens to the rays in order to create a diverging beam.

share|cite|improve this answer
Thanks for the added clarification. I just read through the paper and it doesn't seem obvious how to get an angular divergence from the equations for position. In other words, I want to create a group of x,y points with angles, not a group of x/y points on the receiver plane. – gallamine Oct 31 '11 at 13:59
@gallamine - just get the x/y points at the focal plane, then use the x/y points for those rays at the farfield plane to calculate the angles. – user2963 Oct 31 '11 at 14:05
@gallamine you can use the equations on this page for the conversion (r is the vector (x_f, x_f, 0) - (x_s, y_s, -d) ): – user2963 Oct 31 '11 at 14:12
thanks. The only difficulty is that those equations only apply to distances >> Rayleigh range, and I'm working at shorter distances. I'm thinking now I'll use a Gaussian distribution on the start plane, with perfect colimation then use the Thin Lens ray transfer matrix to diverge them. Make sense? I'll try and post an answer. – gallamine Oct 31 '11 at 15:21
@gallamine - While reading the appendix, I noticed that they actually give an expression there which can be used to calculate a divergent beam, you just need to convert your divergence angle to an M-squared parameter. (If you need info on that, read here: – user2963 Oct 31 '11 at 16:06

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.