21 #include "libmesh/preconditioner.h"    22 #include "libmesh/eigen_preconditioner.h"    23 #include "libmesh/petsc_preconditioner.h"    24 #include "libmesh/trilinos_preconditioner.h"    25 #include "libmesh/enum_solver_package.h"    26 #include "libmesh/enum_preconditioner_type.h"    49 std::unique_ptr<Preconditioner<T>>
    57   switch (solver_package)
    60 #ifdef LIBMESH_HAVE_PETSC    63         return std::make_unique<PetscPreconditioner<T>>(comm);
    67 #ifdef LIBMESH_TRILINOS_HAVE_EPETRA    69       return std::make_unique<TrilinosPreconditioner<T>>(comm);
    72 #ifdef LIBMESH_HAVE_EIGEN    74       return std::make_unique<EigenPreconditioner<T>>(comm);
    78       libmesh_error_msg(
"ERROR:  Unrecognized solver package: " << solver_package);
 
The libMesh namespace provides an interface to certain functionality in the library. 
 
This class provides a uniform interface for preconditioners. 
 
void libmesh_ignore(const Args &...)
 
Preconditioner(const libMesh::Parallel::Communicator &comm)
Constructor. 
 
bool _is_initialized
Flag that tells if init() has been called. 
 
An object whose state is distributed along a set of processors. 
 
SolverPackage
Defines an enum for various linear solver packages.