MueLu Version of the Day
Loading...
Searching...
No Matches
MueLu::BlockInverseFunctor< Scalar, LocalOrdinal, GlobalOrdinal, Node > Class Template Reference

#include <MueLu_Constraint_def.hpp>

Classes

class  TagApply
 
class  TagCountSingularBlocks
 
class  TagFindSingularBlocks
 

Public Types

using CrsGraph = typename Xpetra::CrsGraph< LocalOrdinal, GlobalOrdinal, Node >
 
using CrsMatrix = typename Xpetra::CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >
 
using local_graph_type = typename CrsGraph::local_graph_type
 
using local_matrix_type = typename CrsMatrix::local_matrix_type
 
using scalar_type = typename local_matrix_type::value_type
 
using ATS = KokkosKernels::ArithTraits< scalar_type >
 
using magnitude_type = typename ATS::magnitudeType
 
using magATS = KokkosKernels::ArithTraits< magnitude_type >
 
using memory_space = typename Node::memory_space
 
using shared_matrix = Kokkos::View< scalar_type **, typename Node::execution_space::scratch_memory_space, Kokkos::MemoryUnmanaged >
 
using shared_vector = Kokkos::View< scalar_type *, typename Node::execution_space::scratch_memory_space, Kokkos::MemoryUnmanaged >
 

Public Member Functions

 BlockInverseFunctor (local_matrix_type A_, local_graph_type blocks_, LocalOrdinal maxBlocksize_, local_matrix_type invA_, Kokkos::View< bool *, memory_space > singular_)
 
KOKKOS_INLINE_FUNCTION void operator() (TagFindSingularBlocks, const typename Kokkos::TeamPolicy< typename Node::execution_space >::member_type &thread) const
 
KOKKOS_INLINE_FUNCTION void operator() (TagCountSingularBlocks, const typename Kokkos::TeamPolicy< typename Node::execution_space >::member_type &thread, LocalOrdinal &numSingularBlocks) const
 
KOKKOS_INLINE_FUNCTION void operator() (TagApply, const typename Kokkos::TeamPolicy< typename Node::execution_space >::member_type &thread) const
 
size_t team_shmem_size (int) const
 

Private Attributes

const scalar_type zero = ATS::zero()
 
const magnitude_type mag_zero = magATS::zero()
 
const scalar_type one = ATS::one()
 
local_matrix_type A
 
local_graph_type blocks
 
LocalOrdinal maxBlocksize
 
local_matrix_type invA
 
Kokkos::View< bool *, memory_spacesingular
 

Detailed Description

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node>
class MueLu::BlockInverseFunctor< Scalar, LocalOrdinal, GlobalOrdinal, Node >

Definition at line 123 of file MueLu_Constraint_def.hpp.

Member Typedef Documentation

◆ CrsGraph

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
using MueLu::BlockInverseFunctor< Scalar, LocalOrdinal, GlobalOrdinal, Node >::CrsGraph = typename Xpetra::CrsGraph<LocalOrdinal, GlobalOrdinal, Node>

Definition at line 125 of file MueLu_Constraint_def.hpp.

◆ CrsMatrix

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
using MueLu::BlockInverseFunctor< Scalar, LocalOrdinal, GlobalOrdinal, Node >::CrsMatrix = typename Xpetra::CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node>

Definition at line 126 of file MueLu_Constraint_def.hpp.

◆ local_graph_type

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
using MueLu::BlockInverseFunctor< Scalar, LocalOrdinal, GlobalOrdinal, Node >::local_graph_type = typename CrsGraph::local_graph_type

Definition at line 127 of file MueLu_Constraint_def.hpp.

◆ local_matrix_type

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
using MueLu::BlockInverseFunctor< Scalar, LocalOrdinal, GlobalOrdinal, Node >::local_matrix_type = typename CrsMatrix::local_matrix_type

Definition at line 128 of file MueLu_Constraint_def.hpp.

◆ scalar_type

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
using MueLu::BlockInverseFunctor< Scalar, LocalOrdinal, GlobalOrdinal, Node >::scalar_type = typename local_matrix_type::value_type

Definition at line 129 of file MueLu_Constraint_def.hpp.

◆ ATS

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
using MueLu::BlockInverseFunctor< Scalar, LocalOrdinal, GlobalOrdinal, Node >::ATS = KokkosKernels::ArithTraits<scalar_type>

Definition at line 130 of file MueLu_Constraint_def.hpp.

◆ magnitude_type

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
using MueLu::BlockInverseFunctor< Scalar, LocalOrdinal, GlobalOrdinal, Node >::magnitude_type = typename ATS::magnitudeType

Definition at line 131 of file MueLu_Constraint_def.hpp.

