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

Drops entries the unscaled distance Laplacian. More...

#include <MueLu_DistanceLaplacianDropping.hpp>

Public Member Functions

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

Private Types

using matrix_type = Xpetra::Matrix<Scalar, LocalOrdinal, GlobalOrdinal, Node>
using local_matrix_type = typename matrix_type::local_matrix_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_vec_type = Xpetra::MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>
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 boundary_nodes_view = Kokkos::View<const bool*, memory_space>

Private Attributes

local_matrix_type A
magnitudeType eps
Teuchos::RCP< diag_vec_typediagVec
diag_view_type diag
DistanceFunctorType dist2
results_view results
const scalar_type one = ATS::one()

Detailed Description

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node, class DistanceFunctorType>
class MueLu::DistanceLaplacian::DropFunctor< Scalar, LocalOrdinal, GlobalOrdinal, Node, DistanceFunctorType >

Drops entries the unscaled distance Laplacian.

Evaluates the dropping criterion

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

where \(d_{ij}\) is a distance metric.

Definition at line 355 of file MueLu_DistanceLaplacianDropping.hpp.

Member Typedef Documentation

◆ matrix_type

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node, class DistanceFunctorType>
using MueLu::DistanceLaplacian::DropFunctor< Scalar, LocalOrdinal, GlobalOrdinal, Node, DistanceFunctorType >::matrix_type = Xpetra::Matrix<Scalar, LocalOrdinal, GlobalOrdinal, Node>
private

Definition at line 357 of file MueLu_DistanceLaplacianDropping.hpp.

◆ local_matrix_type

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node, class DistanceFunctorType>
using MueLu::DistanceLaplacian::DropFunctor< Scalar, LocalOrdinal, GlobalOrdinal, Node, DistanceFunctorType >::local_matrix_type = typename matrix_type::local_matrix_type
private

Definition at line 358 of file MueLu_DistanceLaplacianDropping.hpp.

◆ scalar_type

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node, class DistanceFunctorType>
using MueLu::DistanceLaplacian::DropFunctor< Scalar, LocalOrdinal, GlobalOrdinal, Node, DistanceFunctorType >::scalar_type = typename local_matrix_type::value_type
private

Definition at line 359 of file MueLu_DistanceLaplacianDropping.hpp.

◆ local_ordinal_type

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node, class DistanceFunctorType>
using MueLu::DistanceLaplacian::DropFunctor< Scalar, LocalOrdinal, GlobalOrdinal, Node, DistanceFunctorType >::local_ordinal_type = typename local_matrix_type::ordinal_type
private

Definition at line 360 of file MueLu_DistanceLaplacianDropping.hpp.

◆ memory_space

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node, class DistanceFunctorType>
using MueLu::DistanceLaplacian::DropFunctor< Scalar, LocalOrdinal, GlobalOrdinal, Node, DistanceFunctorType >::memory_space = typename local_matrix_type::memory_space
private

Definition at line 361 of file MueLu_DistanceLaplacianDropping.hpp.

◆ diag_vec_type

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node, class DistanceFunctorType>
using MueLu::DistanceLaplacian::DropFunctor< Scalar, LocalOrdinal, GlobalOrdinal, Node, DistanceFunctorType >::diag_vec_type = Xpetra::MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>
private

Definition at line 362 of file MueLu_DistanceLaplacianDropping.hpp.

◆ diag_view_type

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node, class DistanceFunctorType>
using MueLu::DistanceLaplacian::DropFunctor< Scalar, LocalOrdinal, GlobalOrdinal, Node, DistanceFunctorType >::diag_view_type = typename Kokkos::DualView<const scalar_type*, Kokkos::LayoutStride, typename Node::device_type, Kokkos::MemoryUnmanaged>::t_dev
private

Definition at line 363 of file MueLu_DistanceLaplacianDropping.hpp.

◆ results_view

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node, class DistanceFunctorType>
using MueLu::DistanceLaplacian::DropFunctor< Scalar, LocalOrdinal, GlobalOrdinal, Node, DistanceFunctorType >::results_view = Kokkos::View<DecisionType*, memory_space>
private

