ryujin 2.1.1 revision ee5cbcbf2346c1299c942d0e1f13b46449973c18
Loading...
Searching...
No Matches
Namespaces | Classes | Functions
Linear Algebra

Namespaces

namespace  ryujin::Vectors
 

Classes

class  ryujin::DiagonalPreconditioner< Number >
 
class  ryujin::Vectors::MultiComponentVector< Number, n_comp, simd_length >
 
class  ryujin::Vectors::MultiComponentVectorView< Number, n_comp, simd_length, MemorySpace, writable >
 
class  ryujin::SparseMatrix< Number, n_comp, warp_size, simd_length >
 
class  ryujin::SparseMatrixView< Number, n_comp, warp_size, simd_length, MemorySpace, writable >
 
class  ryujin::SparsityPattern< warp_size >
 
class  ryujin::SparsityPatternView< warp_size, MemorySpace >
 

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)
 

Detailed Description

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.

Function Documentation

◆ create_vector_partitioner()

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}

Note
This function is used to efficiently set up a single vector partitioner in OfflineData used in all MultiComponentVector instances.