Tpetra parallel linear algebra  Version of the Day
Classes | Namespaces | Functions
Tpetra_Experimental_BlockView.hpp File Reference

LittleBlock, LittleVector, and kernels. More...

#include "Tpetra_ConfigDefs.hpp"
#include "Kokkos_ArithTraits.hpp"
#include "Kokkos_Complex.hpp"

Go to the source code of this file.

Classes

struct  Tpetra::Experimental::Impl::AbsMax< ViewType1, ViewType2, rank1 >
 Implementation of Tpetra's ABSMAX CombineMode for the small dense blocks in BlockCrsMatrix, or the small dense vectors in BlockMultiVector and BlockVector. More...
 
struct  Tpetra::Experimental::Impl::AbsMax< ViewType1, ViewType2, 2 >
 Implementation of Tpetra's ABSMAX CombineMode for the small dense blocks in BlockCrsMatrix. More...
 
struct  Tpetra::Experimental::Impl::AbsMax< ViewType1, ViewType2, 1 >
 Implementation of Tpetra's ABSMAX CombineMode for the small dense vectors in BlockMultiVector and BlockVector. More...
 
struct  Tpetra::Experimental::Impl::SCAL< ViewType, CoefficientType, LayoutType, IndexType, rank >
 Implementation of Tpetra::Experimental::SCAL function. More...
 
struct  Tpetra::Experimental::Impl::SCAL< ViewType, CoefficientType, LayoutType, IndexType, 1 >
 Implementation of Tpetra::Experimental::SCAL function, for ViewType rank 1 (i.e., a vector). More...
 
struct  Tpetra::Experimental::Impl::SCAL< ViewType, CoefficientType, LayoutType, IndexType, 2 >
 Implementation of Tpetra::Experimental::SCAL function, for ViewType rank 2 (i.e., a matrix). More...
 
struct  Tpetra::Experimental::Impl::SCAL< ViewType, CoefficientType, Kokkos::LayoutRight, IndexType, 2 >
 Implementation of Tpetra::Experimental::SCAL function, for ViewType rank 2 (i.e., a matrix), and LayoutType = LayoutRight. More...
 
struct  Tpetra::Experimental::Impl::AXPY< CoefficientType, ViewType1, ViewType2, LayoutType1, LayoutType2, IndexType, rank >
 Implementation of Tpetra::Experimental::AXPY function. More...
 
struct  Tpetra::Experimental::Impl::AXPY< CoefficientType, ViewType1, ViewType2, LayoutType1, LayoutType2, IndexType, 1 >
 Implementation of Tpetra::Experimental::AXPY function, for ViewType1 and ViewType2 rank 1 (i.e., vectors). More...
 
struct  Tpetra::Experimental::Impl::AXPY< CoefficientType, ViewType1, ViewType2, LayoutType1, LayoutType2, IndexType, 2 >
 Implementation of Tpetra::Experimental::AXPY function, for ViewType1 and ViewType2 rank 2 (i.e., matrices). More...
 
struct  Tpetra::Experimental::Impl::AXPY< CoefficientType, ViewType1, ViewType2, Kokkos::LayoutRight, Kokkos::LayoutRight, IndexType, 2 >
 Implementation of Tpetra::Experimental::AXPY function, for ViewType1 and ViewType2 rank 2 (i.e., matrices), when both ViewType1 and ViewType2 have LayoutRight. More...
 
struct  Tpetra::Experimental::Impl::COPY< ViewType1, ViewType2, LayoutType1, LayoutType2, IndexType, rank >
 Implementation of Tpetra::Experimental::COPY function. More...
 
struct  Tpetra::Experimental::Impl::COPY< ViewType1, ViewType2, LayoutType1, LayoutType2, IndexType, 1 >
 Implementation of Tpetra::Experimental::COPY function, for ViewType1 and ViewType2 rank 1 (i.e., vectors). More...
 
struct  Tpetra::Experimental::Impl::COPY< ViewType1, ViewType2, LayoutType1, LayoutType2, IndexType, 2 >
 Implementation of Tpetra::Experimental::COPY function, for ViewType1 and ViewType2 rank 2 (i.e., matrices). More...
 
struct  Tpetra::Experimental::Impl::COPY< ViewType1, ViewType2, Kokkos::LayoutRight, Kokkos::LayoutRight, IndexType, 2 >
 Implementation of Tpetra::Experimental::COPY function, for ViewType1 and ViewType2 rank 2 (i.e., matrices), where both have LayoutRight (row-major order, with contiguous storage). More...
 
struct  Tpetra::Experimental::Impl::GETRS< LittleBlockType, LittleIntVectorType, LittleScalarVectorType, rank >
 Computes the solution to Ax=b. More...
 
struct  Tpetra::Experimental::Impl::GETRS< LittleBlockType, LittleIntVectorType, LittleScalarVectorType, 1 >
 Special case of GETRS for a single right-hand side. More...
 
struct  Tpetra::Experimental::Impl::GETRS< LittleBlockType, LittleIntVectorType, LittleScalarVectorType, 2 >
 Special case of GETRS for multiple right-hand sides. More...
 
class  Tpetra::Experimental::LittleBlock< Scalar, LO >
 Nonowning view of a square dense block in a block matrix. More...
 
class  Tpetra::Experimental::LittleVector< Scalar, LO >
 Nonowning view of a set of degrees of freedom corresponding to a mesh point in a block vector or multivector. More...
 

Namespaces

 Tpetra
 Namespace Tpetra contains the class and methods constituting the Tpetra library.
 
 Tpetra::Experimental
 Namespace for new Tpetra features that are not ready for public release, but are ready for evaluation by friendly expert users.
 

Functions

