Automating embedded analysis capabilities and managing software   complexity in multiphysics simulation part I: template-based generic   programming
  An approach for incorporating embedded simulation and analysis capabilities in complex simulation codes through template-based generic programming is presented. This approach relies on templating and operator overloading within the C++ language to transform a given calculation into one that can compute a variety of additional quantities that are necessary for many state-of-the-art simulation and analysis algorithms. An approach for incorporating these ideas into complex simulation codes through general graph-based assembly is also presented. These ideas have been implemented within a set of packages in the Trilinos framework and are demonstrated on a simple problem from chemical engineering. 
Roger P. Pawlowski, Eric T. Phipps, and Andrew G. Salinger
cs.MS cs.CE