Albany: Using Component-based Design to Develop a Flexible, Generic Multiphysics Analysis Code

Salinger, Andrew G.; Bartlett, Roscoe A.; Bradley, Andrew M.; Chen, Qiushi; Demeshko, Irina P.; Gao, Xujiao; Hansen, Glen A.; Mota, Alejandro; Muller, Richard P.; Nielsen, Erik; Ostien, Jakob T.; Pawlowski, Roger P.; Perego, Mauro; Phipps, Eric T.; Sun, WaiChing; Tezaur, Irina K.

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.
Key Words: partial differential equations, finite element analysis, template-based generic programming


Also Published In

International Journal for Multiscale Computational Engineering

More About This Work

Academic Units
Civil Engineering and Engineering Mechanics
Published Here
November 15, 2016