The optimal solver for a given problem depends not only on the equations being solved, but the boundary conditions, discretization, parameters, problem regime, and machine architecture. This interdependence means that \textit{a priori} selection of a solver is a fraught activity and should be avoided at all costs. While there are many packages which allow flexible selection and (some) combination of linear solvers, this understanding has not yet penetrated the world of nonlinear solvers. We will briefly discuss techniques for combining nonlinear solvers, theoretical underpinnings, and show concrete examples from magma dynamics.

The same considerations which are present for solver selection should also be taken into account when choosing a discretization. However, scientific software seems even less likely to allow the user freedom here than in the nonlinear solver regime. We will discuss tradeoffs involved in choosing a discretization of the magma dynamics problem, and demonstrate how a flexible mechanism might work using examples from the PETSc libraries from Argonne National Laboratory.