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, solution_name=None, **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.

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_node : Node

Node to trace from.

to_node : Node

Node to trace to.

via_node : Node, optional

Optional node to trace via.

path : OpticalPath, optional

A pre-generated path to use.

q_in : BeamParam, 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.

direction : str, optional; default: “x”

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

symbolic : bool, optional; default: False

Flag determining whether to return a symbolic representation.

Returns

ps : PropagationSolution

A solution object for the propagation.