finesse.components.general.Connector

Overview

class finesse.components.general.Connector(name)[source]

Bases: ModelElement

Base class for any component which connects nodes together.

Internally it stores the nodes and the connections associated with the component. During the matrix build this class will then ensure that the matrix elements for each coupling requested are allocated and and the required matrix view for editing their values is retrieved.

The inheriting class should call _register_node and _register_coupling to define the connections it wants to use.

Parameters
namestr

Name of the new Connector instance.

Properties

Connector.all_internal_connections

A dictionary of all the connections this element is making between its nodes.

Connector.all_internal_optical_connections

A dictionary of all the optical connections this element is making between its nodes.

Connector.borrows_nodes

Whether this element borrows node references from another.

Connector.nodes

All the nodes of all the ports at this component.

Connector.optical_nodes

The optical nodes stored by the connector.

Connector.ports

Retrieves the ports available at the object.

Connector.signal_nodes

The signal nodes stored by the connector.

Methods

Connector.__init__(self, name)

Connector.ABCD(from_node, to_node[, ...])

Parameters

Connector.check_coupling(from_node, to_node)

Checks that a coupling exists between from_node -> to_node and raises a ValueError if not.

Connector.coupling_type(from_node, to_node)

Obtains the type of coupling (see CouplingType) between the two specified nodes at this component.

Connector.interaction_type(from_node, to_node)

Obtains the type of interaction (see InteractionType) between the two specified nodes at this component.

Connector.is_valid_coupling(from_node, to_node)

Flags whether the provided node coupling exists at this connector.

Connector.register_abcd_matrix(M_sym, *couplings)

Register an ABCD matrix of the given symbolic form for a sequence of coupling(s).