Q216 : Behavior of HIFREQ in the presence of large impedances.
Question In HIFREQ, how can it be that, sometimes, the current flowing across a resistor doesn't satisfy V = R*I?
Answer This can occur only when the resistance is very large and is due to a numerical problem. When this happens, a discrepancy can sometimes be found between the voltage across the resistor calculated as the GPR difference between the conductors on either side of the resistor and that obtained through V = R I.
Usually, when this is the case, the condition number of the matrix is very large (about 10^13, or larger). When this happens, the results can be rather innaccurate. The program issues a warning about it: you should therefore scan your output file for the string WARNING to make sure that this condition does not occur when using large resistances. Unfortunately, it is quite hard to reduce this condition number.
Usually, the network branches that have large resistors carry very little current, even when the total current in the network is very large. This explains why the V = R I identity is not satisfied perfectly across the resistor in spite of being imposed mathematically in the software as a boundary condition: the overall solution is almost completely insensitive to the satisfaction of the boundary conditions across those branches.
The practical consequence of this is that in circumstances where a small current is obtained through cancellation of larger source currents (as is the case here), the smaller current (and everything related to it) can be rather innaccurate. This is something that can't really be fixed short of increasing the accuracy of the computations, with the accompanying increase in run-time.
This is not to say that the results cannot be trusted in any way: the boundary condition is satisfied to a good accuracy almost everywhere. However, results that are highly sensitive to deviations in the small currents could be strongly affected.