![]() |
deal.II version GIT relicensing-3087-ga35b476a78 2025-04-19 20:30:01+00:00
|
#include <deal.II/matrix_free/vector_data_exchange.h>
Public Member Functions | |
Full (const std::shared_ptr< const Utilities::MPI::Partitioner > &partitioner, const MPI_Comm communicator_sm) | |
unsigned int | locally_owned_size () const override |
unsigned int | n_ghost_indices () const override |
unsigned int | n_import_indices () const override |
virtual unsigned int | n_import_sm_procs () const override |
virtual types::global_dof_index | size () const override |
MPI_Comm | get_sm_mpi_communicator () const |
void | export_to_ghosted_array_start (const unsigned int communication_channel, const ArrayView< const double > &locally_owned_array, const std::vector< ArrayView< const double > > &shared_arrays, const ArrayView< double > &ghost_array, const ArrayView< double > &temporary_storage, std::vector< MPI_Request > &requests) const override |
void | export_to_ghosted_array_finish (const ArrayView< const double > &locally_owned_array, const std::vector< ArrayView< const double > > &shared_arrays, const ArrayView< double > &ghost_array, std::vector< MPI_Request > &requests) const override |
void | import_from_ghosted_array_start (const VectorOperation::values vector_operation, const unsigned int communication_channel, const ArrayView< const double > &locally_owned_array, const std::vector< ArrayView< const double > > &shared_arrays, const ArrayView< double > &ghost_array, const ArrayView< double > &temporary_storage, std::vector< MPI_Request > &requests) const override |
void | import_from_ghosted_array_finish (const VectorOperation::values vector_operation, const ArrayView< double > &locally_owned_storage, const std::vector< ArrayView< const double > > &shared_arrays, const ArrayView< double > &ghost_array, const ArrayView< const double > &temporary_storage, std::vector< MPI_Request > &requests) const override |
void | reset_ghost_values (const ArrayView< double > &ghost_array) const override |
void | export_to_ghosted_array_start (const unsigned int communication_channel, const ArrayView< const float > &locally_owned_array, const std::vector< ArrayView< const float > > &shared_arrays, const ArrayView< float > &ghost_array, const ArrayView< float > &temporary_storage, std::vector< MPI_Request > &requests) const override |
void | export_to_ghosted_array_finish (const ArrayView< const float > &locally_owned_array, const std::vector< ArrayView< const float > > &shared_arrays, const ArrayView< float > &ghost_array, std::vector< MPI_Request > &requests) const override |
void | import_from_ghosted_array_start (const VectorOperation::values vector_operation, const unsigned int communication_channel, const ArrayView< const float > &locally_owned_array, const std::vector< ArrayView< const float > > &shared_arrays, const ArrayView< float > &ghost_array, const ArrayView< float > &temporary_storage, std::vector< MPI_Request > &requests) const override |
void | import_from_ghosted_array_finish (const VectorOperation::values vector_operation, const ArrayView< float > &locally_owned_storage, const std::vector< ArrayView< const float > > &shared_arrays, const ArrayView< float > &ghost_array, const ArrayView< const float > &temporary_storage, std::vector< MPI_Request > &requests) const override |
void | reset_ghost_values (const ArrayView< float > &ghost_array) const override |
Private Member Functions | |
template<typename Number > | |
void | export_to_ghosted_array_start_impl (const unsigned int communication_channel, const ArrayView< const Number > &locally_owned_array, const std::vector< ArrayView< const Number > > &shared_arrays, const ArrayView< Number > &ghost_array, const ArrayView< Number > &temporary_storage, std::vector< MPI_Request > &requests) const |
template<typename Number > | |
void | export_to_ghosted_array_finish_impl (const ArrayView< const Number > &locally_owned_array, const std::vector< ArrayView< const Number > > &shared_arrays, const ArrayView< Number > &ghost_array, std::vector< MPI_Request > &requests) const |
template<typename Number > | |
void | import_from_ghosted_array_start_impl (const VectorOperation::values vector_operation, const unsigned int communication_channel, const ArrayView< const Number > &locally_owned_array, const std::vector< ArrayView< const Number > > &shared_arrays, const ArrayView< Number > &ghost_array, const ArrayView< Number > &temporary_storage, std::vector< MPI_Request > &requests) const |
template<typename Number > | |
void | import_from_ghosted_array_finish_impl (const VectorOperation::values vector_operation, const ArrayView< Number > &locally_owned_storage, const std::vector< ArrayView< const Number > > &shared_arrays, const ArrayView< Number > &ghost_array, const ArrayView< const Number > &temporary_storage, std::vector< MPI_Request > &requests) const |
template<typename Number > | |
void | reset_ghost_values_impl (const ArrayView< Number > &ghost_array) const |
Private Attributes | |
const MPI_Comm | comm |
const MPI_Comm | comm_sm |
const unsigned int | n_local_elements |
const unsigned int | n_ghost_elements |
const types::global_dof_index | n_global_elements |
std::vector< unsigned int > | n_ghost_indices_in_larger_set_by_remote_rank |
std::pair< std::vector< unsigned int >, std::vector< std::pair< unsigned int, unsigned int > > > | ghost_indices_subset_data |
std::vector< std::array< unsigned int, 3 > > | ghost_targets_data |
std::vector< std::array< unsigned int, 3 > > | import_targets_data |
std::pair< std::vector< unsigned int >, std::vector< std::pair< unsigned int, unsigned int > > > | import_indices_data |
std::vector< unsigned int > | sm_ghost_ranks |
std::pair< std::vector< unsigned int >, std::vector< std::pair< unsigned int, unsigned int > > > | sm_export_data |
std::pair< std::vector< unsigned int >, std::vector< std::pair< unsigned int, unsigned int > > > | sm_export_data_this |
std::vector< unsigned int > | sm_import_ranks |
std::pair< std::vector< unsigned int >, std::vector< std::pair< unsigned int, unsigned int > > > | sm_import_data |
std::pair< std::vector< unsigned int >, std::vector< std::pair< unsigned int, unsigned int > > > | sm_import_data_this |
Similar to the above but using the internal data structures in the partitioner in order to identify indices of degrees of freedom that are in the same shared memory region.
Definition at line 261 of file vector_data_exchange.h.
internal::MatrixFreeFunctions::VectorDataExchange::Full::Full | ( | const std::shared_ptr< const Utilities::MPI::Partitioner > & | partitioner, |
const MPI_Comm | communicator_sm | ||
) |
Definition at line 370 of file vector_data_exchange.cc.
|
overridevirtual |
Implements internal::MatrixFreeFunctions::VectorDataExchange::Base.
Definition at line 1314 of file vector_data_exchange.cc.
|
overridevirtual |
Implements internal::MatrixFreeFunctions::VectorDataExchange::Base.
Definition at line 1322 of file vector_data_exchange.cc.
|
overridevirtual |
Implements internal::MatrixFreeFunctions::VectorDataExchange::Base.
Definition at line 1330 of file vector_data_exchange.cc.
|
overridevirtual |
Implements internal::MatrixFreeFunctions::VectorDataExchange::Base.
Definition at line 1340 of file vector_data_exchange.cc.
|
overridevirtual |
Implements internal::MatrixFreeFunctions::VectorDataExchange::Base.
Definition at line 1348 of file vector_data_exchange.cc.
MPI_Comm internal::MatrixFreeFunctions::VectorDataExchange::Full::get_sm_mpi_communicator | ( | ) | const |
Definition at line 1356 of file vector_data_exchange.cc.
|
overridevirtual |
Implements internal::MatrixFreeFunctions::VectorDataExchange::Base.
Definition at line 673 of file vector_data_exchange.cc.
|
overridevirtual |
Implements internal::MatrixFreeFunctions::VectorDataExchange::Base.
Definition at line 692 of file vector_data_exchange.cc.
|
overridevirtual |
Implements internal::MatrixFreeFunctions::VectorDataExchange::Base.
Definition at line 707 of file vector_data_exchange.cc.
|
overridevirtual |
Implements internal::MatrixFreeFunctions::VectorDataExchange::Base.
Definition at line 728 of file vector_data_exchange.cc.
|
overridevirtual |
Implements internal::MatrixFreeFunctions::VectorDataExchange::Base.
Definition at line 1364 of file vector_data_exchange.cc.
|
overridevirtual |
Implements internal::MatrixFreeFunctions::VectorDataExchange::Base.
Definition at line 747 of file vector_data_exchange.cc.
|
overridevirtual |
Implements internal::MatrixFreeFunctions::VectorDataExchange::Base.
Definition at line 766 of file vector_data_exchange.cc.
|
overridevirtual |
Implements internal::MatrixFreeFunctions::VectorDataExchange::Base.
Definition at line 781 of file vector_data_exchange.cc.
|
overridevirtual |
Implements internal::MatrixFreeFunctions::VectorDataExchange::Base.
Definition at line 802 of file vector_data_exchange.cc.
|
overridevirtual |
Implements internal::MatrixFreeFunctions::VectorDataExchange::Base.
Definition at line 1372 of file vector_data_exchange.cc.
|
private |
Definition at line 822 of file vector_data_exchange.cc.
|
private |
Definition at line 922 of file vector_data_exchange.cc.
|
private |
Definition at line 1061 of file vector_data_exchange.cc.
|
private |
Definition at line 1190 of file vector_data_exchange.cc.
|
private |
Definition at line 1381 of file vector_data_exchange.cc.
|
private |
Global communicator.
Definition at line 410 of file vector_data_exchange.h.
|
private |
Shared-memory sub-communicator.
Definition at line 415 of file vector_data_exchange.h.
|
private |
Number of locally-owned vector entries.
Definition at line 420 of file vector_data_exchange.h.
|
private |
Number of ghost vector entries.
Definition at line 425 of file vector_data_exchange.h.
|
private |
Number of global vector entries.
Definition at line 430 of file vector_data_exchange.h.
|
private |
A variable caching the number of ghost indices in a larger set of indices by rank.
Definition at line 436 of file vector_data_exchange.h.
|
private |
The set of indices that appear for an IndexSet that is a subset of a larger set for each rank in a compressed manner.
Definition at line 444 of file vector_data_exchange.h.
|
private |
An array that contains information which processors my ghost indices belong to, at which offset and how many those indices are
Definition at line 450 of file vector_data_exchange.h.
|
private |
The set of processors and length of data field which send us their ghost data.
Definition at line 458 of file vector_data_exchange.h.
|
private |
An array that caches the number of chunks in the import indices per MPI rank. The length is import_indices_data.size()+1.
The set of (local) indices that we are importing during compress() from remote processes, i.e., others' ghosts that belong to the local range.
Definition at line 470 of file vector_data_exchange.h.
|
private |
Shared-memory ranks from which data is copied from during export_to_ghosted_array_finish().
Definition at line 476 of file vector_data_exchange.h.
|
private |
Indices from where to copy data from during export_to_ghosted_array_finish().
Definition at line 484 of file vector_data_exchange.h.
|
private |
Indices where to copy data to during export_to_ghosted_array_finish().
Definition at line 492 of file vector_data_exchange.h.
|
private |
Shared-memory ranks from where to copy data from during import_from_ghosted_array_finish().
Definition at line 498 of file vector_data_exchange.h.
|
private |
Indices from where to copy data from during import_from_ghosted_array_finish().
Definition at line 506 of file vector_data_exchange.h.
|
private |
Indices where to copy data to during import_from_ghosted_array_finish().
Definition at line 514 of file vector_data_exchange.h.