![]() |
ryujin 2.1.1 revision ee5cbcbf2346c1299c942d0e1f13b46449973c18
|
Namespaces | |
| namespace | ryujin::Vectors |
Functions | |
| std::shared_ptr< const dealii::Utilities::MPI::Partitioner > | ryujin::Vectors::create_vector_partitioner (const std::shared_ptr< const dealii::Utilities::MPI::Partitioner > &scalar_partitioner, const unsigned int n_comp) |
This module contains the classes and functions used for storing and operating on linear algebra objects: distributed vectors that hold a fixed number of components per vector entry, the sparsity pattern and sparse matrix used for the stencil-based operations, the corresponding "view" classes that hand out access to the underlying data in either the host or the device memory space, and simple linear operators such as a diagonal preconditioner.
| std::shared_ptr< const dealii::Utilities::MPI::Partitioner > ryujin::Vectors::create_vector_partitioner | ( | const std::shared_ptr< const dealii::Utilities::MPI::Partitioner > & | scalar_partitioner, |
| const unsigned int | n_comp | ||
| ) |
This function takes a scalar MPI partitioner scalar_partitioner as argument and returns a shared pointer to a new "vector" multicomponent partitioner that defines storage and MPI synchronization for a vector consisting of n_comp components. The vector partitioner is intended to efficiently store non-scalar vectors such as the state vectors U. Let (U_i)_k denote the k-th component of a state vector element U_i, we then store
\begin{align} (U_0)_0, (U_0)_1, (U_0)_2, (U_0)_3, (U_0)_4, (U_1)_0, (U_1)_1, (U_1)_2, (U_1)_3, (U_1)_4, \ldots \end{align}