◆ magATS

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
using MueLu::BlockInverseFunctor< Scalar, LocalOrdinal, GlobalOrdinal, Node >::magATS = KokkosKernels::ArithTraits<magnitude_type>

Definition at line 132 of file MueLu_Constraint_def.hpp.

◆ memory_space

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
using MueLu::BlockInverseFunctor< Scalar, LocalOrdinal, GlobalOrdinal, Node >::memory_space = typename Node::memory_space

Definition at line 133 of file MueLu_Constraint_def.hpp.

◆ shared_matrix

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
using MueLu::BlockInverseFunctor< Scalar, LocalOrdinal, GlobalOrdinal, Node >::shared_matrix = Kokkos::View<scalar_type**, typename Node::execution_space::scratch_memory_space, Kokkos::MemoryUnmanaged>

Definition at line 135 of file MueLu_Constraint_def.hpp.

◆ shared_vector

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
using MueLu::BlockInverseFunctor< Scalar, LocalOrdinal, GlobalOrdinal, Node >::shared_vector = Kokkos::View<scalar_type*, typename Node::execution_space::scratch_memory_space, Kokkos::MemoryUnmanaged>

Definition at line 136 of file MueLu_Constraint_def.hpp.

Constructor & Destructor Documentation

◆ BlockInverseFunctor()

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
MueLu::BlockInverseFunctor< Scalar, LocalOrdinal, GlobalOrdinal, Node >::BlockInverseFunctor ( local_matrix_type  A_,
local_graph_type  blocks_,
LocalOrdinal  maxBlocksize_,
local_matrix_type  invA_,
Kokkos::View< bool *, memory_space singular_ 
)
inline

Definition at line 138 of file MueLu_Constraint_def.hpp.

Member Function Documentation

◆ operator()() [1/3]

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
KOKKOS_INLINE_FUNCTION void MueLu::BlockInverseFunctor< Scalar, LocalOrdinal, GlobalOrdinal, Node >::operator() ( TagFindSingularBlocks  ,
const typename Kokkos::TeamPolicy< typename Node::execution_space >::member_type &  thread 
) const
inline

Definition at line 162 of file MueLu_Constraint_def.hpp.

◆ operator()() [2/3]

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
KOKKOS_INLINE_FUNCTION void MueLu::BlockInverseFunctor< Scalar, LocalOrdinal, GlobalOrdinal, Node >::operator() ( TagCountSingularBlocks  ,
const typename Kokkos::TeamPolicy< typename Node::execution_space >::member_type &  thread,
LocalOrdinal numSingularBlocks 
) const
inline

Definition at line 206 of file MueLu_Constraint_def.hpp.

◆ operator()() [3/3]

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
KOKKOS_INLINE_FUNCTION void MueLu::BlockInverseFunctor< Scalar, LocalOrdinal, GlobalOrdinal, Node >::operator() ( TagApply  ,
const typename Kokkos::TeamPolicy< typename Node::execution_space >::member_type &  thread 
) const
inline

Definition at line 213 of file MueLu_Constraint_def.hpp.

◆ team_shmem_size()

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
size_t MueLu::BlockInverseFunctor< Scalar, LocalOrdinal, GlobalOrdinal, Node >::team_shmem_size ( int  ) const
inline

Definition at line 329 of file MueLu_Constraint_def.hpp.

Member Data Documentation

◆ zero

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
const scalar_type MueLu::BlockInverseFunctor< Scalar, LocalOrdinal, GlobalOrdinal, Node >::zero = ATS::zero()
private

Definition at line 150 of file MueLu_Constraint_def.hpp.

◆ mag_zero

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
const magnitude_type MueLu::BlockInverseFunctor< Scalar, LocalOrdinal, GlobalOrdinal, Node >::mag_zero = magATS::zero()
private

Definition at line 151 of file MueLu_Constraint_def.hpp.

◆ one

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
const scalar_type MueLu::BlockInverseFunctor< Scalar, LocalOrdinal, GlobalOrdinal, Node >::one = ATS::one()
private

Definition at line 152 of file MueLu_Constraint_def.hpp.

◆ A

Definition at line 154 of file MueLu_Constraint_def.hpp.

◆ blocks

Definition at line 155 of file MueLu_Constraint_def.hpp.

◆ maxBlocksize

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
LocalOrdinal MueLu::BlockInverseFunctor< Scalar, LocalOrdinal, GlobalOrdinal, Node >::maxBlocksize
private

Definition at line 156 of file MueLu_Constraint_def.hpp.

◆ invA

Definition at line 157 of file MueLu_Constraint_def.hpp.

◆ singular

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
Kokkos::View<bool*, memory_space> MueLu::BlockInverseFunctor< Scalar, LocalOrdinal, GlobalOrdinal, Node >::singular
private

Definition at line 158 of file MueLu_Constraint_def.hpp.


The documentation for this class was generated from the following file: