Examining components

After parsing a component, you can examine the values of the component parameters by using the finesse.element.ModelElement.info() method:

import finesse
from finesse.components import Laser

m = finesse.Model()
m.add(Laser("l1", P=1))
print(m.l1.info())
Laser l1

Parameters:
┌──────────────┬─────────────┐
│ Description  │ Value       │
╞══════════════╪═════════════╡
│ Power        │ 1.0 W       │
├──────────────┼─────────────┤
│ Phase        │ 0.0 degrees │
├──────────────┼─────────────┤
│ Frequency    │ 0.0 Hz      │
├──────────────┼─────────────┤
│ Signals only │ False       │
└──────────────┴─────────────┘

If you have defined a parameter value using a reference, this will be reflected in the info table:

import finesse
from finesse.components import Laser

m = finesse.Model()
m.add(Laser("l1", P=1))
m.add(Laser("l2", P=m.l1.P.ref))
print(m.l2.info())
Laser l2

Parameters:
┌──────────────┬─────────────┐
│ Description  │ Value       │
╞══════════════╪═════════════╡
│ Power        │ l1.P W      │
├──────────────┼─────────────┤
│ Phase        │ 0.0 degrees │
├──────────────┼─────────────┤
│ Frequency    │ 0.0 Hz      │
├──────────────┼─────────────┤
│ Signals only │ False       │
└──────────────┴─────────────┘

If you want to see the current numerical value for all the parameters, pass eval_refs=True:

import finesse
from finesse.components import Laser

m = finesse.Model()
m.add(Laser("l1", P=1))
m.add(Laser("l2", P=m.l1.P.ref))
print(m.l2.info(eval_refs=True))
Laser l2

Parameters:
┌──────────────┬─────────────┐
│ Description  │ Value       │
╞══════════════╪═════════════╡
│ Power        │ 1.0 W       │
├──────────────┼─────────────┤
│ Phase        │ 0.0 degrees │
├──────────────┼─────────────┤
│ Frequency    │ 0.0 Hz      │
├──────────────┼─────────────┤
│ Signals only │ False       │
└──────────────┴─────────────┘