However, it may be useful to write models in their causal form, as the computational causality information may offer additional insight into the system.
Since bonds carry two physical variables, we need to generate two equations to compute their values. It turns out that, in every case, one of the two variables is computed at each end of the bond. We can denote the side, where the flow variable is computed, by marking it with a vertical stroke, the so-called causality stroke.
To this end, the bond graph library offers two additional types of bonds:
In this case, the equations can be read out of the bond graph in their causal forms:
B1.e = B2.e
B3.e = B2.e
B2.f = B1.f - B3.f
for the 0-junction, and:
B4.f = B5.f
B6.f = B5.f
B5.e = B4.e - B6.e
for the 1-junction, respectively. Since the 0-junction has only one flow equation, there must be exactly one causality stroke at the junction. Similarly, since the 1-junction has only one effort equation, there must be exactly one causality stroke away from the junction.
Causal and a-causal bonds can be arbitrarily mixed. We recommend to use causal bonds as much as possible.