Opm::LinearSolverPetsc Class Reference

Concrete class encapsulating some Petsc linear solvers. More...

#include <LinearSolverPetsc.hpp>

Inheritance diagram for Opm::LinearSolverPetsc:
Inheritance graph

Public Member Functions

 LinearSolverPetsc ()
 
 LinearSolverPetsc (const parameter::ParameterGroup &param)
 
virtual ~LinearSolverPetsc ()
 Destructor. More...
 
virtual LinearSolverReport solve (const int size, const int nonzeros, const int *ia, const int *ja, const double *sa, const double *rhs, double *solution, const boost::any &) const
 
virtual void setTolerance (const double tol)
 
virtual double getTolerance () const
 
LinearSolverReport solve (const CSRMatrix *A, const double *rhs, double *solution) const
 

Detailed Description

Concrete class encapsulating some Petsc linear solvers.

Constructor & Destructor Documentation

Opm::LinearSolverPetsc::LinearSolverPetsc ( )

Default constructor. Declared, but not implemented. Petsc can only be created through the ParameterGroup constructor, everything else is an error. This way the error is caught compile time and not rune time, which is nice as it is a static error.

Opm::LinearSolverPetsc::LinearSolverPetsc ( const parameter::ParameterGroup param)

Construct from parameters Accepted parameters are, with defaults, listed in the default constructor.

virtual Opm::LinearSolverPetsc::~LinearSolverPetsc ( )
virtual

Destructor.

Member Function Documentation

virtual double Opm::LinearSolverPetsc::getTolerance ( ) const
virtual

Get tolerance ofthe linear solver.

Parameters
[out]tolerancevalue

Implements Opm::LinearSolverInterface.

virtual void Opm::LinearSolverPetsc::setTolerance ( const double  tol)
virtual

Set tolerance for the residual in dune istl linear solver.

Parameters
[in]toltolerance value

Implements Opm::LinearSolverInterface.

LinearSolverReport Opm::LinearSolverInterface::solve ( const CSRMatrix A,
const double *  rhs,
double *  solution 
) const
inherited

Solve a linear system, with a matrix given in compressed sparse row format.

Parameters
[in]Amatrix in CSR format
[in]rhsarray of length A->m containing the right hand side
[in,out]solutionarray of length A->m to which the solution will be written, may also be used as initial guess by iterative solvers. Note: this method is a convenience method that calls the virtual solve() method.
virtual LinearSolverReport Opm::LinearSolverPetsc::solve ( const int  size,
const int  nonzeros,
const int *  ia,
const int *  ja,
const double *  sa,
const double *  rhs,
double *  solution,
const boost::any &   
) const
virtual

Solve a linear system, with a matrix given in compressed sparse row format.

Parameters
[in]size# of rows in matrix
[in]nonzeros# of nonzeros elements in matrix
[in]iaarray of length (size + 1) containing start and end indices for each row
[in]jaarray of length nonzeros containing column numbers for the nonzero elements
[in]saarray of length nonzeros containing the values of the nonzero elements
[in]rhsarray of length size containing the right hand side
[in,out]solutionarray of length size to which the solution will be written, may also be used as initial guess by iterative solvers.

Implements Opm::LinearSolverInterface.


The documentation for this class was generated from the following file: