Systems and methods for solving finite element models, wherein the matrix
that governs the solution is modified by adjusting the weighting coefficients of
the matrix so that the elements which lie on the diagonal of the matrix are non-negative
and the elements which are off the diagonal are non-positive. In one embodiment,
a system is discretized on a finite element mesh with the contribution of each
node to the discretization being weighted based upon the direction of fluid flow
across each element. The nodes which are upstream from the other nodes of the respective
elements are weighted more heavily to cause the resulting matrix to be substantially
diagonal. This matrix is solved using traditional techniques.