finesse.solutions.beamtrace.PropagationSolution

Overview

class finesse.solutions.beamtrace.PropagationSolution(name, node_info, comp_info, symbolic)[source]

Bases: BaseSolution

Solution representation of a call to propagate_beam().

This class contains useful attributes and methods for accessing properties of the beam that was propagated through the path specified by the above function call. If this propagation call was symbolic then each property returned from this class will also be symbolic - evaluate these using the eval method of the symbolic expression.

Note that PropagationSolution objects are returned via propagate_beam() (or Model.propagate_beam()), they should never need to be created manually.

See Beam propagation for details and examples on using this class.

Properties

PropagationSolution.beamsizes

Dictionary of node to beam size mappings.

PropagationSolution.components

A list of all components (excluding spaces) traversed, in order.

PropagationSolution.end_node

The final node of the propagation.

PropagationSolution.full_ABCD

The full, composite ABCD matrix from the start to the end of the path.

PropagationSolution.nodes

A list of all the nodes traversed, in order.

PropagationSolution.optical_path_length

The optical path length of the traversed path.

PropagationSolution.path_length

The geometric path length of the traversed path.

PropagationSolution.ports

A list of all the ports traversed, in order.

PropagationSolution.positions

A dictionary of the Connector instances to their positions (relative to the start node).

PropagationSolution.qs

Dictionary of node to beam parameter mappings.

PropagationSolution.spaces

A list of all spaces traversed, in order.

PropagationSolution.start_node

The starting node of the propagation.

PropagationSolution.symbolic

Whether the propagation solution is symbolic.

PropagationSolution.waistpositions

Dictionary of node to waist position (as measured from node) mappings.

PropagationSolution.ws

Identical to PropagationSolution.beamsizes

PropagationSolution.z0s

Identical to PropagationSolution.waistpositions

Methods

PropagationSolution.__init__(name, ...)

PropagationSolution.abcd([up_to])

Composite ABCD matrix up to a specific point in the path.

PropagationSolution.acc_gouy(*args)

Accumulated Gouy phase over a sequence of spaces.

PropagationSolution.acc_gouy_up_to(point)

Accumulated Gouy phase up to a point in the traversed path.

PropagationSolution.all_segments(*args[, ...])

Construct a dictionary containing beam data for all segments of the solution.

PropagationSolution.animate(subs, *args[, ...])

Animate any combination of the beam sizes, accumulated Gouy phases and / or wavefront curvatures over the propagated path using the substitution parameters in subs.

PropagationSolution.animate_acc_gouy(subs, ...)

Animate the accumulated Gouy phases over the propagated path.

PropagationSolution.animate_beamsizes(subs, ...)

Animate the beam sizes over the propagated path.

PropagationSolution.animate_curvatures(subs, ...)

Animate the wavefront curvatures over the propagated path.

PropagationSolution.beamsize(at)

Beam radius at a given location of the path.

PropagationSolution.compute_distances_matrix([...])

Compute the distances between each optic, relative to each other.

PropagationSolution.distances_matrix_table([...])

Returns the distances between each optic, relative to each other, in a table.

PropagationSolution.plot(*args[, filename, ...])

Plot any combination of the beam sizes, accumulated Gouy phases and / or wavefront curvatures over the propagated path.

PropagationSolution.plot_acc_gouy(**kwargs)

Plot the accumulated Gouy phases over the propagated path.

PropagationSolution.plot_beamsizes(**kwargs)

Plot the beam sizes over the propagated path.

PropagationSolution.plot_curvatures(**kwargs)

Plot the wavefront curvatures over the propagated path.

PropagationSolution.position(point[, ptype])

Gets the position of the specified point relative to the start node.

PropagationSolution.print([subs, numfmt])

Print the propagated beam properties at each node in a table format.

PropagationSolution.q(at)

Beam parameter at a given node of the path.

PropagationSolution.segment(node, *args[, ...])

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

PropagationSolution.table([subs, numfmt])

Construct a table showing the beam properties at each node.

PropagationSolution.w(at)

Identical to PropagationSolution.beamsize().

PropagationSolution.w0(at)

Identical to PropagationSolution.waistsize().

PropagationSolution.waistpos(from_point)

Waist position as measured at from_point.

PropagationSolution.waistsize(at)

Waist radius as measured from a given location of the path.

PropagationSolution.z0(from_point)

Identical to PropagationSolution.waistpos().