As part of a research project studying
I developed a small software package for manipulation and (approximate) inversion
of block linear systems. The motivation and requirements were for Teko to be
a library suitable for rapid prototyping of new block preconditioner, but also
capable of an efficient implementation.
The rapid prototyping requirement suggestested a natural MATLAB like interface.
This motivated the choice of Thyra as an
abstraction layer for block manipulation and the implicit construction of linear
operators. Another layer of abstraction is provided through the
This permits access to the full range of solvers and preconditioners in Trilinos
for (approximate) inversion of sub block matrices.
Several block preconditioners are included in the Teko package. These include
general block Gauss-Seidel, block Jacobi and block LU factorization. Additionally
preconditioners for Navier-Stokes, such as SIMPLE(C), LSC and PCD, are included
in Teko. Also provided in Teko is an interface for fully specifying these preconditioners
at runtime through the use of XML file. This allows the user to specify complex
composite preconditioners using a human readable interface.
In the summer of 2002 while an intern under the guidance of A. Giunta at
Sandia National Laboratories, I
participated in the initial development of this software used for surface
fitting methods. Since then a number of other developers have improved upon
the initial design and added more functionality. In 2006 the software was
presented at a conference along with a paper.
Currently it is utilized within Sandia's DAKOTA software package.
CAEFF FEM Software
Collaborated with E. Duffy and J.B. von Oehsen in the Spring and summer of 2003 on
(very) early software design of the FEM portion of the code. This was my first
introduction to both finite element software development and generic programming.