Definition at line 365 of file MueLu_DistanceLaplacianDropping.hpp.

◆ ATS

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node, class DistanceFunctorType>
using MueLu::DistanceLaplacian::DropFunctor< Scalar, LocalOrdinal, GlobalOrdinal, Node, DistanceFunctorType >::ATS = Kokkos::ArithTraits<scalar_type>
private

Definition at line 367 of file MueLu_DistanceLaplacianDropping.hpp.

◆ magnitudeType

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node, class DistanceFunctorType>
using MueLu::DistanceLaplacian::DropFunctor< Scalar, LocalOrdinal, GlobalOrdinal, Node, DistanceFunctorType >::magnitudeType = typename ATS::magnitudeType
private

Definition at line 368 of file MueLu_DistanceLaplacianDropping.hpp.

◆ boundary_nodes_view

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node, class DistanceFunctorType>
using MueLu::DistanceLaplacian::DropFunctor< Scalar, LocalOrdinal, GlobalOrdinal, Node, DistanceFunctorType >::boundary_nodes_view = Kokkos::View<const bool*, memory_space>
private

Definition at line 369 of file MueLu_DistanceLaplacianDropping.hpp.

Constructor & Destructor Documentation

◆ DropFunctor()

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node, class DistanceFunctorType>
MueLu::DistanceLaplacian::DropFunctor< Scalar, LocalOrdinal, GlobalOrdinal, Node, DistanceFunctorType >::DropFunctor ( matrix_type & A_,
magnitudeType threshold,
DistanceFunctorType & dist2_,
results_view & results_ )
inline

Definition at line 380 of file MueLu_DistanceLaplacianDropping.hpp.

Member Function Documentation

◆ operator()()

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node, class DistanceFunctorType>
KOKKOS_FORCEINLINE_FUNCTION void MueLu::DistanceLaplacian::DropFunctor< Scalar, LocalOrdinal, GlobalOrdinal, Node, DistanceFunctorType >::operator() ( local_ordinal_type rlid) const
inline

Definition at line 391 of file MueLu_DistanceLaplacianDropping.hpp.

Member Data Documentation

◆ A

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node, class DistanceFunctorType>
local_matrix_type MueLu::DistanceLaplacian::DropFunctor< Scalar, LocalOrdinal, GlobalOrdinal, Node, DistanceFunctorType >::A
private

Definition at line 371 of file MueLu_DistanceLaplacianDropping.hpp.

◆ eps

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node, class DistanceFunctorType>
magnitudeType MueLu::DistanceLaplacian::DropFunctor< Scalar, LocalOrdinal, GlobalOrdinal, Node, DistanceFunctorType >::eps
private

Definition at line 372 of file MueLu_DistanceLaplacianDropping.hpp.

◆ diagVec

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node, class DistanceFunctorType>
Teuchos::RCP<diag_vec_type> MueLu::DistanceLaplacian::DropFunctor< Scalar, LocalOrdinal, GlobalOrdinal, Node, DistanceFunctorType >::diagVec
private

Definition at line 373 of file MueLu_DistanceLaplacianDropping.hpp.

◆ diag

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node, class DistanceFunctorType>
diag_view_type MueLu::DistanceLaplacian::DropFunctor< Scalar, LocalOrdinal, GlobalOrdinal, Node, DistanceFunctorType >::diag
private

Definition at line 374 of file MueLu_DistanceLaplacianDropping.hpp.

◆ dist2

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node, class DistanceFunctorType>
DistanceFunctorType MueLu::DistanceLaplacian::DropFunctor< Scalar, LocalOrdinal, GlobalOrdinal, Node, DistanceFunctorType >::dist2
private

Definition at line 375 of file MueLu_DistanceLaplacianDropping.hpp.

◆ results

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node, class DistanceFunctorType>
results_view MueLu::DistanceLaplacian::DropFunctor< Scalar, LocalOrdinal, GlobalOrdinal, Node, DistanceFunctorType >::results
private

Definition at line 376 of file MueLu_DistanceLaplacianDropping.hpp.

◆ one

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

Definition at line 377 of file MueLu_DistanceLaplacianDropping.hpp.


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