finesse.utilities.components.names_to_nodes¶
- finesse.utilities.components.names_to_nodes(model, names, default_hints=())[source]¶
- Attempts to convert a list of node/dof/ports into nodes. This is to provide a way for actions to convert string names into nodes for simulation use. It attempts to provide useful default behaviours, and can accept “hints” on how to select nodes. - Parameters:
- namesiterable[str|(str, iterable[str])]
- A collection of names to convert. A (name, hint) pair can also be provided where hint is an iterable of strings. 
- default_hintsiterable[str]
- Default hint to use with particular set of names if no hints are provided. 
 
 - Notes - Posible hints when name is a Port or DOF: - input : try and select a singular input node - output : try and select a singular output node - Examples - Selecting various nodes from a model with and without hinting: - >>> import finesse >>> from finesse.utilities.components import names_to_nodes >>> model = finesse.Model() >>> model.parse(''' ... l l1 P=100k ... mod mod1 f=10M midx=0.1 order=1 mod_type=pm ... m m1 R=1-m1.T T=0.014 Rc=-1984 xbeta=0n ... m m2 R=1 T=0 Rc=2245 xbeta=0n phi=0 ... link(l1, mod1, m1, 3994, m2) ... dof DARM m1.dofs.z -1 m2.dofs.z +1 ... ''') >>> names_to_nodes(model, ('m1.p1', 'DARM.AC'), default_hints=('output')) [<OpticalNode m1.p1.o @ 0x7f92c9a5c880>, <SignalNode DARM.AC.o @ 0x7f92c9a0e5b0>] >>> names_to_nodes(model, ('m1.p1', 'DARM.AC'), default_hints=('input')) [<OpticalNode m1.p1.i @ 0x7f92c9a5ca60>, <SignalNode DARM.AC.i @ 0x7f92c9a0e460>] >>> names_to_nodes(model, ('m1.p1.o', 'DARM.AC.i')) [<OpticalNode m1.p1.o @ 0x7f92c9a5c880>, <SignalNode DARM.AC.i @ 0x7f92c9a0e460>] - Hints do not insist on a particular output. For example, this is valid: - >>> names_to_nodes(model, ('m1.p1.o', ('DARM.AC.o', "input")))