Classes | |
struct | AdditionalData |
class | ExcNonMatchingMaps |
class | ExcOverlappingMaps |
class | ExcTrilinosError |
Public Types | |
enum | SolverBlockName { cg, gmres } |
Public Member Functions | |
SolverBlockBase (SolverControl &cn) | |
SolverBlockBase (const enum SolverBlockName solver_name, SolverControl &cn) | |
virtual | ~SolverBlockBase () |
void | solve (const BlockSparseMatrix &A, MPI::BlockVector &x, const MPI::BlockVector &b, const PreconditionBlockBase &preconditioner) |
void | solve (const BlockSparseMatrix &A, BlockVector &x, const BlockVector &b, const PreconditionBlockBase &preconditioner) |
SolverControl & | control () const |
Public Attributes | |
enum TrilinosWrappers::SolverBlockBase::SolverBlockName | solver_name |
Protected Attributes | |
SolverControl & | solver_control |
AdditionalData | additional_data |
Enumeration object that is set in the constructor of the derived classes and tells Trilinos which solver to use. This option can also be set in the user program, so one might use this base class instead of one of the specialized derived classes when the solver should be set at runtime. Currently enabled options are:
TrilinosWrappers::SolverBlockBase::SolverBlockBase | ( | SolverControl & | cn | ) |
Constructor. Takes the solver control object and creates the solver.
TrilinosWrappers::SolverBlockBase::SolverBlockBase | ( | const enum SolverBlockName | solver_name, | |
SolverControl & | cn | |||
) |
Second constructor. This constructor takes an enum object that specifies the solver name and sets the appropriate Krylov method.
virtual TrilinosWrappers::SolverBlockBase::~SolverBlockBase | ( | ) | [virtual] |
Destructor.
void TrilinosWrappers::SolverBlockBase::solve | ( | const BlockSparseMatrix & | A, | |
MPI::BlockVector & | x, | |||
const MPI::BlockVector & | b, | |||
const PreconditionBlockBase & | preconditioner | |||
) |
Solve the linear system Ax=b
. Depending on the information provided by derived classes and the object passed as a preconditioner, one of the linear solvers and preconditioners of Trilinos is chosen. This interface is designed for Trilinos running in parallel.
void TrilinosWrappers::SolverBlockBase::solve | ( | const BlockSparseMatrix & | A, | |
BlockVector & | x, | |||
const BlockVector & | b, | |||
const PreconditionBlockBase & | preconditioner | |||
) |
Solve the linear system Ax=b
. Depending on the information provided by derived classes and the object passed as a preconditioner, one of the linear solvers and preconditioners of Trilinos is chosen. This interface is designed for Trilinos running in serial.
SolverControl& TrilinosWrappers::SolverBlockBase::control | ( | ) | const |
Access to object that controls convergence.
enum TrilinosWrappers::SolverBlockBase::SolverBlockName TrilinosWrappers::SolverBlockBase::solver_name |
Enumeration object that is set in the constructor of the derived classes and tells Trilinos which solver to use. This option can also be set in the user program, so one might use this base class instead of one of the specialized derived classes when the solver should be set at runtime. Currently enabled options are:
Reference to the object that controls convergence of the iterative solver. In fact, for these Trilinos wrappers, Trilinos does so itself, but we copy the data from this object before starting the solution process, and copy the data back into it afterwards.
Store a copy of the flags for this particular solver.