20 #ifndef __DOLFIN_PETSC_PRECONDITIONER_H
21 #define __DOLFIN_PETSC_PRECONDITIONER_H
30 #include <dolfin/common/types.h>
31 #include <dolfin/common/Variable.h>
32 #include <dolfin/la/PETScObject.h>
33 #include <dolfin/parameter/Parameters.h>
39 class PETScKrylovSolver;
40 class PETScSNESSolver;
41 class VectorSpaceBasis;
77 const std::vector<std::vector<dolfin::la_index>>& fields,
78 const std::vector<std::string>& split_names);
82 std::string
str(
bool verbose)
const;
96 static const std::map<std::string, const PCType> _methods;
99 static const std::map<std::string, std::string>
103 std::vector<double> _coordinates;
Definition: PETScKrylovSolver.h:55
Definition: PETScObject.h:34
Definition: PETScPreconditioner.h:49
PETScPreconditioner(std::string type="default")
Create a particular preconditioner object.
Definition: PETScPreconditioner.cpp:117
void set_coordinates(const std::vector< double > &x, std::size_t dim)
Definition: PETScPreconditioner.cpp:211
virtual ~PETScPreconditioner()
Destructor.
Definition: PETScPreconditioner.cpp:131
std::string str(bool verbose) const
Definition: PETScPreconditioner.cpp:254
static std::map< std::string, std::string > preconditioners()
Return a list of available preconditioners.
Definition: PETScPreconditioner.cpp:80
static void set_type(PETScKrylovSolver &solver, std::string type)
Select type by name.
Definition: PETScPreconditioner.cpp:85
virtual void set(PETScKrylovSolver &solver)
Set the preconditioner type and parameters.
Definition: PETScPreconditioner.cpp:136
static void set_fieldsplit(PETScKrylovSolver &solver, const std::vector< std::vector< dolfin::la_index >> &fields, const std::vector< std::string > &split_names)
Definition: PETScPreconditioner.cpp:218
Definition: PETScSNESSolver.h:46
Definition: PETScTAOSolver.h:52
Common base class for DOLFIN variables.
Definition: Variable.h:36