finesse.solutions.beamtrace.PropagationSolution.segment

PropagationSolution.segment(node, *args, normalise_z=True, w_scale=1, npts=400, subs=None)[source]

Obtain data for a segment of the beam over the space attached to the specified node.

The expected, valid positional args are any combination of:

  • “beamsize”,

  • “gouy”,

  • “curvature”,

where all three will be used by default if none of these are given.

Use PropagationSolution.all_segments() to obtain the beam data over all spaces of the solution.

Parameters

node : OpticalNode

The starting node of the segment.

normalise_z : bool, optional; default: True

Whether to normalise returned data["z"] array such that first value of this is zero.

w_scale : scalar, optional; default: 1

Quantity to scale beam size values by if calculating these. For example, specify w_scale = 1e3 to get beam sizes in mm. By default the units of the beam size will be in metres.

npts : int, optional; default: 400

Number of points to use for computing data values.

subs : dict, optional

A dictionary of model parameter to value substitutions to pass to the eval methods of symbolic expressions.

If this solution object is not symbolic then this argument is ignored.

Returns

zs : numpy.ndarray

Array of z-axis values corresponding to the position of the node up to the length of the attached space. If normalise_z is True then the position of node will be subtracted from all values, such that the first value in this array will be zero.

data : dict

Dictionary of data mapping args : values, where args are those specified (see above) and values are the arrays of values corresponding to each of these args as a function of the z-axis values.