MueLu  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
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

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.

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.

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.

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.

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.

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

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

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

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.

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.

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.

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.

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: