Question: In the Thermal Power Library from Modelon, there are two kinds of connectors: flow connector and volume connector.
Based on the tutorial shipped with the library, these two kinds of connectors should NOT be connected with the same kind of connector.
But I checked their code, it seems the codes are the same. 
I checked the code in the ThermoSysPro library from EDF and ThermoPower library, too. They also use two kinds of connectors, and the recommendation of connecting principle is also the same.
So I read the code of “MixVolume” and “SteamTurbineStodola”, which include volume connectors and flow connectors respectively, but I am not sure the difference between these two kinds of connectors.
My question is :
Could someone tell me the philosophy of using such two kinds of connectors in thermo-hydraulic systems, and in the code of every component, how should I deal with them so they work like they’re designed for.

[![enter image description here](https://i.stack.imgur.com/AuVcM.jpg)](https://i.stack.imgur.com/AuVcM.jpg)
[![enter image description here](https://i.stack.imgur.com/nkP4k.png)](https://i.stack.imgur.com/nkP4k.png)
[![enter image description here](https://i.stack.imgur.com/7sjdn.png)](https://i.stack.imgur.com/7sjdn.png)
[![enter image description here](https://i.stack.imgur.com/ViAxu.jpg)](https://i.stack.imgur.com/ViAxu.jpg)
[![test](https://i.stack.imgur.com/tjLgR.jpg)](https://i.stack.imgur.com/tjLgR.jpg)

Answer: 
Here is a very short and simplified explanation applying to thermo-hydraulic systems.

In `flow models` (pipes, valves etc.) enthalpy is unchanged and mass flow/pressure drop are related with a static equation.

In `volume models` pressure and enthalpy are dynamic state variables, that is, mass and energy conservation is "elastic".

As a rule of thumb, you should build thermo-hydraulic system models of alternating flow and volume models (in a *staggered grid scheme*) to decouple nonlinear systems. 

For the dynamic pipe model in the top figure in your post the connectors merely indicate that, internally, the pipe model begins with a volume model and ends with a flow model.

Claytex has a nice blog post on the subject here <https://www.claytex.com/blog/how-to-avoid-computationally-expensive-fluid-networks-in-dymola/>

Also the authors of the Modelica Buildings Library have done a great effort explaining this in various papers. See e.g. <https://buildings.lbl.gov/publications/simulation-speed-analysis-and>
These kind of connectors are indeed the same due to modelica language specification. You can only connect two connectors that are *interchangeable*, that have the exact same amount and type of flow and potential variables. At every node all flows have to sum up to zero and all potentials have to be the same, therefore they have to be type consistent.

The difference is just information wise for the modeler or someone trying to understand the model and all components have been designed with such a thing in mind. It is easiest to understand with electrical components, where you have positive and negative pins which indicate in which direction the current should flow, but this is actually never really forced. Positive and negative pins are, ignoring their name, identical.

Although i don't know the connectors you are talking about i would assume that the `VolumePort` is a connector of something that has a volume and passes that information, whereas `FlowPort` passes the information about the mass flow rate. Usually a pipe i guess (?). Broken down to abstract dae theory one could say the names indicate if the *potential* or the *flow* variable are considered unknown for the component.

I have to emphasize that these are only indicators and that it is never actually forced by the model or the compiler. It is just how it should logically resolve in the end if you respect these restrictions of only connecting `VolumePort`to `FlowPort` connectors.