MueLu  Version of the Day
MueLu::LocalPermutationStrategy< Scalar, LocalOrdinal, GlobalOrdinal, Node > Class Template Reference

Local permutation strategy. More...

#include <MueLu_LocalPermutationStrategy_decl.hpp>

Public Member Functions

void BuildPermutation (const Teuchos::RCP< Matrix > &A, const Teuchos::RCP< const Map > permRowMap, Level &currentLevel, const FactoryBase *genFactory) const
 build permutation operators More...
 

Private Member Functions

void BuildPermutations (size_t nDofsPerNode) const
 
GlobalOrdinal getGlobalDofId (const Teuchos::RCP< Matrix > &A, LocalOrdinal localNodeId, LocalOrdinal localDof) const
 
GlobalOrdinal globalDofId2globalNodeId (const Teuchos::RCP< Matrix > &A, GlobalOrdinal grid) const
 

Private Attributes

std::vector< std::vector< int > > result_permvecs_
 
size_t permWidth_
 

Detailed Description

template<class Scalar = double, class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = KokkosClassic::DefaultNode::DefaultNodeType>
class MueLu::LocalPermutationStrategy< Scalar, LocalOrdinal, GlobalOrdinal, Node >

Local permutation strategy.

This class permutes columns of a input matrix A. No inter-node permutations are allowed, only permutations of columns that correspond to DOFs of the same node.

Definition at line 34 of file MueLu_LocalPermutationStrategy_decl.hpp.

Member Function Documentation

◆ BuildPermutation()

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
void LocalPermutationStrategy::BuildPermutation ( const Teuchos::RCP< Matrix > &  A,
const Teuchos::RCP< const Map >  permRowMap,
Level currentLevel,
const FactoryBase genFactory 
) const

build permutation operators

The following variables produced "A" : permuted and scaled A "permA" : permuted A without scaling "permP" : permutation opertor (should be identity) "permQT": transpose permutation operators "permScaling": scaling operator

Parameters
Ainput matrix (input)
permRowMapDof row map permutation shall be restricted on (input)
currentLevelonly for output of variables
genFactoryconst pointer to generating (calling) PermutationFactory // TODO avoid this, not very elegant. Decide which variables have to be generated, give them back per reference to the PermutationFactory.

Definition at line 52 of file MueLu_LocalPermutationStrategy_def.hpp.

◆ BuildPermutations()

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
void LocalPermutationStrategy::BuildPermutations ( size_t  nDofsPerNode) const
private

Definition at line 27 of file MueLu_LocalPermutationStrategy_def.hpp.

◆ getGlobalDofId()

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
GlobalOrdinal LocalPermutationStrategy::getGlobalDofId ( const Teuchos::RCP< Matrix > &  A,
LocalOrdinal  localNodeId,
LocalOrdinal  localDof 
) const
private

Definition at line 320 of file MueLu_LocalPermutationStrategy_def.hpp.

◆ globalDofId2globalNodeId()

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
GlobalOrdinal LocalPermutationStrategy::globalDofId2globalNodeId ( const Teuchos::RCP< Matrix > &  A,
GlobalOrdinal  grid 
) const
private

Definition at line 333 of file MueLu_LocalPermutationStrategy_def.hpp.

Member Data Documentation

◆ result_permvecs_

template<class Scalar = double, class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = KokkosClassic::DefaultNode::DefaultNodeType>
std::vector<std::vector<int> > MueLu::LocalPermutationStrategy< Scalar, LocalOrdinal, GlobalOrdinal, Node >::result_permvecs_
mutableprivate

Definition at line 66 of file MueLu_LocalPermutationStrategy_decl.hpp.

◆ permWidth_

template<class Scalar = double, class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = KokkosClassic::DefaultNode::DefaultNodeType>
size_t MueLu::LocalPermutationStrategy< Scalar, LocalOrdinal, GlobalOrdinal, Node >::permWidth_
mutableprivate

Definition at line 67 of file MueLu_LocalPermutationStrategy_decl.hpp.


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