![]() |
ryujin 2.1.1 revision ee5cbcbf2346c1299c942d0e1f13b46449973c18
|
#include <source/multicomponent_vector.h>


Public Member Functions | |
Constructor and initialization | |
| MultiComponentVector ()=default | |
| MultiComponentVector (const MultiComponentVector &other) | |
| MultiComponentVector (MultiComponentVector &&other) noexcept | |
| void | reinit_with_vector_partitioner (const std::shared_ptr< const dealii::Utilities::MPI::Partitioner > &vector_partitioner, const TransferPolicy transfer_policy=TransferPolicy::explicit_transfers) |
| void | reinit_with_scalar_partitioner (const std::shared_ptr< const dealii::Utilities::MPI::Partitioner > &scalar_partitioner, const TransferPolicy transfer_policy=TransferPolicy::explicit_transfers) |
| MultiComponentVector & | operator= (const MultiComponentVector &other) |
| MultiComponentVector & | operator= (MultiComponentVector &&other) noexcept |
Memory space access and synchronization | |
| template<typename MemorySpace = dealii::MemorySpace::Host> | |
| MultiComponentVectorView< Number, n_comp, simd_length, MemorySpace, true > | view () |
| template<typename MemorySpace = dealii::MemorySpace::Host> | |
| MultiComponentVectorView< Number, n_comp, simd_length, MemorySpace, false > | view () const |
MPI synchronization | |
| template<typename MemorySpace > | |
| void | zero_out_ghost_values_on_memory_space () |
| template<typename MemorySpace > | |
| void | update_ghost_values_on_memory_space () |
| template<typename MemorySpace > | |
| void | compress_on_memory_space (dealii::VectorOperation::values operation) |
Public Member Functions inherited from ryujin::MirroredStorage< Derived > | |
| template<typename MemorySpace > | |
| bool | is_resident () const |
| template<typename MemorySpace > | |
| bool | is_pinned () const |
| template<typename MemorySpace > | |
| void | copy_to_memory_space () const |
| template<typename MemorySpace > | |
| void | move_to_memory_space () |
| TransferPolicy | transfer_policy () const |
| void | set_transfer_policy (const TransferPolicy transfer_policy) |
Internal fields, methods, and friends | |
| class | MirroredStorage< MultiComponentVector< Number, n_comp, simd_length > > |
| template<typename , int , int , typename , bool > | |
| class | MultiComponentVectorView |
Additional Inherited Members | |
Protected Member Functions inherited from ryujin::MirroredStorage< Derived > | |
| MirroredStorage ()=default | |
| template<typename MemorySpace > | |
| void | prepare_read_access () const |
| template<typename MemorySpace > | |
| void | prepare_write_access () |
| void | reset_residency (const bool host_resident, const bool default_resident) |
A wrapper around dealii::LinearAlgebra::distributed::Vector<Number> that stores a vector element of n_comp components per entry (instead of a scalar value).
Definition at line 65 of file multicomponent_vector.h.
|
default |
| ryujin::Vectors::MultiComponentVector< Number, n_comp, simd_length >::MultiComponentVector | ( | const MultiComponentVector< Number, n_comp, simd_length > & | other | ) |
|
noexcept |
| void ryujin::Vectors::MultiComponentVector< Number, n_comp, simd_length >::reinit_with_vector_partitioner | ( | const std::shared_ptr< const dealii::Utilities::MPI::Partitioner > & | vector_partitioner, |
| const TransferPolicy | transfer_policy = TransferPolicy::explicit_transfers |
||
| ) |
Reinitializes the MultiComponentVector with a vector MPI partitioner that was created first with create_vector_partitioner().
After reinit the vector is resident on the host memory space only; device storage is allocated lazily on the first copy_to_memory_space() / move_to_memory_space(). (If the host and default memory spaces coincide the vector is resident on both.)
transfer_policy for this function. | void ryujin::Vectors::MultiComponentVector< Number, n_comp, simd_length >::reinit_with_scalar_partitioner | ( | const std::shared_ptr< const dealii::Utilities::MPI::Partitioner > & | scalar_partitioner, |
| const TransferPolicy | transfer_policy = TransferPolicy::explicit_transfers |
||
| ) |
Reinitializes the MultiComponentVector with a scalar MPI partitioner. The function calls create_vector_partitioner() internally to create and store a corresponding "vector" MPI partitioner.
After reinit the vector is resident on the host memory space only; device storage is allocated lazily on the first copy_to_memory_space() / move_to_memory_space(). (If the host and default memory spaces coincide the vector is resident on both.)
transfer_policy for this function. | MultiComponentVector & ryujin::Vectors::MultiComponentVector< Number, n_comp, simd_length >::operator= | ( | const MultiComponentVector< Number, n_comp, simd_length > & | other | ) |
|
noexcept |
| MultiComponentVectorView< Number, n_comp, simd_length, MemorySpace, true > ryujin::Vectors::MultiComponentVector< Number, n_comp, simd_length >::view | ( | ) |
Return a writable view on the vector for the selected memory space. Depending on the selected TransferPolicy the method either asserts that the memory space is resident (TransferPolicy::explicit_transfers), or performs an implicit move_to_memory_space() invalidating the other memory space (TransferPolicy::implicit_transfers).
| MultiComponentVectorView< Number, n_comp, simd_length, MemorySpace, false > ryujin::Vectors::MultiComponentVector< Number, n_comp, simd_length >::view | ( | ) | const |
Return a read-only view on the vector for the selected memory space. Depending on the selected TransferPolicy the method either asserts that the memory space is resident (TransferPolicy::explicit_transfers), or performs an implicit copy_to_memory_space() (TransferPolicy::implicit_transfers).
| void ryujin::Vectors::MultiComponentVector< Number, n_comp, simd_length >::zero_out_ghost_values_on_memory_space | ( | ) |
MPI synchronization: Zero out all ghost rows.
| void ryujin::Vectors::MultiComponentVector< Number, n_comp, simd_length >::update_ghost_values_on_memory_space | ( | ) |
MPI synchronization: Import all ghost values from neighboring MPI ranks on the templated memory space.
| void ryujin::Vectors::MultiComponentVector< Number, n_comp, simd_length >::compress_on_memory_space | ( | dealii::VectorOperation::values | operation | ) |
MPI synchronization: Copy the data that has accumulated in the ghost range to the owning processor. This function operates on the templated memory space.
|
friend |
Definition at line 221 of file multicomponent_vector.h.
|
friend |
Definition at line 228 of file multicomponent_vector.h.