|
Reference documentation for deal.II version 9.2.0
|
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\)
\(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\)
\(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\)
\(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Go to the documentation of this file.
16 #ifndef dealii_trilinos_precondition_h
17 # define dealii_trilinos_precondition_h
22 # ifdef DEAL_II_WITH_TRILINOS
31 # ifdef DEAL_II_WITH_MPI
32 # include <Epetra_MpiComm.h>
34 # include <Epetra_SerialComm.h>
36 # include <Epetra_Map.h>
37 # include <Epetra_MultiVector.h>
38 # include <Epetra_RowMatrix.h>
39 # include <Epetra_Vector.h>
40 # include <Teuchos_ParameterList.hpp>
44 class Ifpack_Preconditioner;
45 class Ifpack_Chebyshev;
48 class MultiLevelPreconditioner;
56 template <
typename number>
58 template <
typename number>
164 const ::Vector<double> &src)
const;
172 const ::LinearAlgebra::distributed::Vector<double> &src)
const;
180 const ::LinearAlgebra::distributed::Vector<double> &src)
const;
227 <<
"The sparse matrix the preconditioner is based on "
228 <<
"uses a map that is not compatible to the one in vector "
229 << arg1 <<
". Check preconditioner and matrix setup.");
245 # ifdef DEAL_II_WITH_MPI
383 const unsigned int overlap = 0,
478 const unsigned int overlap = 0,
567 const double omega = 1,
671 const double omega = 1,
673 const unsigned int overlap = 0,
783 const double omega = 1,
785 const unsigned int overlap = 0,
910 const unsigned int overlap = 0);
1030 const unsigned int overlap = 0);
1137 const unsigned int overlap = 0);
1398 const bool w_cyle =
false,
1401 std::vector<std::vector<bool>>(0),
1440 Teuchos::ParameterList & parameter_list,
1441 std::unique_ptr<Epetra_MultiVector> &distributed_constant_modes,
1442 const Epetra_RowMatrix &
matrix)
const;
1453 Teuchos::ParameterList & parameter_list,
1454 std::unique_ptr<Epetra_MultiVector> &distributed_constant_modes,
1464 Teuchos::ParameterList & parameter_list,
1465 std::unique_ptr<Epetra_MultiVector> &distributed_constant_modes,
1466 const Epetra_RowMatrix &
matrix)
const;
1475 Teuchos::ParameterList & parameter_list,
1476 std::unique_ptr<Epetra_MultiVector> &distributed_constant_modes,
1656 const Teuchos::ParameterList &ml_parameters);
1667 const Teuchos::ParameterList &ml_parameters);
1675 template <
typename number>
1677 initialize(const ::SparseMatrix<number> &deal_ii_sparse_matrix,
1679 const double drop_tolerance = 1
e-13,
1680 const ::SparsityPattern *use_this_sparsity =
nullptr);
1719 # if defined(DOXYGEN) || defined(DEAL_II_TRILINOS_WITH_MUELU)
1756 const bool w_cyle =
false,
1759 std::vector<std::vector<bool>>(0),
1918 Teuchos::ParameterList &muelu_parameters);
1927 Teuchos::ParameterList &muelu_parameters);
1935 template <
typename number>
1937 initialize(const ::SparseMatrix<number> &deal_ii_sparse_matrix,
1939 const double drop_tolerance = 1
e-13,
1940 const ::SparsityPattern *use_this_sparsity =
nullptr);
2011 const ::Vector<double> &src)
const override;
2019 const ::Vector<double> &src)
const override;
2027 const ::LinearAlgebra::distributed::Vector<double> &src)
2037 const ::LinearAlgebra::distributed::Vector<double> &src)
2075 Assert(dst.trilinos_partitioner().SameAs(
2078 Assert(src.trilinos_partitioner().SameAs(
2082 const int ierr =
preconditioner->ApplyInverse(src.trilinos_vector(),
2083 dst.trilinos_vector());
2090 Assert(dst.trilinos_partitioner().SameAs(
2093 Assert(src.trilinos_partitioner().SameAs(
2098 const int ierr =
preconditioner->ApplyInverse(src.trilinos_vector(),
2099 dst.trilinos_vector());
2116 const ::Vector<double> &src)
const
2122 Epetra_Vector tril_dst(
View,
2125 Epetra_Vector tril_src(
View,
2127 const_cast<double *
>(src.begin()));
2129 const int ierr =
preconditioner->ApplyInverse(tril_src, tril_dst);
2136 const ::Vector<double> &src)
const
2142 Epetra_Vector tril_dst(
View,
2145 Epetra_Vector tril_src(
View,
2147 const_cast<double *
>(src.begin()));
2150 const int ierr =
preconditioner->ApplyInverse(tril_src, tril_dst);
2166 Epetra_Vector tril_dst(
View,
2169 Epetra_Vector tril_src(
View,
2171 const_cast<double *
>(src.
begin()));
2173 const int ierr =
preconditioner->ApplyInverse(tril_src, tril_dst);
2186 Epetra_Vector tril_dst(
View,
2189 Epetra_Vector tril_src(
View,
2191 const_cast<double *
>(src.
begin()));
2194 const int ierr =
preconditioner->ApplyInverse(tril_src, tril_dst);
2209 # endif // DEAL_II_WITH_TRILINOS
2211 #endif // trilinos_precondition_h
static ::ExceptionBase & ExcNonMatchingMaps(std::string arg1)
void initialize(const SparseMatrix &matrix, const AdditionalData &additional_data=AdditionalData())
double aggregation_threshold
std::string block_creation_type
AdditionalData(const unsigned int ilu_fill=0, const double ilu_atol=0., const double ilu_rtol=1., const unsigned int overlap=0)
void set_parameters(Teuchos::ParameterList ¶meter_list, std::unique_ptr< Epetra_MultiVector > &distributed_constant_modes, const Epetra_RowMatrix &matrix) const
unsigned int smoother_sweeps
void initialize(const SparseMatrix &matrix, const AdditionalData &additional_data=AdditionalData())
size_type memory_consumption() const
AdditionalData(const double ilut_drop=0., const unsigned int ilut_fill=0, const double ilut_atol=0., const double ilut_rtol=1., const unsigned int overlap=0)
AdditionalData(const unsigned int ic_fill=0, const double ic_atol=0., const double ic_rtol=1., const unsigned int overlap=0)
AdditionalData(const unsigned int degree=1, const double max_eigenvalue=10., const double eigenvalue_ratio=30., const double min_eigenvalue=1., const double min_diagonal=1e-12, const bool nonzero_starting=false)
MPI_Comm get_mpi_communicator() const
void initialize(const SparseMatrix &matrix, const AdditionalData &additional_data=AdditionalData())
std::vector< std::vector< bool > > constant_modes
SymmetricTensor< 2, dim, Number > e(const Tensor< 2, dim, Number > &F)
void vmult(MPI::Vector &dst, const MPI::Vector &src) const override
unsigned int smoother_sweeps
AdditionalData(const unsigned int block_size=1, const std::string &block_creation_type="linear", const double omega=1, const double min_diagonal=0, const unsigned int n_sweeps=1)
bool higher_order_elements
IndexSet locally_owned_domain_indices() const
void initialize(const SparseMatrix &matrix, const AdditionalData &additional_data=AdditionalData())
AdditionalData(const unsigned int block_size=1, const std::string &block_creation_type="linear", const double omega=1, const double min_diagonal=0, const unsigned int overlap=0, const unsigned int n_sweeps=1)
AdditionalData(const double omega=1, const double min_diagonal=0, const unsigned int overlap=0, const unsigned int n_sweeps=1)
void initialize(const SparseMatrix &matrix, const AdditionalData &additional_data=AdditionalData())
virtual void vmult(MPI::Vector &dst, const MPI::Vector &src) const
AdditionalData(const double omega=1, const double min_diagonal=0, const unsigned int n_sweeps=1)
AdditionalData(const unsigned int overlap=0)
virtual void Tvmult(MPI::Vector &dst, const MPI::Vector &src) const
const char * smoother_type
unsigned int global_dof_index
void initialize(const SparseMatrix &matrix, const AdditionalData &additional_data=AdditionalData())
AdditionalData(const bool elliptic=true, const unsigned int n_cycles=1, const bool w_cyle=false, const double aggregation_threshold=1e-4, const std::vector< std::vector< bool >> &constant_modes=std::vector< std::vector< bool >>(0), const unsigned int smoother_sweeps=2, const unsigned int smoother_overlap=0, const bool output_details=false, const char *smoother_type="Chebyshev", const char *coarse_type="Amesos-KLU")
Teuchos::RCP< Epetra_Operator > preconditioner
void Tvmult(MPI::Vector &dst, const MPI::Vector &src) const override
void initialize(const SparseMatrix &matrix, const AdditionalData &additional_data=AdditionalData())
#define DEAL_II_NAMESPACE_OPEN
std::string block_creation_type
void initialize(const SparseMatrix &matrix, const AdditionalData &additional_data=AdditionalData())
@ matrix
Contents is actually a matrix.
size_type local_size() const
std::vector< std::vector< bool > > constant_modes
#define DeclException1(Exception1, type1, outsequence)
#define AssertDimension(dim1, dim2)
void initialize(const SparseMatrix &matrix, const AdditionalData &additional_data=AdditionalData())
std::shared_ptr< Epetra_Map > vector_distributor
Epetra_MpiComm communicator
double aggregation_threshold
AdditionalData(const unsigned int block_size=1, const std::string &block_creation_type="linear", const double omega=1, const double min_diagonal=0, const unsigned int overlap=0, const unsigned int n_sweeps=1)
virtual ~PreconditionAMGMueLu() override=default
static ::ExceptionBase & ExcTrilinosError(int arg1)
#define Assert(cond, exc)
unsigned int smoother_overlap
void initialize(const SparseMatrix &matrix, const AdditionalData &additional_data=AdditionalData())
AdditionalData(const bool elliptic=true, const bool higher_order_elements=false, const unsigned int n_cycles=1, const bool w_cyle=false, const double aggregation_threshold=1e-4, const std::vector< std::vector< bool >> &constant_modes=std::vector< std::vector< bool >>(0), const unsigned int smoother_sweeps=2, const unsigned int smoother_overlap=0, const bool output_details=false, const char *smoother_type="Chebyshev", const char *coarse_type="Amesos-KLU")
void set_operator_null_space(Teuchos::ParameterList ¶meter_list, std::unique_ptr< Epetra_MultiVector > &distributed_constant_modes, const Epetra_RowMatrix &matrix) const
void initialize(const SparseMatrix &matrix, const AdditionalData &additional_data=AdditionalData())
std::shared_ptr< SparseMatrix > trilinos_matrix
unsigned int smoother_overlap
std::string block_creation_type
const char * smoother_type
IndexSet locally_owned_range_indices() const
std::shared_ptr< SparseMatrix > trilinos_matrix
void initialize(const SparseMatrix &matrix, const AdditionalData &additional_data=AdditionalData())
#define DEAL_II_NAMESPACE_CLOSE
void initialize(const SparseMatrix &matrix, const AdditionalData &additional_data=AdditionalData())
AdditionalData(const double omega=1, const double min_diagonal=0, const unsigned int overlap=0, const unsigned int n_sweeps=1)
Epetra_Operator & trilinos_operator() const
size_type memory_consumption() const
#define AssertThrow(cond, exc)
typename ::internal::FEValuesViews::ViewType< dim, spacedim, Extractor >::type View
void initialize(const SparseMatrix &matrix, const AdditionalData &additional_data=AdditionalData())
~PreconditionBase() override=default
~PreconditionAMG() override