LinearSolver< T > Class Template Reference

#include <LinearSolver.H>

Inheritance diagram for LinearSolver< T >:

Inheritance graph
[legend]

List of all members.


Detailed Description

template<class T>
class LinearSolver< T >

Generic linear solver template. BiCGStab and others are built on top of this.

Public Member Functions

virtual ~LinearSolver ()
virtual void setHomogeneous (bool a_homogeneous)=0
virtual void define (LinearOp< T > *a_operator, bool a_homogeneous=false)=0
virtual void solve (T &a_phi, const T &a_rhs)=0
virtual void setConvergenceMetrics (Real a_metric, Real a_tolerance)
 Set a convergence metric, along with solver tolerance, if desired.

Constructor & Destructor Documentation

template<class T>
virtual LinearSolver< T >::~LinearSolver (  )  [inline, virtual]


Member Function Documentation

template<class T>
virtual void LinearSolver< T >::setHomogeneous ( bool  a_homogeneous  )  [pure virtual]

template<class T>
virtual void LinearSolver< T >::define ( LinearOp< T > *  a_operator,
bool  a_homogeneous = false 
) [pure virtual]

Define the operator and whether it is a homogeneous solver or not. The LinearSolver does not take over ownership of this a_operator object. It does not call delete on it when the LinearSolver is deleted. It is meant to be like a late-binding reference. If you created a_operator with new, you should call delete on it after LinearSolver is deleted if you want to avoid memory leaks.

Implemented in BiCGStabSolver< T >, GMRESSolver< T >, MergeSolver< T >, NoOpSolver< T >, PetscSolver< T >, PetscSolverPoisson< T >, RelaxSolver< T >, EBSimpleSolver, BiCGStabSolver< LevelData< FArrayBox > >, BiCGStabSolver< LevelData< T > >, NoOpSolver< LevelDataType >, NoOpSolver< LevelData< EBCellFAB > >, NoOpSolver< LevelData< FArrayBox > >, NoOpSolver< LevelData< T > >, and PetscSolver< LevelData< FArrayBox > >.

template<class T>
virtual void LinearSolver< T >::solve ( T &  a_phi,
const T &  a_rhs 
) [pure virtual]

template<class T>
virtual void LinearSolver< T >::setConvergenceMetrics ( Real  a_metric,
Real  a_tolerance 
) [inline, virtual]

Set a convergence metric, along with solver tolerance, if desired.

Default implementation does nothing, since there are probably cases (liked direct solves), where this has no real meaning.

Reimplemented in BiCGStabSolver< T >, GMRESSolver< T >, MergeSolver< T >, NoOpSolver< T >, BiCGStabSolver< LevelData< FArrayBox > >, BiCGStabSolver< LevelData< T > >, NoOpSolver< LevelDataType >, NoOpSolver< LevelData< EBCellFAB > >, NoOpSolver< LevelData< FArrayBox > >, and NoOpSolver< LevelData< T > >.


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

Generated on Fri Apr 5 04:25:10 2019 for Chombo + EB by  doxygen 1.5.5