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

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. More...
 
 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. More...
 
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. More...
 
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< LOgetCoarseNodesPerDirArray () 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. More...
 
- Public Member Functions inherited from MueLu::VerboseObject
VerbLevel GetVerbLevel () const
 Get the verbosity level. More...
 
void SetVerbLevel (const VerbLevel verbLevel)
 Set the verbosity level of this object. More...
 
int GetProcRankVerbose () const
 Get proc rank used for printing. Do not use this information for any other purpose. More...
 
int SetProcRankVerbose (int procRank) const
 Set proc rank used for printing. More...
 
bool IsPrint (MsgType type, int thisProcRankOnly=-1) const
 Find out whether we need to print out information for a specific message type. More...
 
Teuchos::FancyOStreamGetOStream (MsgType type, int thisProcRankOnly=0) const
 Get an output stream for outputting the input message type. More...
 
Teuchos::FancyOStreamGetBlackHole () const
 
 VerboseObject ()
 
virtual ~VerboseObject ()
 Destructor. More...
 
- Public Member Functions inherited from Teuchos::VerboseObject< VerboseObject >
 VerboseObject (const EVerbosityLevel verbLevel=VERB_DEFAULT, const RCP< FancyOStream > &oStream=Teuchos::null)
 
virtual const VerboseObjectsetVerbLevel (const EVerbosityLevel verbLevel) const
 
virtual const VerboseObjectsetOverridingVerbLevel (const EVerbosityLevel verbLevel) const
 
virtual EVerbosityLevel getVerbLevel () const
 
TEUCHOSPARAMETERLIST_LIB_DLL_EXPORT
RCP< const ParameterList
getValidVerboseObjectSublist ()
 
TEUCHOSPARAMETERLIST_LIB_DLL_EXPORT
void 
setupVerboseObjectSublist (ParameterList *paramList)
 
TEUCHOSPARAMETERLIST_LIB_DLL_EXPORT
void 
readVerboseObjectSublist (ParameterList *paramList, RCP< FancyOStream > *oStream, EVerbosityLevel *verbLevel)
 
void readVerboseObjectSublist (ParameterList *paramList, VerboseObject< ObjectType > *verboseObject)
 
- Public Member Functions inherited from Teuchos::VerboseObjectBase
virtual ~VerboseObjectBase ()
 
 VerboseObjectBase (const RCP< FancyOStream > &oStream=Teuchos::null)
 
virtual const VerboseObjectBasesetOStream (const RCP< FancyOStream > &oStream) const
 
virtual const VerboseObjectBasesetOverridingOStream (const RCP< FancyOStream > &oStream) const
 
virtual VerboseObjectBasesetLinePrefix (const std::string &linePrefix)
 
virtual RCP< FancyOStreamgetOStream () const
 
virtual RCP< FancyOStreamgetOverridingOStream () const
 
virtual std::string getLinePrefix () const
 
virtual OSTab getOSTab (const int tabs=1, const std::string &linePrefix="") const
 
- Public Member Functions inherited from MueLu::Describable
virtual ~Describable ()
 Destructor. More...
 
virtual std::string ShortClassName () const
 Return the class name of the object, without template parameters and without namespace. More...
 
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. More...
 
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. More...
 
- Public Member Functions inherited from Teuchos::Describable
void describe (std::ostream &out, const EVerbosityLevel verbLevel=verbLevel_default) const
 
 LabeledObject ()
 
virtual ~LabeledObject ()
 
virtual void setObjectLabel (const std::string &objectLabel)
 
virtual std::string getObjectLabel () const
 
DescribableStreamManipulatorState describe (const Describable &describable, const EVerbosityLevel verbLevel=Describable::verbLevel_default)
 
std::ostream & operator<< (std::ostream &os, const DescribableStreamManipulatorState &d)
 

Private Attributes

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

Additional Inherited Members

- Static Public Member Functions inherited from MueLu::VerboseObject
static void SetMueLuOStream (const Teuchos::RCP< Teuchos::FancyOStream > &mueluOStream)
 
static void SetMueLuOFileStream (const std::string &filename)
 
static Teuchos::RCP
< Teuchos::FancyOStream
GetMueLuOStream ()
 
static void SetDefaultVerbLevel (const VerbLevel defaultVerbLevel)
 Set the default (global) verbosity level. More...
 
