16#ifndef dealii_trilinos_linear_operator_h
17#define dealii_trilinos_linear_operator_h
21#ifdef DEAL_II_WITH_TRILINOS
33 class PreconditionBase;
38 namespace LinearOperatorImplementation
40 class TrilinosPayload;
43 namespace BlockLinearOperatorImplementation
45 template <
typename PayloadBlockType>
46 class TrilinosBlockPayload;
71 template <
typename Range,
typename Domain = Range,
typename Matrix>
77 const Matrix & matrix)
101 template <
typename Range,
typename Domain = Range>
130 template <
typename Range,
typename Domain,
typename Matrix>
141 const Matrix &matrix)
171 template <
typename Range,
typename Domain = Range>
175 TrilinosWrappers::internal::BlockLinearOperatorImplementation::
176 TrilinosBlockPayload<TrilinosWrappers::internal::
177 LinearOperatorImplementation::TrilinosPayload>>
183 using BlockPayload = TrilinosWrappers::internal::
184 BlockLinearOperatorImplementation::TrilinosBlockPayload<PayloadBlockType>;
204 template <std::size_t m,
207 typename Domain = Range>
211 TrilinosWrappers::internal::BlockLinearOperatorImplementation::
212 TrilinosBlockPayload<TrilinosWrappers::internal::
213 LinearOperatorImplementation::TrilinosPayload>>
218 typename Domain::BlockType,
220 LinearOperatorImplementation::TrilinosPayload>,
226 using BlockPayload = TrilinosWrappers::internal::
227 BlockLinearOperatorImplementation::TrilinosBlockPayload<PayloadBlockType>;
248 template <
typename Range,
typename Domain = Range>
252 TrilinosWrappers::internal::BlockLinearOperatorImplementation::
253 TrilinosBlockPayload<TrilinosWrappers::internal::
254 LinearOperatorImplementation::TrilinosPayload>>
261 using BlockPayload = TrilinosWrappers::internal::
262 BlockLinearOperatorImplementation::TrilinosBlockPayload<PayloadBlockType>;
283 template <std::
size_t m,
typename Range,
typename Domain = Range>
287 TrilinosWrappers::internal::BlockLinearOperatorImplementation::
288 TrilinosBlockPayload<TrilinosWrappers::internal::
289 LinearOperatorImplementation::TrilinosPayload>>
293 typename Domain::BlockType,
300 using BlockPayload = TrilinosWrappers::internal::
301 BlockLinearOperatorImplementation::TrilinosBlockPayload<PayloadBlockType>;
#define DEAL_II_NAMESPACE_OPEN
#define DEAL_II_NAMESPACE_CLOSE
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_operator(const std::array< std::array< LinearOperator< typename Range::BlockType, typename Domain::BlockType, TrilinosWrappers::internal::LinearOperatorImplementation::TrilinosPayload >, n >, m > &ops)
LinearOperator< Range, Domain, TrilinosWrappers::internal::LinearOperatorImplementation::TrilinosPayload > linear_operator(const LinearOperator< Range, Domain, TrilinosWrappers::internal::LinearOperatorImplementation::TrilinosPayload > &operator_exemplar, const Matrix &matrix)
LinearOperator< Range, Domain, TrilinosWrappers::internal::LinearOperatorImplementation::TrilinosPayload > linear_operator(const TrilinosWrappers::SparseMatrix &matrix)
BlockLinearOperator< Range, Domain, TrilinosWrappers::internal::BlockLinearOperatorImplementation::TrilinosBlockPayload< TrilinosWrappers::internal::LinearOperatorImplementation::TrilinosPayload > > block_diagonal_operator(const TrilinosWrappers::BlockSparseMatrix &block_matrix)
BlockLinearOperator< Range, Domain, TrilinosWrappers::internal::BlockLinearOperatorImplementation::TrilinosBlockPayload< TrilinosWrappers::internal::LinearOperatorImplementation::TrilinosPayload > > block_diagonal_operator(const std::array< LinearOperator< typename Range::BlockType, typename Domain::BlockType, TrilinosWrappers::internal::LinearOperatorImplementation::TrilinosPayload >, m > &ops)
LinearOperator< Range, Domain, TrilinosWrappers::internal::LinearOperatorImplementation::TrilinosPayload > linear_operator(const TrilinosWrappers::SparseMatrix &operator_exemplar, const Matrix &matrix)