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

Container class for mesh layout and indices calculation. More...

#include <MueLu_IndexManager_kokkos_decl.hpp>

Inheritance diagram for MueLu::IndexManager_kokkos< LocalOrdinal, GlobalOrdinal, Node >:
MueLu::BaseClass MueLu::VerboseObject MueLu::Describable

Public Types

using execution_space = typename Node::execution_space
 
using memory_space = typename Node::memory_space
 
using device_type = Kokkos::Device<execution_space, memory_space>
 
using intTupleView = typename Kokkos::View<int[3], device_type>
 
using LOTupleView = typename Kokkos::View<LO[3], device_type>
 

Public Member Functions

 IndexManager_kokkos ()=default
 Default constructor, return empty object.
 
 IndexManager_kokkos (const int NumDimensions, const int interpolationOrder, const int MyRank, const ArrayView< const LO > LFineNodesPerDir, const ArrayView< const int > CoarseRate)
 Constructs for uncoupled meshes.
 
virtual ~IndexManager_kokkos ()
 
void setupIM (const int NumDimensions, const int interpolationOrder, const ArrayView< const int > coarseRate, const ArrayView< const LO > LFineNodesPerDir)
 Common setup pattern used for all the different types of undelying mesh.
 
void computeMeshParameters ()
 
int getNumDimensions () const
 
int getInterpolationOrder () const
 
LO getNumLocalFineNodes () const
 
LO getNumCoarseNodes () const
 
KOKKOS_INLINE_FUNCTION intTupleView getCoarseningRates () const
 
KOKKOS_INLINE_FUNCTION intTupleView getCoarseningEndRates () const
 
KOKKOS_INLINE_FUNCTION LOTupleView getLocalFineNodesPerDir () const
 
KOKKOS_INLINE_FUNCTION LOTupleView getCoarseNodesPerDir () const
 
Array< LO > getCoarseNodesPerDirArray () const
 
KOKKOS_INLINE_FUNCTION void getFineLID2FineTuple (const LO myLID, LO(&tuple)[3]) const
 
KOKKOS_INLINE_FUNCTION void getFineTuple2FineLID (const LO tuple[3], LO &myLID) const
 
KOKKOS_INLINE_FUNCTION void getCoarseLID2CoarseTuple (const LO myLID, LO(&tuple)[3]) const
 
KOKKOS_INLINE_FUNCTION void getCoarseTuple2CoarseLID (const LO i, const LO j, const LO k, LO &myLID) const
 
- Public Member Functions inherited from MueLu::BaseClass
virtual ~BaseClass ()
 Destructor.
 
- Public Member Functions inherited from MueLu::VerboseObject
 VerboseObject ()
 
virtual ~VerboseObject ()
 Destructor.
 
VerbLevel GetVerbLevel () const
 Get the verbosity level.
 
void SetVerbLevel (const VerbLevel verbLevel)
 Set the verbosity level of this object.
 
int GetProcRankVerbose () const
 Get proc rank used for printing. Do not use this information for any other purpose.
 
int SetProcRankVerbose (int procRank) const
 Set proc rank used for printing.
 
bool IsPrint (MsgType type, int thisProcRankOnly=-1) const
 Find out whether we need to print out information for a specific message type.
 
Teuchos::FancyOStream & GetOStream (MsgType type, int thisProcRankOnly=0) const
 Get an output stream for outputting the input message type.
 
Teuchos::FancyOStream & GetBlackHole () const
 
- Public Member Functions inherited from MueLu::Describable
virtual ~Describable ()
 Destructor.
 
virtual void describe (Teuchos::FancyOStream &out_arg, const VerbLevel verbLevel=Default) const
 
virtual std::string description () const
 Return a simple one-line description of this object.
 
void describe (Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel=Teuchos::Describable::verbLevel_default) const
 Print the object with some verbosity level to an FancyOStream object.
 
virtual std::string ShortClassName () const
 Return the class name of the object, without template parameters and without namespace.
 

Private Attributes

const int meshLayout = UNCOUPLED
 
int myRank = -1
 
int numDimensions
 Number of spacial dimensions in the problem.
 
int interpolationOrder_
 Interpolation order used by grid transfer operators using these aggregates.
 
intTupleView coarseRate
 coarsening rate in each direction
 
intTupleView endRate
 adapted coarsening rate at the edge of the mesh in each direction.
 
LO lNumFineNodes
 local number of nodes.
 
LO lNumFineNodes10
 local number of nodes per 0-1 slice.
 
LOTupleView lFineNodesPerDir
 local number of nodes per direction.
 
LO numCoarseNodes
 local number of nodes remaining after coarsening.
 
LO numCoarseNodes10
 local number of nodes per 0-1 slice remaining after coarsening.
 
LOTupleView coarseNodesPerDir
 local number of nodes per direction remaing after coarsening.
 

