RT Journal Article ID 39a41c2f6b50877e A1 Salinger, Andrew G. A1 Bartlett, Roscoe A. A1 Bradley, Andrew M. A1 Chen, Qiushi A1 Demeshko, Irina P. A1 Gao, Xujiao A1 Hansen, Glen A. A1 Mota, Alejandro A1 Muller, Richard P. A1 Nielsen, Erik A1 Ostien, Jakob T. A1 Pawlowski, Roger P. A1 Perego, Mauro A1 Phipps, Eric T. A1 Sun, WaiChing A1 Tezaur, Irina K. T1 ALBANY: USING COMPONENT-BASED DESIGN TO DEVELOP A FLEXIBLE, GENERIC MULTIPHYSICS ANALYSIS CODE JF International Journal for Multiscale Computational Engineering JO JMC YR 2016 FD 2016-11-07 VO 14 IS 4 SP 415 OP 438 K1 partial differential equations K1 finite element analysis K1 template-based generic programming AB Albany is a multiphysics code constructed by assembling a set of reusable, general components. It is an implicit, unstructured grid finite element code that hosts a set of advanced features that are readily combined within a single analysis run. Albany uses template-based generic programming methods to provide extensibility and flexibility; it employs a generic residual evaluation interface to support the easy addition and modification of physics. This interface is coupled to powerful automatic differentiation utilities that are used to implement efficient nonlinear solvers and preconditioners, and also to enable sensitivity analysis and embedded uncertainty quantification capabilities as part of the forward solve. The flexible application programming interfaces in Albany couple to two different adaptive mesh libraries; it internally employs generic integration machinery that supports tetrahedral, hexahedral, and hybrid meshes of user specified order. We present the overall design of Albany, and focus on the specifics of the integration of many of its advanced features. As Albany and the components that form it are openly available on the internet, it is our goal that the reader might find some of the design concepts useful in their own work. Albany results in a code that enables the rapid development of parallel, numerically efficient multiphysics software tools. In discussing the features and details of the integration of many of the components involved, we show the reader the wide variety of solution components that are available and what is possible when they are combined within a simulation capability. PB Begell House LK https://www.dl.begellhouse.com/journals/61fd1b191cf7e96f,2b8c00292c2d9c29,39a41c2f6b50877e.html