Panzer provides global tools for finite element analysis. It handles continuous and discontinuous high-order compatible finite elements, as implemented in Intrepid2 on unstructured meshes. Panzer relies on Phalanx to manage with efficiency and flexibility the assembly of complex problems. Panzer also enables the solution of nonlinear problems, by interfacing with several Trlinos linear and nonlinear solvers. It computes derivatives and sensitivities through automatic differentiation (Sacado). It supports both Epetra and Tpetra data structures and achieves performance portability through the Kokkos programming model.
For an introductory tutorial to what Panzer is, how it works, and how you use it, check out this
presentation.
You can examine the associated code by cloning Trilinos
and then poking around in Trilinos/packages/panzer/adapters-stk/tutorial/siamCse17/
.