MueLu Version of the Day
Loading...
Searching...
No Matches
MueLu::BoundaryDetection::VectorDirichletFunctor< local_matrix_type, useGreedyDirichlet > Class Template Reference

Functor for marking nodes as Dirichlet in a block operator. More...

#include <MueLu_BoundaryDetection.hpp>

Public Member Functions

 VectorDirichletFunctor (local_matrix_type &A_, local_ordinal_type blockSize_, boundary_nodes_view boundaryNodes_, magnitudeType dirichletThreshold_, local_ordinal_type dirichletNonzeroThreshold_)
KOKKOS_FORCEINLINE_FUNCTION void operator() (const local_ordinal_type rblid) const

Private Types

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 ATS = Kokkos::ArithTraits<scalar_type>
using magnitudeType = typename ATS::magnitudeType
using boundary_nodes_view = Kokkos::View<bool*, memory_space>

Private Attributes

local_matrix_type A
local_ordinal_type blockSize
boundary_nodes_view boundaryNodes
magnitudeType dirichletThreshold
local_ordinal_type dirichletNonzeroThreshold

Detailed Description

template<class local_matrix_type, bool useGreedyDirichlet>
class MueLu::BoundaryDetection::VectorDirichletFunctor< local_matrix_type, useGreedyDirichlet >

Functor for marking nodes as Dirichlet in a block operator.

Assumes a single fixed block size specified by blockSize. Marks blocks as Dirichlet when one row is Dirichlet (useGreedyDirichlet==true) or when all rows are Dirichlet (useGreedyDirichlet==false). A row is marked as Dirichlet boundary if fewer than dirichletNonzeroThreshold entries are larger in absolute value than dirichletThreshold. It is assumed that boundaryNodes was initialized to false.

Definition at line 84 of file MueLu_BoundaryDetection.hpp.

Member Typedef Documentation

◆ scalar_type

template<class local_matrix_type, bool useGreedyDirichlet>
using MueLu::BoundaryDetection::VectorDirichletFunctor< local_matrix_type, useGreedyDirichlet >::scalar_type = typename local_matrix_type::value_type
private

Definition at line 86 of file MueLu_BoundaryDetection.hpp.

◆ local_ordinal_type

template<class local_matrix_type, bool useGreedyDirichlet>
using MueLu::BoundaryDetection::VectorDirichletFunctor< local_matrix_type, useGreedyDirichlet >::local_ordinal_type = typename local_matrix_type::ordinal_type
private

Definition at line 87 of file MueLu_BoundaryDetection.hpp.

◆ memory_space

template<class local_matrix_type, bool useGreedyDirichlet>
using MueLu::BoundaryDetection::VectorDirichletFunctor< local_matrix_type, useGreedyDirichlet >::memory_space = typename local_matrix_type::memory_space
private

Definition at line 88 of file MueLu_BoundaryDetection.hpp.

◆ ATS

template<class local_matrix_type, bool useGreedyDirichlet>
using MueLu::BoundaryDetection::VectorDirichletFunctor< local_matrix_type, useGreedyDirichlet >::ATS = Kokkos::ArithTraits<scalar_type>
private

Definition at line 90 of file MueLu_BoundaryDetection.hpp.

◆ magnitudeType

template<class local_matrix_type, bool useGreedyDirichlet>
using MueLu::BoundaryDetection::VectorDirichletFunctor< local_matrix_type, useGreedyDirichlet >::magnitudeType = typename ATS::magnitudeType
private

Definition at line 91 of file MueLu_BoundaryDetection.hpp.

◆ boundary_nodes_view

template<class local_matrix_type, bool useGreedyDirichlet>
using MueLu::BoundaryDetection::VectorDirichletFunctor< local_matrix_type, useGreedyDirichlet >::boundary_nodes_view = Kokkos::View<bool*, memory_space>
private

Definition at line 92 of file MueLu_BoundaryDetection.hpp.

Constructor & Destructor Documentation

◆ VectorDirichletFunctor()

template<class local_matrix_type, bool useGreedyDirichlet>
MueLu::BoundaryDetection::VectorDirichletFunctor< local_matrix_type, useGreedyDirichlet >::VectorDirichletFunctor ( local_matrix_type & A_,
local_ordinal_type blockSize_,
boundary_nodes_view boundaryNodes_,
magnitudeType dirichletThreshold_,
local_ordinal_type dirichletNonzeroThreshold_ )
inline

Definition at line 101 of file MueLu_BoundaryDetection.hpp.

Member Function Documentation

◆ operator()()

template<class local_matrix_type, bool useGreedyDirichlet>
KOKKOS_FORCEINLINE_FUNCTION void MueLu::BoundaryDetection::VectorDirichletFunctor< local_matrix_type, useGreedyDirichlet >::operator() ( const local_ordinal_type rblid) const
inline

Definition at line 109 of file MueLu_BoundaryDetection.hpp.

Member Data Documentation

◆ A

template<class local_matrix_type, bool useGreedyDirichlet>
local_matrix_type MueLu::BoundaryDetection::VectorDirichletFunctor< local_matrix_type, useGreedyDirichlet >::A
private

Definition at line 94 of file MueLu_BoundaryDetection.hpp.

◆ blockSize

template<class local_matrix_type, bool useGreedyDirichlet>
local_ordinal_type MueLu::BoundaryDetection::VectorDirichletFunctor< local_matrix_type, useGreedyDirichlet >::blockSize
private

Definition at line 95 of file MueLu_BoundaryDetection.hpp.

◆ boundaryNodes

template<class local_matrix_type, bool useGreedyDirichlet>
boundary_nodes_view MueLu::BoundaryDetection::VectorDirichletFunctor< local_matrix_type, useGreedyDirichlet >::boundaryNodes
private

Definition at line 96 of file MueLu_BoundaryDetection.hpp.

◆ dirichletThreshold

template<class local_matrix_type, bool useGreedyDirichlet>
magnitudeType MueLu::BoundaryDetection::VectorDirichletFunctor< local_matrix_type, useGreedyDirichlet >::dirichletThreshold
private

Definition at line 97 of file MueLu_BoundaryDetection.hpp.

◆ dirichletNonzeroThreshold

template<class local_matrix_type, bool useGreedyDirichlet>
local_ordinal_type MueLu::BoundaryDetection::VectorDirichletFunctor< local_matrix_type, useGreedyDirichlet >::dirichletNonzeroThreshold
private

Definition at line 98 of file MueLu_BoundaryDetection.hpp.


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