16 #ifndef dealii_trilinos_solver_h 17 # define dealii_trilinos_solver_h 20 # include <deal.II/base/config.h> 22 # ifdef DEAL_II_WITH_TRILINOS 24 # include <deal.II/lac/exceptions.h> 25 # include <deal.II/lac/la_parallel_vector.h> 26 # include <deal.II/lac/solver_control.h> 27 # include <deal.II/lac/vector.h> 31 # include <Epetra_LinearProblem.h> 32 # include <Epetra_Operator.h> 37 DEAL_II_NAMESPACE_OPEN
43 class PreconditionBase;
166 solve(
const Epetra_Operator & A,
181 solve(
const Epetra_Operator &A,
184 const Epetra_Operator &preconditioner);
196 solve(
const Epetra_Operator & A,
197 Epetra_MultiVector & x,
198 const Epetra_MultiVector &b,
212 solve(
const Epetra_Operator & A,
213 Epetra_MultiVector & x,
214 const Epetra_MultiVector &b,
215 const Epetra_Operator & preconditioner);
232 const ::Vector<double> &b,
247 solve(Epetra_Operator & A,
249 const ::Vector<double> &b,
261 const ::LinearAlgebra::distributed::Vector<double> &b,
272 solve(Epetra_Operator & A,
274 const ::LinearAlgebra::distributed::Vector<double> &b,
289 <<
"An error with error number " << arg1
290 <<
" occurred while calling a Trilinos function");
306 template <
typename Preconditioner>
308 do_solve(
const Preconditioner &preconditioner);
313 template <
typename Preconditioner>
352 const Epetra_Operator &preconditioner);
452 const unsigned int restart_parameter = 30);
580 const std::string &solver_type =
"Amesos_Klu");
644 const ::LinearAlgebra::distributed::Vector<double> &b);
665 const ::Vector<double> &b);
676 const ::LinearAlgebra::distributed::Vector<double> &b);
689 <<
"An error with error number " << arg1
690 <<
" occurred while calling a Trilinos function");
719 std::unique_ptr<Amesos_BaseSolver>
solver;
729 DEAL_II_NAMESPACE_CLOSE
731 # endif // DEAL_II_WITH_TRILINOS void set_preconditioner(AztecOO &solver, const Preconditioner &preconditioner)
const bool output_solver_details
std::unique_ptr< Amesos_BaseSolver > solver
const AdditionalData additional_data
std::unique_ptr< AztecOO_StatusTest > status_test
const AdditionalData additional_data
const AdditionalData additional_data
static::ExceptionBase & ExcTrilinosError(int arg1)
const AdditionalData additional_data
void do_solve(const Preconditioner &preconditioner)
virtual ~SolverBase()=default
SolverControl & solver_control
#define DeclException1(Exception1, type1, outsequence)
SolverControl & control() const
SolverControl & solver_control
std::unique_ptr< Epetra_LinearProblem > linear_problem
void solve(const SparseMatrix &A, MPI::Vector &x, const MPI::Vector &b, const PreconditionBase &preconditioner)
std::unique_ptr< Epetra_LinearProblem > linear_problem
SolverBase(SolverControl &cn, const AdditionalData &data=AdditionalData())
const AdditionalData additional_data
const AdditionalData additional_data
bool output_solver_details
AdditionalData(const bool output_solver_details=false, const unsigned int gmres_restart_parameter=30)
const AdditionalData additional_data
const unsigned int gmres_restart_parameter