static VerbLevel GetDefaultVerbLevel ()
 Get the default (global) verbosity level. More...
 
- Static Public Member Functions inherited from Teuchos::VerboseObject< VerboseObject >
static void setDefaultVerbLevel (const EVerbosityLevel defaultVerbLevel)
 
static EVerbosityLevel getDefaultVerbLevel ()
 
- Static Public Member Functions inherited from Teuchos::VerboseObjectBase
static void setDefaultOStream (const RCP< FancyOStream > &defaultOStream)
 
static RCP< FancyOStreamgetDefaultOStream ()
 
- Static Public Attributes inherited from Teuchos::Describable
static const EVerbosityLevel verbLevel_default
 
- Protected Member Functions inherited from Teuchos::VerboseObject< VerboseObject >
void initializeVerboseObject (const EVerbosityLevel verbLevel=VERB_DEFAULT, const RCP< FancyOStream > &oStream=Teuchos::null)
 
- Protected Member Functions inherited from Teuchos::VerboseObjectBase
void initializeVerboseObjectBase (const RCP< FancyOStream > &oStream=Teuchos::null)
 
virtual void informUpdatedVerbosityState () const
 

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 41 of file MueLu_IndexManager_kokkos_decl.hpp.

Member Typedef Documentation

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

Definition at line 46 of file MueLu_IndexManager_kokkos_decl.hpp.

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

Definition at line 47 of file MueLu_IndexManager_kokkos_decl.hpp.

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 48 of file MueLu_IndexManager_kokkos_decl.hpp.

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 49 of file MueLu_IndexManager_kokkos_decl.hpp.

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 50 of file MueLu_IndexManager_kokkos_decl.hpp.

Constructor & Destructor Documentation

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

Default constructor, return empty object.

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 32 of file MueLu_IndexManager_kokkos_def.hpp.

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

Definition at line 79 of file MueLu_IndexManager_kokkos_decl.hpp.

Member Function Documentation

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 62 of file MueLu_IndexManager_kokkos_def.hpp.

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 98 of file MueLu_IndexManager_kokkos_def.hpp.

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

Definition at line 91 of file MueLu_IndexManager_kokkos_decl.hpp.

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

Definition at line 93 of file MueLu_IndexManager_kokkos_decl.hpp.

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

Definition at line 95 of file MueLu_IndexManager_kokkos_decl.hpp.

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

Definition at line 97 of file MueLu_IndexManager_kokkos_decl.hpp.

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

Definition at line 100 of file MueLu_IndexManager_kokkos_decl.hpp.

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

Definition at line 103 of file MueLu_IndexManager_kokkos_decl.hpp.

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

Definition at line 106 of file MueLu_IndexManager_kokkos_decl.hpp.

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

Definition at line 109 of file MueLu_IndexManager_kokkos_decl.hpp.

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

Definition at line 183 of file MueLu_IndexManager_kokkos_def.hpp.

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 114 of file MueLu_IndexManager_kokkos_decl.hpp.

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 123 of file MueLu_IndexManager_kokkos_decl.hpp.

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 128 of file MueLu_IndexManager_kokkos_decl.hpp.

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 137 of file MueLu_IndexManager_kokkos_decl.hpp.

Member Data Documentation

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

Definition at line 53 of file MueLu_IndexManager_kokkos_decl.hpp.

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

Definition at line 54 of file MueLu_IndexManager_kokkos_decl.hpp.

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 55 of file MueLu_IndexManager_kokkos_decl.hpp.

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 56 of file MueLu_IndexManager_kokkos_decl.hpp.

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

coarsening rate in each direction

Definition at line 57 of file MueLu_IndexManager_kokkos_decl.hpp.

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 58 of file MueLu_IndexManager_kokkos_decl.hpp.

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

local number of nodes.

Definition at line 60 of file MueLu_IndexManager_kokkos_decl.hpp.

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 61 of file MueLu_IndexManager_kokkos_decl.hpp.

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 62 of file MueLu_IndexManager_kokkos_decl.hpp.

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 64 of file MueLu_IndexManager_kokkos_decl.hpp.

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 65 of file MueLu_IndexManager_kokkos_decl.hpp.

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 66 of file MueLu_IndexManager_kokkos_decl.hpp.


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