21 #include "libmesh/preconditioner.h" 
   22 #include "libmesh/auto_ptr.h" 
   23 #include "libmesh/eigen_preconditioner.h" 
   24 #include "libmesh/petsc_preconditioner.h" 
   25 #include "libmesh/trilinos_preconditioner.h" 
   26 #include "libmesh/enum_solver_package.h" 
   27 #include "libmesh/enum_preconditioner_type.h" 
   45 std::unique_ptr<Preconditioner<T>>
 
   53   switch (solver_package)
 
   56 #ifdef LIBMESH_HAVE_PETSC 
   59         return libmesh_make_unique<PetscPreconditioner<T>>(comm);
 
   63 #ifdef LIBMESH_TRILINOS_HAVE_EPETRA 
   65       return libmesh_make_unique<TrilinosPreconditioner<T>>(comm);
 
   68 #ifdef LIBMESH_HAVE_EIGEN 
   70       return libmesh_make_unique<EigenPreconditioner<T>>(comm);
 
   74       libmesh_error_msg(
"ERROR:  Unrecognized solver package: " << solver_package);
 
   80 #ifdef LIBMESH_ENABLE_DEPRECATED 
   91   std::unique_ptr<Preconditioner<T>> ptr =