NEC-LIST: Sparse factorization code?

From: D. B. Miron <dbmiron_at_email.domain.hidden>
Date: Wed, 24 Mar 1999 07:35:34 -0600

Good day,

    Earlier this week I read "A Sparse Iterative Method for Method of
Moments Calculations" by Fourie et. al., in the current ACES Journal.
I found their ideas and results quite exciting, especially since I am
wrestling with large matrix factoring times in my own code.

    In their approach the Z matrix is constructed as two matrices, one
sparse S, and one dense D, Z=S+D. The MoM equation is then (S+D)I=V.
If Si=inv(S), this is equivalent to looking for an I such that
I=Si(V-DI). (By the way, this implies that their eq. (12) should b
V_k+1=V-E_k.) I have developed a code for a wire and dielectric body
structure which is electrically small, contrary to their application
to electrically large bodies. Nevertheless, I have tried out the
basic splitting and iteration method and it works even better (fewer
iterations) than their results. In order to do this with a minimum of
recoding, I sorted my Z matrix after it is filled into S and D
matrices. Since we are dealing with complex quantities, Z=Zr+jZi, and
Z has been normalized so that all diagonal elements have magnitude 1.
Then I find the largest diagonal real part and the largest diagonal
imaginary part, and multiply them by a sort criterion number
(e.g. .01). If both Zr(j,k) and Zi(j,k) are less than the respective
levels, they go to Dr(j,k) and Di(j,k), else they go to S. Using a
sort level of 0.01 and a convergence tolerance of 0.001, I got
convergence of a 1400 unknown case in 7 steps. This is good enough to
give the same input impedance to 4 figures as direct factorization.

    I would appreciate a more basic reference for the authors' sparse
factorization code, such as a journal or text. Is the Berkeley code
readily availbable and written in C++?

Douglas B. Miron
Received on Wed Mar 24 1999 - 14:40:33 EST

This archive was generated by hypermail 2.2.0 : Sat Oct 02 2010 - 00:10:39 EDT