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
, optionalOptional node to trace via.
path :
OpticalPath
, optionalA pre-generated path to use.
q_in :
BeamParam
, complex, optionalBeam 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.