# Modelica: Naming convention: Why does the OnePort family of electrical components have 2 Pins? Where is the "one port"?

This one can be confusing at first glance, especially if you are also working with Systems Modeling Language (SysML®) and SysML Extension for Physical Interaction and Signal Flow Simulation (SysPhS) where each Modelica Pin is represented by a SysML Port. Also, in microcontroller terminology, Port is often used as a functional description for behaviour controlled by connection to potentially multiple physical Pins.

Here's a typical definition of the Modelica OnePort from Wolfram SystemModeler:

partial model OnePort "Component with two electrical pins p and n and current i from p to n"
SI.Voltage v "Voltage drop of the two pins (= p.v - n.v)";
SI.Current i "Current flowing from pin p to pin n";
PositivePin p "Positive electrical pin";
NegativePin n "Negative electrical pin";
equation
v = p.v - n.v;
0 = p.i + n.i;
i = p.i;
end OnePort;
Where:

connector PositivePin "Positive pin of an electrical component"
SI.ElectricPotential v "Potential at the pin";
flow SI.Current i "Current flowing into the pin";
end PositivePin;
connector NegativePin "Negative pin of an electrical component"
SI.ElectricPotential v "Potential at the pin";
flow SI.Current i "Current flowing into the pin";
end NegativePin;
Apart from PositivePin and NegativePin offering the opportunity to carry distinctive icons, there is nothing intrinsically "positive" and "negative" about them, that is just imposed by signs used in equations in a usage context, such as here for "voltage drop":

v = p.v - n.v;
The counting of "Ports" as used above is related to the number of current balancing equations:

0 = p.i + n.i;
Thus the simpler Modelica TwoPin has no "Ports":

partial model TwoPin "Component with two electrical pins"
SI.Voltage v "Voltage drop of the two pins (= p.v - n.v)";
PositivePin p "Positive electrical pin";
NegativePin n "Negative electrical pin";
equation
v = p.v - n.v;
end TwoPin;
And the Modelica TwoPorts has 2 current balancing equations:

partial model TwoPort "Component with two electrical ports, including current"
SI.Voltage v1 "Voltage drop of port 1 (= p1.v - n1.v)";
SI.Voltage v2 "Voltage drop of port 2 (= p2.v - n2.v)";
SI.Current i1 "Current flowing from pos. to neg. pin of port 1";
SI.Current i2 "Current flowing from pos. to neg. pin of port 2";
PositivePin p1 "Positive electrical pin of port 1";
NegativePin n1 "Negative electrical pin of port 1";
PositivePin p2 "Positive electrical pin of port 2";
NegativePin n2 "Negative electrical pin of port 2";
equation
v1 = p1.v - n1.v;
v2 = p2.v - n2.v;
0 = p1.i + n1.i;
0 = p2.i + n2.i;
i1 = p1.i;
i2 = p2.i;
end TwoPort;

The use of the name "OnePort" above is at odds with the concept of "physical port" referenced here https://en.wikipedia.org/wiki/Modelica:

Connectors describing physical interaction The interaction of a component to other components is defined by physical ports, called connectors, e.g., an electrical pin is defined as:

connector Pin "Electrical pin"
Voltage      v "Potential at the pin";
flow Current i "Current flowing into the component";
end Pin;
When drawing connection lines between ports, the meaning is that corresponding connector variables without the "flow" prefix are identical (here: "v") and that corresponding connector variables with the "flow" prefix (here: "i") are defined by a zero-sum equation (the sum of all corresponding "flow" variables is zero). The motivation is to automatically fulfill the relevant balance equations at the infinitesimally small connection point.
Relates to