Additional Inherited Members

- Static Public Member Functions inherited from MueLu::VerboseObject
static void SetDefaultVerbLevel (const VerbLevel defaultVerbLevel)
 Set the default (global) verbosity level.
 
static VerbLevel GetDefaultVerbLevel ()
 Get the default (global) verbosity level.
 
static void SetMueLuOStream (const Teuchos::RCP< Teuchos::FancyOStream > &mueluOStream)
 
static void SetMueLuOFileStream (const std::string &filename)
 
static Teuchos::RCP< Teuchos::FancyOStream > GetMueLuOStream ()
 

Detailed Description

template<class LocalOrdinal, class GlobalOrdinal, class Node>
class MueLu::IndexManager_kokkos< LocalOrdinal, GlobalOrdinal, Node >

Container class for mesh layout and indices calculation.

Structure holding mesh parameters for structured mesh. Based on these parameters the IndexManager_kokkos computes indices in different index spaces and it also provides utilites for coarsening.

Definition at line 81 of file MueLu_IndexManager_kokkos_decl.hpp.

Member Typedef Documentation

◆ execution_space

template<class LocalOrdinal , class GlobalOrdinal , class Node >
using MueLu::IndexManager_kokkos< LocalOrdinal, GlobalOrdinal, Node >::execution_space = typename Node::execution_space

Definition at line 86 of file MueLu_IndexManager_kokkos_decl.hpp.

◆ memory_space

template<class LocalOrdinal , class GlobalOrdinal , class Node >
using MueLu::IndexManager_kokkos< LocalOrdinal, GlobalOrdinal, Node >::memory_space = typename Node::memory_space

Definition at line 87 of file MueLu_IndexManager_kokkos_decl.hpp.

◆ device_type

template<class LocalOrdinal , class GlobalOrdinal , class Node >
using MueLu::IndexManager_kokkos< LocalOrdinal, GlobalOrdinal, Node >::device_type = Kokkos::Device<execution_space, memory_space>

Definition at line 88 of file MueLu_IndexManager_kokkos_decl.hpp.

◆ intTupleView

template<class LocalOrdinal , class GlobalOrdinal , class Node >
using MueLu::IndexManager_kokkos< LocalOrdinal, GlobalOrdinal, Node >::intTupleView = typename Kokkos::View<int[3], device_type>

Definition at line 89 of file MueLu_IndexManager_kokkos_decl.hpp.

◆ LOTupleView

template<class LocalOrdinal , class GlobalOrdinal , class Node >
using MueLu::IndexManager_kokkos< LocalOrdinal, GlobalOrdinal, Node >::LOTupleView = typename Kokkos::View<LO[3], device_type>

Definition at line 90 of file MueLu_IndexManager_kokkos_decl.hpp.

Constructor & Destructor Documentation

◆ IndexManager_kokkos() [1/2]

template<class LocalOrdinal , class GlobalOrdinal , class Node >
MueLu::IndexManager_kokkos< LocalOrdinal, GlobalOrdinal, Node >::IndexManager_kokkos ( )
default

Default constructor, return empty object.

◆ IndexManager_kokkos() [2/2]

template<class LocalOrdinal , class GlobalOrdinal , class Node >
MueLu::IndexManager_kokkos< LocalOrdinal, GlobalOrdinal, Node >::IndexManager_kokkos ( const int NumDimensions,
const int interpolationOrder,
const int MyRank,
const ArrayView< const LO > LFineNodesPerDir,
const ArrayView< const int > CoarseRate )

Constructs for uncoupled meshes.

Definition at line 68 of file MueLu_IndexManager_kokkos_def.hpp.

◆ ~IndexManager_kokkos()

template<class LocalOrdinal , class GlobalOrdinal , class Node >
virtual MueLu::IndexManager_kokkos< LocalOrdinal, GlobalOrdinal, Node >::~IndexManager_kokkos ( )
inlinevirtual

Definition at line 121 of file MueLu_IndexManager_kokkos_decl.hpp.

Member Function Documentation

◆ setupIM()

template<class LocalOrdinal , class GlobalOrdinal , class Node >
void MueLu::IndexManager_kokkos< LocalOrdinal, GlobalOrdinal, Node >::setupIM ( const int NumDimensions,
const int interpolationOrder,
const ArrayView< const int > coarseRate,
const ArrayView< const LO > LFineNodesPerDir )

Common setup pattern used for all the different types of undelying mesh.

Definition at line 96 of file MueLu_IndexManager_kokkos_def.hpp.

◆ computeMeshParameters()

template<class LocalOrdinal , class GlobalOrdinal , class Node >
void MueLu::IndexManager_kokkos< LocalOrdinal, GlobalOrdinal, Node >::computeMeshParameters ( )

