Algorithm
The system check takes a simulation model as input and produces zero or more violations based on a number or rules.
High level
The System check takes an simuliation model as input and produces a systemCheckResult which is in essence a number of violations.
Some violations are structural, meaning the graph is too “damaged“ to do further calculations. Eg. in this diagram the algorithm exits early after finding incorrectly oriented base circuits. The pump in series in the bottom circuit are not detected, the user is expected to fix the structured problems first.
SystemCheckModel
The SystemCheckModel is an intermediate representation of the minimal information we need to detect violations. It starts from the FpHydronicCircuit and throws away all irrelevant pieces such as pipes and symmetrical bcs. Those can not be connected incorrectly anyway.
This diagram shows correlation between a simulationModel and corresponding structures in the FpHydronicCircuit.
Important detail, an FPGate is also an FpHydronicNode and will used in that way when creating equivalance relations
From that FpHydronicCircuit we create the SystemCheckModel.