MueLu Version of the Day
|
Container class for mesh layout and indices calculation. More...
#include <MueLu_IndexManager_kokkos_decl.hpp>
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 |
![]() | |
virtual | ~BaseClass () |
Destructor. | |
![]() | |
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 |
![]() | |
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 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 () |
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.
using MueLu::IndexManager_kokkos< LocalOrdinal, GlobalOrdinal, Node >::execution_space = typename Node::execution_space |
Definition at line 86 of file MueLu_IndexManager_kokkos_decl.hpp.
using MueLu::IndexManager_kokkos< LocalOrdinal, GlobalOrdinal, Node >::memory_space = typename Node::memory_space |
Definition at line 87 of file MueLu_IndexManager_kokkos_decl.hpp.
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.
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.
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.
|
default |
Default constructor, return empty object.
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.
|
inlinevirtual |
Definition at line 121 of file MueLu_IndexManager_kokkos_decl.hpp.
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.
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.
|
inline |
Definition at line 133 of file MueLu_IndexManager_kokkos_decl.hpp.
|
inline |
Definition at line 135 of file MueLu_IndexManager_kokkos_decl.hpp.
|
inline |
Definition at line 137 of file MueLu_IndexManager_kokkos_decl.hpp.
|
inline |
Definition at line 139 of file MueLu_IndexManager_kokkos_decl.hpp.
|
inline |
Definition at line 142 of file MueLu_IndexManager_kokkos_decl.hpp.
|
inline |
Definition at line 145 of file MueLu_IndexManager_kokkos_decl.hpp.
|
inline |
Definition at line 148 of file MueLu_IndexManager_kokkos_decl.hpp.
|
inline |
Definition at line 151 of file MueLu_IndexManager_kokkos_decl.hpp.
Array< LocalOrdinal > MueLu::IndexManager_kokkos< LocalOrdinal, GlobalOrdinal, Node >::getCoarseNodesPerDirArray | ( | ) | const |
Definition at line 218 of file MueLu_IndexManager_kokkos_def.hpp.
|
inline |
Definition at line 156 of file MueLu_IndexManager_kokkos_decl.hpp.
|
inline |
Definition at line 165 of file MueLu_IndexManager_kokkos_decl.hpp.
|
inline |
Definition at line 170 of file MueLu_IndexManager_kokkos_decl.hpp.
|
inline |
Definition at line 179 of file MueLu_IndexManager_kokkos_decl.hpp.
|
private |
Definition at line 94 of file MueLu_IndexManager_kokkos_decl.hpp.
|
private |
Definition at line 95 of file MueLu_IndexManager_kokkos_decl.hpp.
|
private |
Number of spacial dimensions in the problem.
Definition at line 96 of file MueLu_IndexManager_kokkos_decl.hpp.
|
private |
Interpolation order used by grid transfer operators using these aggregates.
Definition at line 97 of file MueLu_IndexManager_kokkos_decl.hpp.
|
private |
coarsening rate in each direction
Definition at line 98 of file MueLu_IndexManager_kokkos_decl.hpp.
|
private |
adapted coarsening rate at the edge of the mesh in each direction.
Definition at line 99 of file MueLu_IndexManager_kokkos_decl.hpp.
|
private |
local number of nodes.
Definition at line 101 of file MueLu_IndexManager_kokkos_decl.hpp.
|
private |
local number of nodes per 0-1 slice.
Definition at line 102 of file MueLu_IndexManager_kokkos_decl.hpp.
|
private |
local number of nodes per direction.
Definition at line 103 of file MueLu_IndexManager_kokkos_decl.hpp.
|
private |
local number of nodes remaining after coarsening.
Definition at line 105 of file MueLu_IndexManager_kokkos_decl.hpp.
|
private |
local number of nodes per 0-1 slice remaining after coarsening.
Definition at line 106 of file MueLu_IndexManager_kokkos_decl.hpp.
|
private |
local number of nodes per direction remaing after coarsening.
Definition at line 107 of file MueLu_IndexManager_kokkos_decl.hpp.