|
DOLFIN
DOLFIN C++ interface
|
#include <PETScKrylovSolver.h>


Public Types | |
| enum | norm_type { none, default_norm, preconditioned, unpreconditioned, natural } |
Public Member Functions | |
| PETScKrylovSolver (MPI_Comm comm, std::string method="default", std::string preconditioner="default") | |
| PETScKrylovSolver (std::string method="default", std::string preconditioner="default") | |
| PETScKrylovSolver (MPI_Comm comm, std::string method, std::shared_ptr< PETScPreconditioner > preconditioner) | |
| PETScKrylovSolver (std::string method, std::shared_ptr< PETScPreconditioner > preconditioner) | |
| PETScKrylovSolver (KSP ksp) | |
| Create solver wrapper of a PETSc KSP object. | |
| virtual | ~PETScKrylovSolver () |
| Destructor. | |
| void | set_operator (std::shared_ptr< const GenericLinearOperator > A) |
| Set operator (matrix) | |
| void | set_operator (const PETScBaseMatrix &A) |
| void | set_operators (std::shared_ptr< const GenericLinearOperator > A, std::shared_ptr< const GenericLinearOperator > P) |
| Set operator (matrix) and preconditioner matrix. | |
| void | set_operators (const PETScBaseMatrix &A, const PETScBaseMatrix &P) |
| std::size_t | solve (GenericVector &x, const GenericVector &b) |
| Solve linear system Ax = b and return number of iterations. | |
| std::size_t | solve (GenericVector &x, const GenericVector &b, bool transpose) |
| std::size_t | solve (PETScVector &x, const PETScVector &b, bool transpose=false) |
| std::size_t | solve (const GenericLinearOperator &A, GenericVector &x, const GenericVector &b) |
| Solve linear system Ax = b and return number of iterations. | |
| void | set_nonzero_guess (bool nonzero_guess) |
| void | set_reuse_preconditioner (bool reuse_pc) |
| void | set_tolerances (double relative, double absolute, double diverged, int max_iter) |
| void | set_norm_type (norm_type type) |
| norm_type | get_norm_type () const |
| Get norm type used in convergence testing. | |
| void | monitor (bool monitor_convergence) |
| Monitor residual at each iteration. | |
| void | set_options_prefix (std::string options_prefix) |
| std::string | get_options_prefix () const |
| void | set_from_options () const |
| Set options from PETSc options database. | |
| std::string | str (bool verbose) const |
| Return informal string representation (pretty-print) | |
| MPI_Comm | mpi_comm () const |
| Return MPI communicator. | |
| KSP | ksp () const |
| Return PETSc KSP pointer. | |
| std::string | parameter_type () const |
| Return parameter type: "krylov_solver" or "lu_solver". | |
| void | set_dm (DM dm) |
| Set the DM. | |
| void | set_dm_active (bool val) |
| Activate/deactivate DM. | |
Public Member Functions inherited from dolfin::GenericLinearSolver | |
| virtual void | update_parameters (const Parameters ¶meters) |
| Update solver parameters (useful for LinearSolver wrapper) | |
Public Member Functions inherited from dolfin::Variable | |
| Variable () | |
| Create unnamed variable. | |
| Variable (const std::string name, const std::string label) | |
| Create variable with given name and label. | |
| Variable (const Variable &variable) | |
| Copy constructor. | |
| virtual | ~Variable () |
| Destructor. | |
| const Variable & | operator= (const Variable &variable) |
| Assignment operator. | |
| void | rename (const std::string name, const std::string label) |
| Rename variable. | |
| std::string | name () const |
| Return name. | |
| std::string | label () const |
| Return label (description) | |
| std::size_t | id () const |
Public Member Functions inherited from dolfin::PETScObject | |
| PETScObject () | |
| Constructor. Ensures that PETSc has been initialised. | |
| virtual | ~PETScObject () |
| Destructor. | |
Static Public Member Functions | |
| static std::map< std::string, std::string > | methods () |
| Return a list of available solver methods. | |
| static std::map< std::string, std::string > | preconditioners () |
| Return a list of available named preconditioners. | |
| static Parameters | default_parameters () |
| Default parameter values. | |
Static Public Member Functions inherited from dolfin::PETScObject | |
| static void | petsc_error (int error_code, std::string filename, std::string petsc_function) |
| Print error message for PETSc calls that return an error. | |
Friends | |
| class | PETScSNESSolver |
| class | PETScTAOSolver |
Additional Inherited Members | |
Public Attributes inherited from dolfin::Variable | |
| Parameters | parameters |
| Parameters. | |
Static Protected Member Functions inherited from dolfin::GenericLinearSolver | |
| static const GenericMatrix & | require_matrix (const GenericLinearOperator &A) |
| static std::shared_ptr< const GenericMatrix > | require_matrix (std::shared_ptr< const GenericLinearOperator > A) |
This class implements Krylov methods for linear systems of the form Ax = b. It is a wrapper for the Krylov solvers of PETSc.
|
strong |
Norm types used in convergence testing. Not all solvers types support all norm types (see http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/KSP/KSPSetNormType.html). Note that 'default' is a reserved keyword, so we use 'default_norm'
| PETScKrylovSolver::PETScKrylovSolver | ( | MPI_Comm | comm, |
| std::string | method = "default", |
||
| std::string | preconditioner = "default" |
||
| ) |
Create Krylov solver for a particular method and named preconditioner
| PETScKrylovSolver::PETScKrylovSolver | ( | std::string | method = "default", |
| std::string | preconditioner = "default" |
||
| ) |
Create Krylov solver for a particular method and named preconditioner
| PETScKrylovSolver::PETScKrylovSolver | ( | MPI_Comm | comm, |
| std::string | method, | ||
| std::shared_ptr< PETScPreconditioner > | preconditioner | ||
| ) |
Create Krylov solver for a particular method and PETScPreconditioner (shared_ptr version)
| PETScKrylovSolver::PETScKrylovSolver | ( | std::string | method, |
| std::shared_ptr< PETScPreconditioner > | preconditioner | ||
| ) |
Create Krylov solver for a particular method and PETScPreconditioner (shared_ptr version)
| std::string PETScKrylovSolver::get_options_prefix | ( | ) | const |
Returns the prefix used by PETSc when searching the PETSc options database
| void PETScKrylovSolver::set_nonzero_guess | ( | bool | nonzero_guess | ) |
Use nonzero initial guess for solution function (nonzero_guess=true, the solution vector x will not be zeroed before the solver starts)
| void PETScKrylovSolver::set_norm_type | ( | norm_type | type | ) |
Set norm type used in convergence testing - not all solvers types support all norm types
| void PETScKrylovSolver::set_operator | ( | const PETScBaseMatrix & | A | ) |
Set operator (PETScMatrix). This is memory-safe as PETSc will increase the reference count to the underlying PETSc object.
| void PETScKrylovSolver::set_operators | ( | const PETScBaseMatrix & | A, |
| const PETScBaseMatrix & | P | ||
| ) |
Set operator and preconditioner matrix (PETScMatrix). This is memory-safe as PETSc will increase the reference count to the underlying PETSc objects.
| void PETScKrylovSolver::set_options_prefix | ( | std::string | options_prefix | ) |
Sets the prefix used by PETSc when searching the PETSc options database
| void PETScKrylovSolver::set_reuse_preconditioner | ( | bool | reuse_pc | ) |
Reuse preconditioner if true, even if matrix operator changes (by default preconditioner will be re-built if the matrix changes)
| void PETScKrylovSolver::set_tolerances | ( | double | relative, |
| double | absolute, | ||
| double | diverged, | ||
| int | max_iter | ||
| ) |
Set tolerances (relative residual, alsolute residial, maximum number of iterations)
| std::size_t PETScKrylovSolver::solve | ( | GenericVector & | x, |
| const GenericVector & | b, | ||
| bool | transpose | ||
| ) |
Solve linear system Ax = b and return number of iterations (A^t x = b if transpose is true)
| std::size_t PETScKrylovSolver::solve | ( | PETScVector & | x, |
| const PETScVector & | b, | ||
| bool | transpose = false |
||
| ) |
Solve linear system Ax = b and return number of iterations (A^t x = b if transpose is true)
1.8.13