If you write the equations describing the flows in a mass-conserving system, you can end up with a symmetric diagonally-dominant system.
As you might expect, there's a physical interpretation.
Diagonal dominance basically means that the diagonal entry of each row of the matrix is at least as big (in magnitude) as the sum of the off-diagonal entries.
Suppose the diagonal entry gives the rate of change of flow (say of a fluid, or of electric charge) into some physical location as you change some other property of that location (like its pressure, or voltage). Then the off-diagonals in the same column reflect the rates of change of flows to other locations as you change its pressure. And the off-diagonals on the same row reflect the rates of change of flows out of that location as you change the pressures in other locations.
If the flows are driven by pressure or voltage differences-- which is often the case, especially when you've linearized the system mathematically-- you get symmetry (because adding 1 volt to node A has the same effect on the A-to-B flow as subtracting 1 volt from node B).
If the system conserves mass (or electric charge or whatever), then the diagonals must at least add up to off-diagonals (in magnitude).
So then all you need is a connection to an outside node of known pressure or voltage (like ground), that doesn't change and hence doesn't contribute to the off-diagonals. That kicks one node over into having a diagonal entry greater than its off-diagonals, and then you have a nonsingular matrix and you can apply the algorithm.
Disclaimer-- it's been a while since I worked on this, so I probably messed up at least one of the directions or row-wise vs. column-wise relationships.
Comments
If you write the equations describing the flows in a mass-conserving system, you can end up with a symmetric diagonally-dominant system.
As you might expect, there's a physical interpretation.
Diagonal dominance basically means that the diagonal entry of each row of the matrix is at least as big (in magnitude) as the sum of the off-diagonal entries.
Suppose the diagonal entry gives the rate of change of flow (say of a fluid, or of electric charge) into some physical location as you change some other property of that location (like its pressure, or voltage). Then the off-diagonals in the same column reflect the rates of change of flows to other locations as you change its pressure. And the off-diagonals on the same row reflect the rates of change of flows out of that location as you change the pressures in other locations.
If the flows are driven by pressure or voltage differences-- which is often the case, especially when you've linearized the system mathematically-- you get symmetry (because adding 1 volt to node A has the same effect on the A-to-B flow as subtracting 1 volt from node B).
If the system conserves mass (or electric charge or whatever), then the diagonals must at least add up to off-diagonals (in magnitude).
So then all you need is a connection to an outside node of known pressure or voltage (like ground), that doesn't change and hence doesn't contribute to the off-diagonals. That kicks one node over into having a diagonal entry greater than its off-diagonals, and then you have a nonsingular matrix and you can apply the algorithm.
Disclaimer-- it's been a while since I worked on this, so I probably messed up at least one of the directions or row-wise vs. column-wise relationships.
And it's also worth saying that diagonal dominance is a stronger property than positive definiteness. That is, something can easily be PD but not DD.