#raggedright423#
We had developed a parallel code to solve computational electromagnetic
problems. Computational electromagnetics is widely used in industrial,
research, and defense applications. However, many important problems are
intractable with conventional techniques and vector supercomputers. For
practical applications, the problem size must be dramatically increased,
turnaround time must be reduced, and solution accuracy must be improved. A
promising approach for overcoming these limitations is the use of integral
equation methods (IEMs) implemented on massively parallel computers.
Integral methods offer several advantages over traditional finite-element
techniques. Integral methods require no discretization of the nonactive
regions, thus saving considerable time. Integral methods also take into
account far-field boundary conditions automatically. In addition, integral
methods remove the need for keeping track of which elements are moving or
stationary.
However, integral equation methods give rise to dense matrices for which the
solution time with direct methods scales as #tex2html_wrap_inline456# and the memory
requirements scale as #tex2html_wrap_inline458#, where n is the number of degrees of freedom
in the integral equation formulation. In addition, IEMs have a matrix
definition time that scales as #tex2html_wrap_inline462# and can be significant. Historically,
this has meant that in practice IEMs have either taken too much computation
time compared with finite-element programs to achieve the same level of
accuracy, or have not used enough elements to obtain accurate solutions. It
is our feeling, however, that the advent of parallel processing computers
will lead to
renewed interest in IEMs for computational electromagnetic problems.
CORAL is a program that has been used to solve nonlinear three-dimensional
magnetostatics problems using integral equation methods. The sequential
version of CORAL uses LU decomposition (Crout's algorithm) with back
substitution to solve the linear systems that
arise each nonlinear iteration.
We have developed a parallel version of CORAL. The two key steps that we have
parallelized are the matrix generation and the linear equation solver. We used
the <#177#> Chameleon<#177#> message-passing system, developed at Argonne, for the
message-passing parts of the program. The systems of linear equations were
solved using the parallel iterative methods in the Parallel Simplified Linear
Equation Solvers package (<#178#> PSLES<#178#>), which provides easy access to
state-of-art methods for solving systems of linear equations (see Section
#secpetsc#179>). All of the
results reported here were calculated using the Generalized Minimal Residual
method with block diagonal preconditioning.
Preliminary timings on the IBM SP1 are shown in Table~#coral#180>. This
table shows solution time in seconds as a function of the number of processors
for four different problems. The first column is the number of processors
used. The other columns report total solution time (seconds) as a function of
the number of processors used for solving four different nonlinear problems
with matrices of order 579, 972, 1629, and 2278, respectively. These runs
were made using an <#181#> unoptimized<#181#> version of the program and running the
EUIH message-passing software with the high-performance switch.
#table182#
Table: Solution time for four problems