finesse.tracing.tools.propagate_beam

finesse.tracing.tools.propagate_beam(from_node=None, to_node=None, via_node=None, path=None, q_in=None, direction='x', symbolic=False, simplify=False, solution_name=None, reverse_propagate=False, **kwargs)[source]

Propagates a beam through a specified path, returning dictionaries of the beam parameter at each node and component.

This method returns a PropagationSolution instance.

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

By setting the argument symbolic to true, this method will return symbolic representations of the beam parameters, ABCD matrices and accumulated Gouy phases. Specific symbols can be kept by passing a list of symbol names to symbolic instead of a True or False flag. Any symbol names not provided will use their current evaluated value. The simplify flag when True will try to apply symbolic simplification to the beam propagation. For long propagations through many components using many symbols, this will be slow and might be faster not using any simplification.

The argument q_in can be used to specify an arbitrary input beam parameter to be used at the starting node of the propagation. If not given then this will be determined from a call to Model.beam_trace(). Arguments to this beam trace call can be passed via the kwargs of this method.

Parameters
from_nodeOpticalNode

Node to trace from.

to_nodeOpticalNode

Node to trace to.

via_nodeOpticalNode, optional

Optional node to trace via.

pathOpticalPath, optional

A pre-generated path to use.

q_inBeamParam, complex, optional

Beam parameter to use at starting node. If not specified then this will be determined from a beam trace. Note that, if specified, this can also be a symbolic beam parameter.

directionstr, optional; default: “x”

Plane of computation (can be ‘x’, ‘y’ or None).

symbolicbool, tuple(Parameters), optional; default: False

If False a numerical ABCD propagation is computed. If True, a symbolic ABCD propagation is calculated instead. A tuple of parameters can also be provided, in this case these parameters will be kept symbolic

simplifybool, optional

When True, symbolic simplication will be attempted. When using many symbols and large propagation paths this will significantly increase computational time.

reverse_propagatebool, optional

When True, the beam will be propagated in the reverse of the optical path found. This allows beams to be traced backwards through components like directional beamsplitters.

Returns
psPropagationSolution

A solution object for the propagation.