template<class ViewType1 , class ViewType2 , const int rank = ViewType1::rank>
void Tpetra::Experimental::Impl::absMax (const ViewType2 &Y, const ViewType1 &X)
 Implementation of Tpetra's ABSMAX CombineMode for the small dense blocks in BlockCrsMatrix, and the small dense vectors in BlockMultiVector and BlockVector. More...
 
template<class ViewType , class CoefficientType , class LayoutType = typename ViewType::array_layout, class IndexType = int, const int rank = ViewType::rank>
void Tpetra::Experimental::SCAL (const CoefficientType &alpha, const ViewType &x)
 x := alpha*x, where x is either rank 1 (a vector) or rank 2 (a matrix). More...
 
template<class CoefficientType , class ViewType1 , class ViewType2 , class LayoutType1 = typename ViewType1::array_layout, class LayoutType2 = typename ViewType2::array_layout, class IndexType = int, const int rank = ViewType1::rank>
void Tpetra::Experimental::AXPY (const CoefficientType &alpha, const ViewType1 &x, const ViewType2 &y)
 y := y + alpha * x (dense vector or matrix update) More...
 
template<class ViewType1 , class ViewType2 , class LayoutType1 = typename ViewType1::array_layout, class LayoutType2 = typename ViewType2::array_layout, class IndexType = int, const int rank = ViewType1::rank>
void Tpetra::Experimental::COPY (const ViewType1 &x, const ViewType2 &y)
 y := x, where x and y are either rank 1 (vectors) or rank 2 (matrices) with the same dimension(s). More...
 
template<class LittleVectorType1 , class LittleBlockType , class LittleVectorType2 , class CoefficientType , class IndexType = int>
void Tpetra::Experimental::GEMV (const CoefficientType &alpha, const LittleBlockType &A, const LittleVectorType1 &x, const LittleVectorType2 &y)
 y := y + alpha * A * x (dense matrix-vector multiply) More...
 
template<class ViewType1 , class ViewType2 , class ViewType3 , class CoefficientType , class IndexType = int>
void Tpetra::Experimental::GEMM (const char transA[], const char transB[], const CoefficientType &alpha, const ViewType1 &A, const ViewType2 &B, const CoefficientType &beta, const ViewType3 &C)
 Small dense matrix-matrix multiply: C := alpha*A*B + beta*C More...
 
template<class LittleBlockType , class LittleVectorType >
void Tpetra::Experimental::GETF2 (const LittleBlockType &A, const LittleVectorType &ipiv, int &info)
 Computes A = P*L*U. More...
 
template<class LittleBlockType , class LittleIntVectorType , class LittleScalarVectorType >
void Tpetra::Experimental::GETRS (const char mode[], const LittleBlockType &A, const LittleIntVectorType &ipiv, const LittleScalarVectorType &B, int &info)
 Solve the linear system(s) AX=B, using the result of GETRF or GETF2. More...
 
template<class LittleBlockType , class LittleIntVectorType , class LittleScalarVectorType >
void Tpetra::Experimental::GETRI (const LittleBlockType &A, const LittleIntVectorType &ipiv, const LittleScalarVectorType &work, int &info)
 Compute inverse of A, using result of GETRF or GETF2. More...
 
template<class ST1 , class ST2 , class LO >
void Tpetra::Experimental::deep_copy (const LittleBlock< ST2, LO > &dst, const LittleBlock< ST1, LO > &src, typename std::enable_if< std::is_convertible< ST1, ST2 >::value &&!std::is_const< ST2 >::value, int >::type *=NULL)
 Copy the LittleBlock src into the LittleBlock dst. More...
 
template<class ST1 , class ST2 , class LO >
void Tpetra::Experimental::deep_copy (const LittleVector< ST2, LO > &dst, const LittleVector< ST1, LO > &src, typename std::enable_if< std::is_convertible< ST1, ST2 >::value &&!std::is_const< ST2 >::value, int >::type *=NULL)
 Copy the LittleVector src into the LittleVector dst. More...
 
template<class ST1 , class ST2 , class LO >
void Tpetra::Experimental::deep_copy (const LittleBlock< ST2, LO > &dst, const ST1 &val, typename std::enable_if< std::is_convertible< ST1, ST2 >::value &&!std::is_const< ST2 >::value, int >::type *=NULL)
 Assign the scalar val to all entries of the LittleBlock dst. More...
 
template<class ST1 , class ST2 , class LO >
void Tpetra::Experimental::deep_copy (const LittleVector< ST2, LO > &dst, const ST1 &val, typename std::enable_if< std::is_convertible< ST1, ST2 >::value &&!std::is_const< ST2 >::value, int >::type *=NULL)
 Assign the scalar val to all entries of the LittleVector dst. More...
 

Detailed Description

LittleBlock, LittleVector, and kernels.

This file declares and defines Tpetra::Experimental::LittleBlock (a small dense matrix) and Tpetra::Experimental::LittleVector (a small dense vector). It also defines generic computational kernels for linear algebra operations with LittleBlock and LittleVector (or with compatible Kokkos::View specializations).

Definition in file Tpetra_Experimental_BlockView.hpp.

Function Documentation

template<class ViewType1 , class ViewType2 , const int rank = ViewType1::rank>
void Tpetra::Experimental::Impl::absMax ( const ViewType2 &  Y,
const ViewType1 &  X 
)

Implementation of Tpetra's ABSMAX CombineMode for the small dense blocks in BlockCrsMatrix, and the small dense vectors in BlockMultiVector and BlockVector.

This is the function that Tpetra actually uses to implement the ABSMAX CombineMode.

Definition at line 168 of file Tpetra_Experimental_BlockView.hpp.