21#include "libmesh/shell_matrix.h"
22#include "libmesh/petsc_shell_matrix.h"
23#include "libmesh/enum_solver_package.h"
30 std::unique_ptr<ShellMatrix<T>>
38 switch (solver_package)
40 #ifdef LIBMESH_HAVE_PETSC
42 return std::make_unique<PetscShellMatrix<T>>(comm);
46 libmesh_error_msg(
"ERROR: Unrecognized solver package: " << solver_package);
Generic shell matrix, i.e.
static std::unique_ptr< ShellMatrix< T > > build(const Parallel::Communicator &comm, const SolverPackage solver_package=libMesh::default_solver_package())
Builds a ShellMatrix<T> using the linear solver package specified by solver_package.
The libMesh namespace provides an interface to certain functionality in the library.
void libmesh_ignore(const Args &...)
SolverPackage
Defines an enum for various linear solver packages.