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/block_linear_operator.h> 24 # include <deal.II/lac/linear_operator.h> 26 DEAL_II_NAMESPACE_OPEN
32 class PreconditionBase;
37 namespace LinearOperatorImplementation
39 class TrilinosPayload;
42 namespace BlockLinearOperatorImplementation
44 template <
typename PayloadBlockType>
45 class TrilinosBlockPayload;
71 template <
typename Range,
typename Domain = Range,
typename Matrix>
77 const Matrix & matrix)
83 linear_operator<Range, Domain, Payload, OperatorExemplar, Matrix>(
84 operator_exemplar, matrix);
102 template <
typename Range,
typename Domain = Range>
112 return ::linear_operator<Range, Domain, Payload, Matrix, Matrix>(
137 template <
typename Range,
typename Domain = Range>
147 using PayloadBlockType =
151 return ::block_operator<Range, Domain, BlockPayload, BlockMatrix>(
171 template <
size_t m,
size_t n,
typename Range,
typename Domain = Range>
182 typename Domain::BlockType,
184 LinearOperatorImplementation::TrilinosPayload>,
188 using PayloadBlockType =
192 return ::block_operator<m, n, Range, Domain, BlockPayload>(ops);
213 template <
typename Range,
typename Domain = Range>
224 using PayloadBlockType =
229 block_diagonal_operator<Range, Domain, BlockPayload, BlockMatrix>(
249 template <
size_t m,
typename Range,
typename Domain = Range>
259 typename Domain::BlockType,
264 using PayloadBlockType =
268 return ::block_diagonal_operator<m, Range, Domain, BlockPayload>(ops);
275 DEAL_II_NAMESPACE_CLOSE
277 #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)