Sets basic parameters used to compute indices on the mesh. This method requires you to have set this->coarseRate.

Definition at line 135 of file MueLu_IndexManager_kokkos_def.hpp.

◆ getNumDimensions()

template<class LocalOrdinal , class GlobalOrdinal , class Node >
int MueLu::IndexManager_kokkos< LocalOrdinal, GlobalOrdinal, Node >::getNumDimensions ( ) const
inline

Definition at line 133 of file MueLu_IndexManager_kokkos_decl.hpp.

◆ getInterpolationOrder()

template<class LocalOrdinal , class GlobalOrdinal , class Node >
int MueLu::IndexManager_kokkos< LocalOrdinal, GlobalOrdinal, Node >::getInterpolationOrder ( ) const
inline

Definition at line 135 of file MueLu_IndexManager_kokkos_decl.hpp.

◆ getNumLocalFineNodes()

template<class LocalOrdinal , class GlobalOrdinal , class Node >
LO MueLu::IndexManager_kokkos< LocalOrdinal, GlobalOrdinal, Node >::getNumLocalFineNodes ( ) const
inline

Definition at line 137 of file MueLu_IndexManager_kokkos_decl.hpp.

◆ getNumCoarseNodes()

template<class LocalOrdinal , class GlobalOrdinal , class Node >
LO MueLu::IndexManager_kokkos< LocalOrdinal, GlobalOrdinal, Node >::getNumCoarseNodes ( ) const
inline

Definition at line 139 of file MueLu_IndexManager_kokkos_decl.hpp.

◆ getCoarseningRates()

template<class LocalOrdinal , class GlobalOrdinal , class Node >
KOKKOS_INLINE_FUNCTION intTupleView MueLu::IndexManager_kokkos< LocalOrdinal, GlobalOrdinal, Node >::getCoarseningRates ( ) const
inline

Definition at line 142 of file MueLu_IndexManager_kokkos_decl.hpp.

◆ getCoarseningEndRates()

template<class LocalOrdinal , class GlobalOrdinal , class Node >
KOKKOS_INLINE_FUNCTION intTupleView MueLu::IndexManager_kokkos< LocalOrdinal, GlobalOrdinal, Node >::getCoarseningEndRates ( ) const
inline

Definition at line 145 of file MueLu_IndexManager_kokkos_decl.hpp.

◆ getLocalFineNodesPerDir()

template<class LocalOrdinal , class GlobalOrdinal , class Node >
KOKKOS_INLINE_FUNCTION LOTupleView MueLu::IndexManager_kokkos< LocalOrdinal, GlobalOrdinal, Node >::getLocalFineNodesPerDir ( ) const
inline

Definition at line 148 of file MueLu_IndexManager_kokkos_decl.hpp.

◆ getCoarseNodesPerDir()

template<class LocalOrdinal , class GlobalOrdinal , class Node >
KOKKOS_INLINE_FUNCTION LOTupleView MueLu::IndexManager_kokkos< LocalOrdinal, GlobalOrdinal, Node >::getCoarseNodesPerDir ( ) const
inline

Definition at line 151 of file MueLu_IndexManager_kokkos_decl.hpp.

◆ getCoarseNodesPerDirArray()

template<class LocalOrdinal , class GlobalOrdinal , class Node >
Array< LocalOrdinal > MueLu::IndexManager_kokkos< LocalOrdinal, GlobalOrdinal, Node >::getCoarseNodesPerDirArray ( ) const

Definition at line 218 of file MueLu_IndexManager_kokkos_def.hpp.

◆ getFineLID2FineTuple()

template<class LocalOrdinal , class GlobalOrdinal , class Node >
KOKKOS_INLINE_FUNCTION void MueLu::IndexManager_kokkos< LocalOrdinal, GlobalOrdinal, Node >::getFineLID2FineTuple ( const LO myLID,
LO(&) tuple[3] ) const
inline

Definition at line 156 of file MueLu_IndexManager_kokkos_decl.hpp.

◆ getFineTuple2FineLID()

template<class LocalOrdinal , class GlobalOrdinal , class Node >
KOKKOS_INLINE_FUNCTION void MueLu::IndexManager_kokkos< LocalOrdinal, GlobalOrdinal, Node >::getFineTuple2FineLID ( const LO tuple[3],
LO & myLID ) const
inline

Definition at line 165 of file MueLu_IndexManager_kokkos_decl.hpp.

◆ getCoarseLID2CoarseTuple()

template<class LocalOrdinal , class GlobalOrdinal , class Node >
KOKKOS_INLINE_FUNCTION void MueLu::IndexManager_kokkos< LocalOrdinal, GlobalOrdinal, Node >::getCoarseLID2CoarseTuple ( const LO myLID,
LO(&) tuple[3] ) const
inline

