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

Classical dropping criterion. More...

#include <MueLu_ClassicalDropping.hpp>

Public Types

using matrix_type = Xpetra::Matrix<Scalar, LocalOrdinal, GlobalOrdinal, Node>
using diag_vec_type = Xpetra::MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>
using local_matrix_type = typename matrix_type::local_matrix_device_type
using scalar_type = typename local_matrix_type::value_type
using local_ordinal_type = typename local_matrix_type::ordinal_type
using memory_space = typename local_matrix_type::memory_space
using diag_view_type = typename Kokkos::DualView<const scalar_type*, Kokkos::LayoutStride, typename Node::device_type, Kokkos::MemoryUnmanaged>::t_dev
using results_view = Kokkos::View<DecisionType*, memory_space>
using ATS = Kokkos::ArithTraits<scalar_type>
using magnitudeType = typename ATS::magnitudeType
using mATS = Kokkos::ArithTraits<magnitudeType>
using boundary_nodes_view = Kokkos::View<const bool*, memory_space>

Public Member Functions

 DropFunctor (matrix_type &A_, magnitudeType threshold, results_view &results_)
KOKKOS_FORCEINLINE_FUNCTION void operator() (const local_ordinal_type rlid) const

Private Attributes

local_matrix_type A
Teuchos::RCP< diag_vec_typediagVec
diag_view_type diag
magnitudeType eps
results_view results

Detailed Description

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node, Misc::StrengthMeasure measure>
class MueLu::ClassicalDropping::DropFunctor< Scalar, LocalOrdinal, GlobalOrdinal, Node, measure >

Classical dropping criterion.

Depending on the value of measure evaluates the dropping criterion

SmoothedAggregationMeasure

\[\frac{|A_{ij}|^2}{|A_{ii}| |A_{jj}|} \le \theta^2 \]

SignedRugeStuebenMeasure

\[\frac{-\operatorname{Re}A_{ij}}{| max_j -A_{ij}|} \le \theta \]

SignedSmoothedAggregationMeasure

\[\frac{-\operatorname{sign}(A_{ij}) |A_{ij}|^2}{|A_{ii}| |A_{jj}|} \le \theta^2 \]

Definition at line 50 of file MueLu_ClassicalDropping.hpp.

Member Typedef Documentation

◆ matrix_type

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node, Misc::StrengthMeasure measure>
using MueLu::ClassicalDropping::DropFunctor< Scalar, LocalOrdinal, GlobalOrdinal, Node, measure >::matrix_type = Xpetra::Matrix<Scalar, LocalOrdinal, GlobalOrdinal, Node>

Definition at line 52 of file MueLu_ClassicalDropping.hpp.

◆ diag_vec_type

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node, Misc::StrengthMeasure measure>
using MueLu::ClassicalDropping::DropFunctor< Scalar, LocalOrdinal, GlobalOrdinal, Node, measure >::diag_vec_type = Xpetra::MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>

Definition at line 53 of file MueLu_ClassicalDropping.hpp.

◆ local_matrix_type

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node, Misc::StrengthMeasure measure>
using MueLu::ClassicalDropping::DropFunctor< Scalar, LocalOrdinal, GlobalOrdinal, Node, measure >::local_matrix_type = typename matrix_type::local_matrix_device_type

Definition at line 54 of file MueLu_ClassicalDropping.hpp.

◆ scalar_type

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node, Misc::StrengthMeasure measure>
using MueLu::ClassicalDropping::DropFunctor< Scalar, LocalOrdinal, GlobalOrdinal, Node, measure >::scalar_type = typename local_matrix_type::value_type

Definition at line 55 of file MueLu_ClassicalDropping.hpp.

◆ local_ordinal_type

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node, Misc::StrengthMeasure measure>
using MueLu::ClassicalDropping::DropFunctor< Scalar, LocalOrdinal, GlobalOrdinal, Node, measure >::local_ordinal_type = typename local_matrix_type::ordinal_type

