(437b) A Flexible and Extensible Partial Differential Equation Assembly Kernel for Advanced Analysis Techniques
AIChE Annual Meeting
2009
2009 Annual Meeting
Computing and Systems Technology Division
Advances in Computational Methods and Numerical Analysis
Wednesday, November 11, 2009 - 3:35pm to 3:55pm
As partial differential equation (PDE) engines become more complex, developing a flexible, extensible, and efficient environment for users to program in becomes a challenge. One has to balance the ease of integration of new equation sets and material models with the requirements of the solution techniques and analysis capabilities and yet still achieve efficient runtimes. For example, invasive optimization, bifurcation analysis and even nonlinear solves with Newton's method require parameter sensitivities. Requiring users to write sensitivities of the equation sets/models for specific solvers can be difficult and error prone. Additionally, implementing an invasive uncertainty quantification algorithm will require pushing probability distributions through the equation sets and material models. Our goal is to decouple the physics implementation from the solution/analysis capabilities so that application users do not have to learn the advanced mathematics of the solvers and can concentrate on the physics.
This talk will describe a new paradigm for cell based PDE assembly kernels that allows for users to write their equations and models, with no knowledge of the underlying solver or analysis algorithms that will be employed. The design allows the solvers to very efficiently extract accurate information such as machine precision accurate derivatives by leveraging the C++ template mechanism and overloading the mathematical operators. Efficient computations are achieved by implementing expression templates for the overloaded operators and by blocking the cells into groups so that all fields required in the cell block assembly fit into cache. Additionally, the computations can leverage level three BLAS algorithms on the element block. By using template specialization on the evaluation type, one can implement a variety of solution and analysis algorithms such as Newton's method, sensitivity analysis, optimization, and uncertainty quantification while directly reusing the code describing the equation sets and material models.
The resulting tools form a lightweight toolkit comprised of the Sacado, Phalanx, and Intrepid packages that are available through the Trilinos open source software framework being developed by Sandia National Laboratories.
Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed Martin Company, for the United States Department of Energy's National Nuclear Security Administration under contract DE-AC04-94AL85000.