Multiphysics simulation is plagued by complexity stemming from nonlinearly coupled systems of PDEs. Such software often must support many physics models, each of which may require different discretizations, transport equations, constitutive models, and equations of state. Additionally, the use of sophisticated solution and analysis algorithms may impose a burden on users that wish to extend the physics models. Strong coupling, together with a multiplicity of models, often leads to complex algorithms and rigid software.
This talk will discuss a new paradigm where the focus is shifted from the high level algorithmic design to a low level data dependency design. Mathematical expressions are represented as objects in software that directly expose data dependencies. The entire system of expressions are represented as a directed acyclic graph and the high-level assembly algorithm is generated automatically through standard graph theory algorithms. This approach allows problems with very complex dependencies to become entirely tractable, and removes virtually all logic from the algorithm itself. Changes are highly localized, allowing model developers to implement code without requiring a detailed understanding of the algorithms. By leveraging embedded technology, applications can probe the expressions to generate auxiliary data including machine precision accurate sensitivities for solution algorithms. The localized design allows for a number of levels of optimization for large-scale parallel computers utilizing both MPI and multithreading. We will discuss the design of the library, the use of embedded technology and show results from production large-scale computations in the areas of magnetohydrodynamics and semiconductor device modeling.
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.