![]() |
Reference documentation for deal.II version 9.6.0
|
#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 371 of file vector_data_exchange.cc.
|
overridevirtual |
Implements internal::MatrixFreeFunctions::VectorDataExchange::Base.
Definition at line 1329 of file vector_data_exchange.cc.
|
overridevirtual |
Implements internal::MatrixFreeFunctions::VectorDataExchange::Base.
Definition at line 1337 of file vector_data_exchange.cc.
|
overridevirtual |
Implements internal::MatrixFreeFunctions::VectorDataExchange::Base.
Definition at line 1345 of file vector_data_exchange.cc.
|
overridevirtual |
Implements internal::MatrixFreeFunctions::VectorDataExchange::Base.
Definition at line 1355 of file vector_data_exchange.cc.
|
overridevirtual |
Implements internal::MatrixFreeFunctions::VectorDataExchange::Base.
Definition at line 1363 of file vector_data_exchange.cc.
MPI_Comm internal::MatrixFreeFunctions::VectorDataExchange::Full::get_sm_mpi_communicator | ( | ) | const |
Definition at line 1371 of file vector_data_exchange.cc.
|
overridevirtual |
Implements internal::MatrixFreeFunctions::VectorDataExchange::Base.
Definition at line 688 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 722 of file vector_data_exchange.cc.
|
overridevirtual |
Implements internal::MatrixFreeFunctions::VectorDataExchange::Base.
Definition at line 743 of file vector_data_exchange.cc.
|
overridevirtual |
Implements internal::MatrixFreeFunctions::VectorDataExchange::Base.
Definition at line 1379 of file vector_data_exchange.cc.
|
overridevirtual |
Implements internal::MatrixFreeFunctions::VectorDataExchange::Base.
Definition at line 762 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 796 of file vector_data_exchange.cc.
|
overridevirtual |
Implements internal::MatrixFreeFunctions::VectorDataExchange::Base.
Definition at line 817 of file vector_data_exchange.cc.
|
overridevirtual |
Implements internal::MatrixFreeFunctions::VectorDataExchange::Base.
Definition at line 1387 of file vector_data_exchange.cc.
|
private |
Definition at line 837 of file vector_data_exchange.cc.
|
private |
Definition at line 937 of file vector_data_exchange.cc.
|
private |
Definition at line 1076 of file vector_data_exchange.cc.
|
private |
Definition at line 1205 of file vector_data_exchange.cc.
|
private |
Definition at line 1396 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.