16 #ifndef dealii_trilinos_linear_operator_h 17 #define dealii_trilinos_linear_operator_h 19 #include <deal.II/base/config.h> 21 #if defined(DEAL_II_WITH_TRILINOS) 23 #include <deal.II/lac/linear_operator.h> 24 #include <deal.II/lac/block_linear_operator.h> 26 DEAL_II_NAMESPACE_OPEN
33 class PreconditionBase;
38 namespace LinearOperatorImplementation
40 class TrilinosPayload;
43 namespace BlockLinearOperatorImplementation
45 template <
typename PayloadBlockType>
46 class TrilinosBlockPayload;
72 template <
typename Range,
typename Domain = Range,
79 return ::linear_operator<Range, Domain, Payload, OperatorExemplar, Matrix>(operator_exemplar, matrix);
97 template <
typename Range,
typename Domain = Range>
103 return ::linear_operator<Range, Domain, Payload, Matrix, Matrix>(matrix, matrix);
127 template <
typename Range,
128 typename Domain = Range>
135 return ::block_operator<Range,Domain,BlockPayload,BlockMatrix>(block_matrix);
154 template <
size_t m,
size_t n,
156 typename Domain = Range>
162 return ::block_operator<m,n,Range,Domain,BlockPayload>(ops);
183 template <
typename Range,
184 typename Domain = Range>
191 return ::block_diagonal_operator<Range, Domain, BlockPayload, BlockMatrix>(block_matrix);
210 template <
size_t m,
typename Range,
typename Domain = Range>
216 return ::block_diagonal_operator<m,Range,Domain,BlockPayload>(ops);
223 DEAL_II_NAMESPACE_CLOSE
225 #endif // DEAL_II_WITH_TRILINOS LinearOperator< Range, Domain, TrilinosWrappers::internal::LinearOperatorImplementation::TrilinosPayload > linear_operator(const TrilinosWrappers::SparseMatrix &operator_exemplar, const Matrix &matrix)
BlockLinearOperator< Range, Domain, TrilinosWrappers::internal::BlockLinearOperatorImplementation::TrilinosBlockPayload< TrilinosWrappers::internal::LinearOperatorImplementation::TrilinosPayload > > block_operator(const TrilinosWrappers::BlockSparseMatrix &block_matrix)
BlockLinearOperator< Range, Domain, TrilinosWrappers::internal::BlockLinearOperatorImplementation::TrilinosBlockPayload< TrilinosWrappers::internal::LinearOperatorImplementation::TrilinosPayload > > block_diagonal_operator(const TrilinosWrappers::BlockSparseMatrix &block_matrix)