Definition at line 170 of file MueLu_IndexManager_kokkos_decl.hpp.

◆ getCoarseTuple2CoarseLID()

template<class LocalOrdinal , class GlobalOrdinal , class Node >
KOKKOS_INLINE_FUNCTION void MueLu::IndexManager_kokkos< LocalOrdinal, GlobalOrdinal, Node >::getCoarseTuple2CoarseLID ( const LO i,
const LO j,
const LO k,
LO & myLID ) const
inline

Definition at line 179 of file MueLu_IndexManager_kokkos_decl.hpp.

Member Data Documentation

◆ meshLayout

template<class LocalOrdinal , class GlobalOrdinal , class Node >
const int MueLu::IndexManager_kokkos< LocalOrdinal, GlobalOrdinal, Node >::meshLayout = UNCOUPLED
private

Definition at line 94 of file MueLu_IndexManager_kokkos_decl.hpp.

◆ myRank

template<class LocalOrdinal , class GlobalOrdinal , class Node >
int MueLu::IndexManager_kokkos< LocalOrdinal, GlobalOrdinal, Node >::myRank = -1
private

Definition at line 95 of file MueLu_IndexManager_kokkos_decl.hpp.

◆ numDimensions

template<class LocalOrdinal , class GlobalOrdinal , class Node >
int MueLu::IndexManager_kokkos< LocalOrdinal, GlobalOrdinal, Node >::numDimensions
private

Number of spacial dimensions in the problem.

Definition at line 96 of file MueLu_IndexManager_kokkos_decl.hpp.

◆ interpolationOrder_

template<class LocalOrdinal , class GlobalOrdinal , class Node >
int MueLu::IndexManager_kokkos< LocalOrdinal, GlobalOrdinal, Node >::interpolationOrder_
private

Interpolation order used by grid transfer operators using these aggregates.

Definition at line 97 of file MueLu_IndexManager_kokkos_decl.hpp.

◆ coarseRate

template<class LocalOrdinal , class GlobalOrdinal , class Node >
intTupleView MueLu::IndexManager_kokkos< LocalOrdinal, GlobalOrdinal, Node >::coarseRate
private

coarsening rate in each direction

Definition at line 98 of file MueLu_IndexManager_kokkos_decl.hpp.

◆ endRate

template<class LocalOrdinal , class GlobalOrdinal , class Node >
intTupleView MueLu::IndexManager_kokkos< LocalOrdinal, GlobalOrdinal, Node >::endRate
private

adapted coarsening rate at the edge of the mesh in each direction.

Definition at line 99 of file MueLu_IndexManager_kokkos_decl.hpp.

◆ lNumFineNodes

template<class LocalOrdinal , class GlobalOrdinal , class Node >
LO MueLu::IndexManager_kokkos< LocalOrdinal, GlobalOrdinal, Node >::lNumFineNodes
private

local number of nodes.

Definition at line 101 of file MueLu_IndexManager_kokkos_decl.hpp.

◆ lNumFineNodes10

template<class LocalOrdinal , class GlobalOrdinal , class Node >
LO MueLu::IndexManager_kokkos< LocalOrdinal, GlobalOrdinal, Node >::lNumFineNodes10
private

local number of nodes per 0-1 slice.

Definition at line 102 of file MueLu_IndexManager_kokkos_decl.hpp.

◆ lFineNodesPerDir

template<class LocalOrdinal , class GlobalOrdinal , class Node >
LOTupleView MueLu::IndexManager_kokkos< LocalOrdinal, GlobalOrdinal, Node >::lFineNodesPerDir
private

local number of nodes per direction.

Definition at line 103 of file MueLu_IndexManager_kokkos_decl.hpp.

◆ numCoarseNodes

template<class LocalOrdinal , class GlobalOrdinal , class Node >
LO MueLu::IndexManager_kokkos< LocalOrdinal, GlobalOrdinal, Node >::numCoarseNodes
private

local number of nodes remaining after coarsening.

Definition at line 105 of file MueLu_IndexManager_kokkos_decl.hpp.

◆ numCoarseNodes10

template<class LocalOrdinal , class GlobalOrdinal , class Node >
LO MueLu::IndexManager_kokkos< LocalOrdinal, GlobalOrdinal, Node >::numCoarseNodes10
private

local number of nodes per 0-1 slice remaining after coarsening.

Definition at line 106 of file MueLu_IndexManager_kokkos_decl.hpp.

◆ coarseNodesPerDir

template<class LocalOrdinal , class GlobalOrdinal , class Node >
LOTupleView MueLu::IndexManager_kokkos< LocalOrdinal, GlobalOrdinal, Node >::coarseNodesPerDir
private

local number of nodes per direction remaing after coarsening.

Definition at line 107 of file MueLu_IndexManager_kokkos_decl.hpp.


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