Definition at line 56 of file MueLu_ClassicalDropping.hpp.

◆ memory_space

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node, Misc::StrengthMeasure measure>
using MueLu::ClassicalDropping::DropFunctor< Scalar, LocalOrdinal, GlobalOrdinal, Node, measure >::memory_space = typename local_matrix_type::memory_space

Definition at line 57 of file MueLu_ClassicalDropping.hpp.

◆ diag_view_type

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node, Misc::StrengthMeasure measure>
using MueLu::ClassicalDropping::DropFunctor< Scalar, LocalOrdinal, GlobalOrdinal, Node, measure >::diag_view_type = typename Kokkos::DualView<const scalar_type*, Kokkos::LayoutStride, typename Node::device_type, Kokkos::MemoryUnmanaged>::t_dev

Definition at line 58 of file MueLu_ClassicalDropping.hpp.

◆ results_view

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node, Misc::StrengthMeasure measure>
using MueLu::ClassicalDropping::DropFunctor< Scalar, LocalOrdinal, GlobalOrdinal, Node, measure >::results_view = Kokkos::View<DecisionType*, memory_space>

Definition at line 60 of file MueLu_ClassicalDropping.hpp.

◆ ATS

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node, Misc::StrengthMeasure measure>
using MueLu::ClassicalDropping::DropFunctor< Scalar, LocalOrdinal, GlobalOrdinal, Node, measure >::ATS = Kokkos::ArithTraits<scalar_type>

Definition at line 65 of file MueLu_ClassicalDropping.hpp.

◆ magnitudeType

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node, Misc::StrengthMeasure measure>
using MueLu::ClassicalDropping::DropFunctor< Scalar, LocalOrdinal, GlobalOrdinal, Node, measure >::magnitudeType = typename ATS::magnitudeType

Definition at line 67 of file MueLu_ClassicalDropping.hpp.

◆ mATS

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node, Misc::StrengthMeasure measure>
using MueLu::ClassicalDropping::DropFunctor< Scalar, LocalOrdinal, GlobalOrdinal, Node, measure >::mATS = Kokkos::ArithTraits<magnitudeType>

Definition at line 71 of file MueLu_ClassicalDropping.hpp.

◆ boundary_nodes_view

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node, Misc::StrengthMeasure measure>
using MueLu::ClassicalDropping::DropFunctor< Scalar, LocalOrdinal, GlobalOrdinal, Node, measure >::boundary_nodes_view = Kokkos::View<const bool*, memory_space>

Definition at line 73 of file MueLu_ClassicalDropping.hpp.

Constructor & Destructor Documentation

◆ DropFunctor()

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node, Misc::StrengthMeasure measure>
MueLu::ClassicalDropping::DropFunctor< Scalar, LocalOrdinal, GlobalOrdinal, Node, measure >::DropFunctor ( matrix_type & A_,
magnitudeType threshold,
results_view & results_ )
inline

Definition at line 83 of file MueLu_ClassicalDropping.hpp.

Member Function Documentation

◆ operator()()

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node, Misc::StrengthMeasure measure>
KOKKOS_FORCEINLINE_FUNCTION void MueLu::ClassicalDropping::DropFunctor< Scalar, LocalOrdinal, GlobalOrdinal, Node, measure >::operator() ( const local_ordinal_type rlid) const
inline

Definition at line 100 of file MueLu_ClassicalDropping.hpp.

Member Data Documentation

◆ A

◆ diagVec

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node, Misc::StrengthMeasure measure>
Teuchos::RCP<diag_vec_type> MueLu::ClassicalDropping::DropFunctor< Scalar, LocalOrdinal, GlobalOrdinal, Node, measure >::diagVec
private

Definition at line 77 of file MueLu_ClassicalDropping.hpp.

◆ diag

Definition at line 78 of file MueLu_ClassicalDropping.hpp.

◆ eps

Definition at line 79 of file MueLu_ClassicalDropping.hpp.

◆ results

Definition at line 80 of file MueLu_ClassicalDropping.hpp.


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