24#ifndef __LINEAR_SOLVER_H
25#define __LINEAR_SOLVER_H
30#include <dolfin/common/types.h>
31#include "GenericLinearSolver.h"
32#include <dolfin/common/MPI.h>
37 class GenericLinearOperator;
41 class LinearVariationalSolver;
51 std::string preconditioner=
"default")
52 :
LinearSolver(MPI_COMM_WORLD, method, preconditioner) {}
56 std::string method=
"default",
57 std::string preconditioner=
"default");
63 void set_operator(std::shared_ptr<const GenericLinearOperator> A);
66 void set_operators(std::shared_ptr<const GenericLinearOperator> A,
67 std::shared_ptr<const GenericLinearOperator> P);
95 {
return _parameter_type; }
107 static bool in_list(
const std::string& method,
108 const std::map<std::string, std::string>& methods);
111 std::unique_ptr<GenericLinearSolver> solver;
115 std::string _parameter_type;
Definition GenericLinearOperator.h:43
This class provides a general solver for linear systems Ax = b.
Definition GenericLinearSolver.h:38
This class defines a common interface for vectors.
Definition GenericVector.h:48
Definition KrylovSolver.h:39
LU solver for the built-in LA backends.
Definition LUSolver.h:36
This class provides a general solver for linear systems Ax = b.
Definition LinearSolver.h:46
~LinearSolver()
Destructor.
Definition LinearSolver.cpp:103
virtual void update_parameters(const Parameters ¶meters)
Definition LinearSolver.h:85
void set_operator(std::shared_ptr< const GenericLinearOperator > A)
Set the operator (matrix)
Definition LinearSolver.cpp:109
LinearSolver(std::string method="default", std::string preconditioner="default")
Create linear solver.
Definition LinearSolver.h:50
std::string parameter_type() const
Return parameter type: "krylov_solver" or "lu_solver".
Definition LinearSolver.h:94
void set_operators(std::shared_ptr< const GenericLinearOperator > A, std::shared_ptr< const GenericLinearOperator > P)
Set the operator (matrix) and preconditioner matrix.
Definition LinearSolver.cpp:117
static Parameters default_parameters()
Default parameter values.
Definition LinearSolver.h:77
std::size_t solve(const GenericLinearOperator &A, GenericVector &x, const GenericVector &b)
Solve linear system Ax = b.
Definition LinearSolver.cpp:125
This class implements a solver for linear variational problems.
Definition LinearVariationalSolver.h:39
This class implements a solver for mixed linear variational problems.
Definition MixedLinearVariationalSolver.h:40
Definition NewtonSolver.h:47
Definition Parameters.h:95
void update(const Parameters ¶meters)
Update parameters with another set of parameters.
Definition Parameters.cpp:245
Parameters parameters
Parameters.
Definition Variable.h:74