|
Ifpack2 Templated Preconditioning Package Version 1.0
|
Classes | |
| struct | BlockTridiags |
| struct | BlockTridiagScalarType |
| struct | ExtractAndFactorizeTridiagsDefaultModeAndAlgo |
| struct | ImplNotAvailTag |
| struct | ImplObject |
| forward declaration More... | |
| struct | MultiVectorConverter |
| struct | SolveTridiagsDefaultModeAndAlgo< Kokkos::HostSpace > |
Typedefs | |
| using | do_not_initialize_tag = Kokkos::ViewAllocateWithoutInitializing |
Functions | |
| template<typename MatrixType > | |
| Teuchos::RCP< const typename BlockHelperDetails::ImplType< MatrixType >::tpetra_import_type > | createBlockCrsTpetraImporter (const Teuchos::RCP< const typename BlockHelperDetails::ImplType< MatrixType >::tpetra_row_matrix_type > &A) |
| template<typename MatrixType > | |
| Teuchos::RCP< AsyncableImport< MatrixType > > | createBlockCrsAsyncImporter (const Teuchos::RCP< const typename BlockHelperDetails::ImplType< MatrixType >::tpetra_row_matrix_type > &A) |
| template<typename MatrixType > | |
| BlockHelperDetails::PartInterface< MatrixType > | createPartInterface (const Teuchos::RCP< const typename BlockHelperDetails::ImplType< MatrixType >::tpetra_row_matrix_type > &A, const Teuchos::RCP< const typename BlockHelperDetails::ImplType< MatrixType >::tpetra_crs_graph_type > &G, const Teuchos::Array< Teuchos::Array< typename BlockHelperDetails::ImplType< MatrixType >::local_ordinal_type > > &partitions, const typename BlockHelperDetails::ImplType< MatrixType >::local_ordinal_type n_subparts_per_part_in) |
| template<typename MatrixType > | |
| BlockTridiags< MatrixType > | createBlockTridiags (const BlockHelperDetails::PartInterface< MatrixType > &interf) |
| template<typename MatrixType > | |
| void | performSymbolicPhase (const Teuchos::RCP< const typename BlockHelperDetails::ImplType< MatrixType >::tpetra_row_matrix_type > &A, const Teuchos::RCP< const typename BlockHelperDetails::ImplType< MatrixType >::tpetra_crs_graph_type > &g, const BlockHelperDetails::PartInterface< MatrixType > &interf, BlockTridiags< MatrixType > &btdm, BlockHelperDetails::AmD< MatrixType > &amd, const bool overlap_communication_and_computation, const Teuchos::RCP< AsyncableImport< MatrixType > > &async_importer, bool useSeqMethod, bool use_fused_jacobi) |
| template<typename MatrixType > | |
| void | performNumericPhase (const Teuchos::RCP< const typename BlockHelperDetails::ImplType< MatrixType >::tpetra_row_matrix_type > &A, const Teuchos::RCP< const typename BlockHelperDetails::ImplType< MatrixType >::tpetra_crs_graph_type > &G, const BlockHelperDetails::PartInterface< MatrixType > &interf, BlockTridiags< MatrixType > &btdm, const typename BlockHelperDetails::ImplType< MatrixType >::magnitude_type tiny, bool use_fused_jacobi) |
| template<typename MatrixType > | |
| int | applyInverseJacobi (const Teuchos::RCP< const typename BlockHelperDetails::ImplType< MatrixType >::tpetra_row_matrix_type > &A, const Teuchos::RCP< const typename BlockHelperDetails::ImplType< MatrixType >::tpetra_crs_graph_type > &G, const Teuchos::RCP< const typename BlockHelperDetails::ImplType< MatrixType >::tpetra_import_type > &tpetra_importer, const Teuchos::RCP< AsyncableImport< MatrixType > > &async_importer, const bool overlap_communication_and_computation, const typename BlockHelperDetails::ImplType< MatrixType >::tpetra_multivector_type &X, typename BlockHelperDetails::ImplType< MatrixType >::tpetra_multivector_type &Y, typename BlockHelperDetails::ImplType< MatrixType >::tpetra_multivector_type &Z, typename BlockHelperDetails::ImplType< MatrixType >::impl_scalar_type_1d_view &W, const BlockHelperDetails::PartInterface< MatrixType > &interf, const BlockTridiags< MatrixType > &btdm, const BlockHelperDetails::AmD< MatrixType > &amd, typename BlockHelperDetails::ImplType< MatrixType >::vector_type_1d_view &work, BlockHelperDetails::NormManager< MatrixType > &norm_manager, const typename BlockHelperDetails::ImplType< MatrixType >::impl_scalar_type &damping_factor, bool is_y_zero, const int max_num_sweeps, const typename BlockHelperDetails::ImplType< MatrixType >::magnitude_type tol, const int check_tol_every) |
| template<typename MatrixType > | |
| int | applyFusedBlockJacobi (const Teuchos::RCP< const typename BlockHelperDetails::ImplType< MatrixType >::tpetra_import_type > &tpetra_importer, const Teuchos::RCP< AsyncableImport< MatrixType > > &async_importer, const bool overlap_communication_and_computation, const typename BlockHelperDetails::ImplType< MatrixType >::tpetra_multivector_type &X, typename BlockHelperDetails::ImplType< MatrixType >::tpetra_multivector_type &Y, typename BlockHelperDetails::ImplType< MatrixType >::impl_scalar_type_1d_view &W, const BlockHelperDetails::PartInterface< MatrixType > &interf, const BlockTridiags< MatrixType > &btdm, const BlockHelperDetails::AmD< MatrixType > &amd, typename BlockHelperDetails::ImplType< MatrixType >::impl_scalar_type_1d_view &work, BlockHelperDetails::NormManager< MatrixType > &norm_manager, const typename BlockHelperDetails::ImplType< MatrixType >::impl_scalar_type &damping_factor, bool is_y_zero, const int max_num_sweeps, const typename BlockHelperDetails::ImplType< MatrixType >::magnitude_type tol, const int check_tol_every) |
Impl Tag
| using Ifpack2::BlockTriDiContainerDetails::do_not_initialize_tag = typedef Kokkos::ViewAllocateWithoutInitializing |
view decorators for unmanaged and const memory
| Teuchos::RCP< const typename BlockHelperDetails::ImplType< MatrixType >::tpetra_import_type > Ifpack2::BlockTriDiContainerDetails::createBlockCrsTpetraImporter | ( | const Teuchos::RCP< const typename BlockHelperDetails::ImplType< MatrixType >::tpetra_row_matrix_type > & | A | ) |
setup sequential importer
| Teuchos::RCP< AsyncableImport< MatrixType > > Ifpack2::BlockTriDiContainerDetails::createBlockCrsAsyncImporter | ( | const Teuchos::RCP< const typename BlockHelperDetails::ImplType< MatrixType >::tpetra_row_matrix_type > & | A | ) |
setup async importer
| BlockHelperDetails::PartInterface< MatrixType > Ifpack2::BlockTriDiContainerDetails::createPartInterface | ( | const Teuchos::RCP< const typename BlockHelperDetails::ImplType< MatrixType >::tpetra_row_matrix_type > & | A, |
| const Teuchos::RCP< const typename BlockHelperDetails::ImplType< MatrixType >::tpetra_crs_graph_type > & | G, | ||
| const Teuchos::Array< Teuchos::Array< typename BlockHelperDetails::ImplType< MatrixType >::local_ordinal_type > > & | partitions, | ||
| const typename BlockHelperDetails::ImplType< MatrixType >::local_ordinal_type | n_subparts_per_part_in | ||
| ) |
setup part interface using the container partitions array
| BlockTridiags< MatrixType > Ifpack2::BlockTriDiContainerDetails::createBlockTridiags | ( | const BlockHelperDetails::PartInterface< MatrixType > & | interf | ) |
block tridiags initialization from part interface
| void Ifpack2::BlockTriDiContainerDetails::performSymbolicPhase | ( | const Teuchos::RCP< const typename BlockHelperDetails::ImplType< MatrixType >::tpetra_row_matrix_type > & | A, |
| const Teuchos::RCP< const typename BlockHelperDetails::ImplType< MatrixType >::tpetra_crs_graph_type > & | g, | ||
| const BlockHelperDetails::PartInterface< MatrixType > & | interf, | ||
| BlockTridiags< MatrixType > & | btdm, | ||
| BlockHelperDetails::AmD< MatrixType > & | amd, | ||
| const bool | overlap_communication_and_computation, | ||
| const Teuchos::RCP< AsyncableImport< MatrixType > > & | async_importer, | ||
| bool | useSeqMethod, | ||
| bool | use_fused_jacobi | ||
| ) |
symbolic phase, on host : create R = A - D, pack D
| void Ifpack2::BlockTriDiContainerDetails::performNumericPhase | ( | const Teuchos::RCP< const typename BlockHelperDetails::ImplType< MatrixType >::tpetra_row_matrix_type > & | A, |
| const Teuchos::RCP< const typename BlockHelperDetails::ImplType< MatrixType >::tpetra_crs_graph_type > & | G, | ||
| const BlockHelperDetails::PartInterface< MatrixType > & | interf, | ||
| BlockTridiags< MatrixType > & | btdm, | ||
| const typename BlockHelperDetails::ImplType< MatrixType >::magnitude_type | tiny, | ||
| bool | use_fused_jacobi | ||
| ) |
top level numeric interface
| int Ifpack2::BlockTriDiContainerDetails::applyInverseJacobi | ( | const Teuchos::RCP< const typename BlockHelperDetails::ImplType< MatrixType >::tpetra_row_matrix_type > & | A, |
| const Teuchos::RCP< const typename BlockHelperDetails::ImplType< MatrixType >::tpetra_crs_graph_type > & | G, | ||
| const Teuchos::RCP< const typename BlockHelperDetails::ImplType< MatrixType >::tpetra_import_type > & | tpetra_importer, | ||
| const Teuchos::RCP< AsyncableImport< MatrixType > > & | async_importer, | ||
| const bool | overlap_communication_and_computation, | ||
| const typename BlockHelperDetails::ImplType< MatrixType >::tpetra_multivector_type & | X, | ||
| typename BlockHelperDetails::ImplType< MatrixType >::tpetra_multivector_type & | Y, | ||
| typename BlockHelperDetails::ImplType< MatrixType >::tpetra_multivector_type & | Z, | ||
| typename BlockHelperDetails::ImplType< MatrixType >::impl_scalar_type_1d_view & | W, | ||
| const BlockHelperDetails::PartInterface< MatrixType > & | interf, | ||
| const BlockTridiags< MatrixType > & | btdm, | ||
| const BlockHelperDetails::AmD< MatrixType > & | amd, | ||
| typename BlockHelperDetails::ImplType< MatrixType >::vector_type_1d_view & | work, | ||
| BlockHelperDetails::NormManager< MatrixType > & | norm_manager, | ||
| const typename BlockHelperDetails::ImplType< MatrixType >::impl_scalar_type & | damping_factor, | ||
| bool | is_y_zero, | ||
| const int | max_num_sweeps, | ||
| const typename BlockHelperDetails::ImplType< MatrixType >::magnitude_type | tol, | ||
| const int | check_tol_every | ||
| ) |
top level apply interface (general case)
| int Ifpack2::BlockTriDiContainerDetails::applyFusedBlockJacobi | ( | const Teuchos::RCP< const typename BlockHelperDetails::ImplType< MatrixType >::tpetra_import_type > & | tpetra_importer, |
| const Teuchos::RCP< AsyncableImport< MatrixType > > & | async_importer, | ||
| const bool | overlap_communication_and_computation, | ||
| const typename BlockHelperDetails::ImplType< MatrixType >::tpetra_multivector_type & | X, | ||
| typename BlockHelperDetails::ImplType< MatrixType >::tpetra_multivector_type & | Y, | ||
| typename BlockHelperDetails::ImplType< MatrixType >::impl_scalar_type_1d_view & | W, | ||
| const BlockHelperDetails::PartInterface< MatrixType > & | interf, | ||
| const BlockTridiags< MatrixType > & | btdm, | ||
| const BlockHelperDetails::AmD< MatrixType > & | amd, | ||
| typename BlockHelperDetails::ImplType< MatrixType >::impl_scalar_type_1d_view & | work, | ||
| BlockHelperDetails::NormManager< MatrixType > & | norm_manager, | ||
| const typename BlockHelperDetails::ImplType< MatrixType >::impl_scalar_type & | damping_factor, | ||
| bool | is_y_zero, | ||
| const int | max_num_sweeps, | ||
| const typename BlockHelperDetails::ImplType< MatrixType >::magnitude_type | tol, | ||
| const int | check_tol_every | ||
| ) |
top level apply interface (fused block Jacobi)