## Aztec's Primary Function

Aztec is a software library for use in iteratively solving large, sparse linear systems of equations, Ax = b, such as those which arise from applications which model complex physics problems using differential equations (e.g., finite-element or finite-difference methods). It is the result of over six years of research into robust, efficient and accurate algorithms for the solution of linear systems. Further, Aztec is an iterative library that greatly simplifies the parallelization process when solving the linear systems by providing tools for the parallel implementation of modeling applications who would use Aztec as their linear solver. Because of the complex nature of the physics and geometries found in real-world industrially relevant problems, accurate modeling of these applications requires robust solution algorithms such as those found in Aztec. Further, as the simulation is required to more accurately model nature, the size of these problems increases quickly. When we began work on Aztec, a large value of n was considered to be several hundred-thousand. Now, we are working on solving problems with several hundred-million unknowns (n ~ 10^8). This rapid advance in the size of problems engineers and scientists desire to model has come about mainly because of the availability of large, massively parallel (MP), supercomputers and the leading edge tools, such as Aztec, which allow people to effectively use them.

As stated, Aztec uses iterative methods for solving systems of equations as opposed to a direct methods which means that we begin with some guess for the solution and gradually improve this guess until some criteria of convergence has been achieved. Iterative methods are the solution strategy of choice on MP computers because of the manner in which they scale with the problem size and the fact that they rely on a small set of kernel algorithms which can be effectively implemented on these platforms. How one determines the ``update'' which improves the ``guess'' identifies the method or class of methods. Aztec utilizes techniques known as Krylov methods which are among the most robust iterative solution methods for linear systems. Aztec employs these techniques on matrices (A) which may have a completely unstructured sparsity pattern. This complicates the implementation greatly because we can no longer relay on any regularity pattern within our data structure for storing A. This may have an especially negative impact on performance but, through the use of novel data structures and algorithms, we have achieved outstanding performance on a variety of computer architectures.

Another aspect of iterative solvers is preconditioning. The idea is basically that we may be able to modify the original system of equations in a manner which will make the new system ``easier'' to solve. Making the new system easier to solve will manifest itself by improving the convergence properties of the preconditioned system. However, the total time required to achieve the preconditioned solution, including the time needed to solve modify the original system, must be less than that needed to solve the original system if the preconditioning is to be judged worthwhile. In practice, effective preconditioners are a must and often the only way to achieve solutions, period. Within Aztec we have implemented a suite of leading-edge preconditioning schemes which not only ensure the robustness of our solution algorithms but actually accelerate the solution convergence times.

These attributes - efficient iterative solvers, unique data structures and their implementation, robust preconditioners and ease of parallel implementation - combine to make Aztec a significant technological breakthrough in the arena of scientific computing. Aztec has allowed Sandia to solve scientific computing problems of importance to DOE and U.S. Industry which were previously unsolvable by any other means and helped to make MP computing the standard platform for large scale simulation and design codes. Further, we have provided this tool to industry who are now using it in their own scientific computing applications.

## Applications

There are a number of current state-of-the-art engineering and scientific simulation codes which rely on Aztec. All of these codes require robust and efficient solution methods to solve challenging problems that are tractable only on large MP machines. The earliest and most publicized application code using Aztec is the chemically reacting flow code MPSalsa developed at Sandia National Laboratories. MPSalsa is a leading-edge simulation code which has been designed to analyze and optimize the operation and design of chemical vapor deposition (CVD) reactors for growing thin semiconductor films. CVD is a backbone process in the over \$60 Billion semiconductor industry. The Aztec library forms a critical kernel of the MPSalsa solution strategy. Using the MP iterative solvers from Aztec, MPSalsa has been able to produce a significant decrease in execution time for simulation of CVD reactors. This decrease in turnaround time has enabled MPSalsa researchers to use computational CVD simulations to produce an optimal design for an actual prototype CVD reactor.

Other principle applications that use Aztec include an electromagnetics simulation code (EMMA), used for defense calculations, as well as a free surface -- moving mesh, incompressible flow code (GOMA). This code is used by Sandia and five members of a national consortium to model important film coating and injection mold filling manufacturing problems. It is also a key kernel to a continuum plasma modeling code under development at Sandia which will have a wide variety of defense and industrial applications.

As described earlier there have been over 35 external research and test-and-evaluation licenses executed for Aztec. In addition there are a number of governmental laboratories and establishments that have obtained the rights to use Aztec. Further, there are now several companies that are interested in obtaining commercial licenses for Aztec. A brief list of uses includes ground water flow with toxic waste transport modeling, heat transfer modeling for manufacturing process, nuclear material non-proliferation studies, cardiac defibrillation simulations, compressible flow calculations for hyper-sonic vehicles, automotive tire manufacturing design calculations, fire simulations, etc.

Aztec, by its very nature as an iterative solver library, has a nearly limitless set of potential application and uses. As described above Aztec has been designed as a general library for unstructured sparse-matrix problems produced from popular approximation methods such as finite-element and finite-difference methods. These approximation methods are widely used in many universities, industrial research centers, government laboratories and industrial design centers. The fields of potential applications that use such methods range from industrial manufacturing design, chemical process simulation, automotive and aircraft design, architectural design, weather prediction and climate modeling, biomedical engineering, geophysical and astrophysical simulations, petroleum engineering, basic scientific research, etc. Since the Aztec library provides source code to the licensing parties these customers can modify Aztec as they require and so there is really no limit to the potential uses for such a flexible tool. This is precisely the reason that DOE and Sandia has put considerable investment into theAztec library - it has and will continue to make a significant impact on leading-edge engineering and scientific modeling.

 Back to Aztec Home Last Updated: 19 August 1997 WWW Administration (www-admin@www.cs.sandia.gov) Michael A. Heroux (mheroux at cs.sandia.gov)