ryujin 2.1.1 revision d0a94ad2ccc0c4c2e8c2485c52b06b90e2fc9853
|
#include <source/sparse_matrix_simd.h>
Public Member Functions | |
SparsityPatternSIMD () | |
SparsityPatternSIMD (const unsigned int n_internal_dofs, const dealii::DynamicSparsityPattern &sparsity, const std::shared_ptr< const dealii::Utilities::MPI::Partitioner > &partitioner) | |
void | reinit (const unsigned int n_internal_dofs, const dealii::DynamicSparsityPattern &sparsity, const std::shared_ptr< const dealii::Utilities::MPI::Partitioner > &partitioner) |
unsigned int | stride_of_row (const unsigned int row) const |
const unsigned int * | columns (const unsigned int row) const |
unsigned int | row_length (const unsigned int row) const |
unsigned int | n_rows () const |
std::size_t | n_nonzero_elements () const |
Friends | |
template<typename , int , int > | |
class | SparseMatrixSIMD |
A specialized sparsity pattern for efficient vectorized SIMD access.
In the vectorized row index region [0, n_internal_dofs) we store data as an array-of-struct-of-array type as follows:
For the non-vectorized row index region [n_internal_dofs, n_locally_relevant_dofs) we store the matrix in CSR format (equivalent to the static dealii::SparsityPattern).
Definition at line 63 of file sparse_matrix_simd.h.
ryujin::SparsityPatternSIMD< simd_length >::SparsityPatternSIMD |
Default constructor.
Definition at line 17 of file sparse_matrix_simd.template.h.
ryujin::SparsityPatternSIMD< simd_length >::SparsityPatternSIMD | ( | const unsigned int | n_internal_dofs, |
const dealii::DynamicSparsityPattern & | sparsity, | ||
const std::shared_ptr< const dealii::Utilities::MPI::Partitioner > & | partitioner | ||
) |
Constructor taking a sparsity pattern template, an MPI partitioner and the number of (regular) internal dofs as an argument. The constructor calls SparsityPatternSIMD::reinit() internally.
Definition at line 26 of file sparse_matrix_simd.template.h.
References ryujin::SparsityPatternSIMD< simd_length >::reinit().
void ryujin::SparsityPatternSIMD< simd_length >::reinit | ( | const unsigned int | n_internal_dofs, |
const dealii::DynamicSparsityPattern & | sparsity, | ||
const std::shared_ptr< const dealii::Utilities::MPI::Partitioner > & | partitioner | ||
) |
Reinit function that reinitializes the SIMD sparsity pattern for a given sparsity pattern template, an MPI partitioner and the number of (regular) internal dofs.
Definition at line 39 of file sparse_matrix_simd.template.h.
Referenced by ryujin::SparsityPatternSIMD< simd_length >::SparsityPatternSIMD().
|
inline |
Return the "stride size" of a given row index. The function returns simd_length for all indices in the range [0, n_internal_dofs) and 1 otherwise.
Definition at line 308 of file sparse_matrix_simd.h.
|
inline |
Definition at line 321 of file sparse_matrix_simd.h.
|
inline |
Definition at line 335 of file sparse_matrix_simd.h.
|
inline |
Definition at line 350 of file sparse_matrix_simd.h.
|
inline |
Definition at line 358 of file sparse_matrix_simd.h.
Referenced by ryujin::SparseMatrixSIMD< Number, n_components, simd_length >::reinit(), and ryujin::SparseMatrixSIMD< Number, n_components, simd_length >::SparseMatrixSIMD().
Definition at line 142 of file sparse_matrix_simd.h.