|
STAR
Cal STAR — firmware, DAQ server, and engine design
|
Variables | |
| dict | BRANCH_KINDS |
| dict | LINE_KINDS |
Turning a drawing into a network.
The two graphs are not the same shape, and that is the whole problem this
module solves.
A **P&ID** puts hardware on symbols *and* on lines: a ball valve is a symbol, a
tube run is a line, and both resist flow. A **feed-twin network** puts pressures
on nodes and hardware on branches, exclusively. So the transform is not a
relabelling, it is a rewrite:
.. code-block:: text
P&ID network
---- -------
tank / K-bottle / dewar a fixed-pressure node
junction / manifold a free node
valve, regulator, check a BRANCH, with a node spliced either side
line between two symbols a branch
transducer, gauge, RTD nothing -- an observer on the node it clips to
text, section box nothing
The interesting case is the third. An inline symbol has to become a branch, so
the two lines that met at it are cut and its own node pair takes their place.
Get that wrong and a drawing with six valves solves as a drawing with none,
which converges beautifully and means nothing.
Instruments are deliberately *not* dead-end stubs here. Phase 04 can peel a
stub exactly, but a transducer is not plumbing at all -- it is a label on a
place. Making it a node would put a fictitious branch in every mass balance and
report an anomaly on every run.
| dict feedtwin.pid.network.BRANCH_KINDS |
Definition at line 59 of file network.py.
| dict feedtwin.pid.network.LINE_KINDS |
Definition at line 70 of file network.py.