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

#include <MueLu_UncoupledIndexManager_decl.hpp>

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

Public Member Functions

 UncoupledIndexManager ()=default
 
 UncoupledIndexManager (const RCP< const Teuchos::Comm< int > > comm, const bool coupled, const int NumDimensions, const int interpolationOrder, const int MyRank, const int NumRanks, const Array< GO > GFineNodesPerDir, const Array< LO > LFineNodesPerDir, const Array< LO > CoarseRate, const bool singleCoarsePoint)
 
virtual ~UncoupledIndexManager ()
 
void computeGlobalCoarseParameters ()
 
std::vector< std::vector< GO > > getCoarseMeshData () const
 
void getGhostedNodesData (const RCP< const Map > fineMap, Array< LO > &ghostedNodeCoarseLIDs, Array< int > &ghostedNodeCoarsePIDs, Array< GO > &ghostedNodeCoarseGIDs) const
 
void getCoarseNodesData (const RCP< const Map > fineCoordinatesMap, Array< GO > &coarseNodeCoarseGIDs, Array< GO > &coarseNodeFineGIDs) const
 
void getFineNodeGlobalTuple (const GO myGID, GO &i, GO &j, GO &k) const
 
void getFineNodeLocalTuple (const LO myLID, LO &i, LO &j, LO &k) const
 
void getFineNodeGhostedTuple (const LO myLID, LO &i, LO &j, LO &k) const
 
void getFineNodeGID (const GO i, const GO j, const GO k, GO &myGID) const
 
void getFineNodeLID (const LO i, const LO j, const LO k, LO &myLID) const
 
void getCoarseNodeGlobalTuple (const GO myGID, GO &i, GO &j, GO &k) const
 
void getCoarseNodeLocalTuple (const LO myLID, LO &i, LO &j, LO &k) const
 
void getCoarseNodeGID (const GO i, const GO j, const GO k, GO &myGID) const
 
void getCoarseNodeLID (const LO i, const LO j, const LO k, LO &myLID) const
 
void getCoarseNodeGhostedLID (const LO i, const LO j, const LO k, LO &myLID) const
 
void getCoarseNodeFineLID (const LO i, const LO j, const LO k, LO &myLID) const
 
void getGhostedNodeFineLID (const LO i, const LO j, const LO k, LO &myLID) const
 
void getGhostedNodeCoarseLID (const LO i, const LO j, const LO k, LO &myLID) const
 
- Public Member Functions inherited from MueLu::IndexManager< LocalOrdinal, GlobalOrdinal, Node >
 IndexManager ()=default
 
 IndexManager (const RCP< const Teuchos::Comm< int > > comm, const bool coupled, const bool singleCoarsePoint, const int NumDimensions, const int interpolationOrder, const Array< GO > GFineNodesPerDir, const Array< LO > LFineNodesPerDir)
 
virtual ~IndexManager ()
 
void computeMeshParameters ()
 
virtual void computeGlobalCoarseParameters ()=0
 
virtual void getGhostedNodesData (const RCP< const Map > fineMap, Array< LO > &ghostedNodeCoarseLIDs, Array< int > &ghostedNodeCoarsePIDs, Array< GO > &ghostedNodeCoarseGIDs) const =0
 
virtual void getCoarseNodesData (const RCP< const Map > fineCoordinatesMap, Array< GO > &coarseNodeCoarseGIDs, Array< GO > &coarseNodeFineGIDs) const =0
 
bool isAggregationCoupled () const
 
bool isSingleCoarsePoint () const
 
int getNumDimensions () const
 
int getInterpolationOrder () const
 
GO getNumGlobalFineNodes () const
 
GO getNumGlobalCoarseNodes () const
 
LO getNumLocalFineNodes () const
 
LO getNumLocalCoarseNodes () const
 
LO getNumLocalGhostedNodes () const
 
Array< int > getCoarseningRates () const
 
int getCoarseningRate (const int dim) const
 
Array< int > getCoarseningEndRates () const
 
int getCoarseningEndRate (const int dim) const
 
bool getMeshEdge (const int dir) const
 
bool getGhostInterface (const int dir) const
 
Array< LO > getOffsets () const
 
LO getOffset (int const dim) const
 
Array< LO > getCoarseNodeOffsets () const
 
LO getCoarseNodeOffset (int const dim) const
 
Array< GO > getStartIndices () const
 
GO getStartIndex (int const dim) const
 
Array< GO > getStartGhostedCoarseNodes () const
 
GO getStartGhostedCoarseNode (int const dim) const
 
Array< LO > getLocalFineNodesPerDir () const
 
LO getLocalFineNodesInDir (const int dim) const
 
Array< GO > getGlobalFineNodesPerDir () const
 
GO getGlobalFineNodesInDir (const int dim) const
 
Array< LO > getLocalCoarseNodesPerDir () const
 
LO getLocalCoarseNodesInDir (const int dim) const
 
Array< GO > getGlobalCoarseNodesPerDir () const
 
GO getGlobalCoarseNodesInDir (const int dim) const
 
Array< LO > getGhostedNodesPerDir () const
 
LO getGhostedNodesInDir (const int dim) const
 
virtual std::vector< std::vector< GO > > getCoarseMeshData () const =0
 
virtual void getFineNodeGlobalTuple (const GO myGID, GO &i, GO &j, GO &k) const =0
 
virtual void getFineNodeLocalTuple (const LO myLID, LO &i, LO &j, LO &k) const =0
 
virtual void getFineNodeGhostedTuple (const LO myLID, LO &i, LO &j, LO &k) const =0
 
virtual void getFineNodeGID (const GO i, const GO j, const GO k, GO &myGID) const =0
 
virtual void getFineNodeLID (const LO i, const LO j, const LO k, LO &myLID) const =0
 
virtual void getCoarseNodeGlobalTuple (const GO myGID, GO &i, GO &j, GO &k) const =0
 
virtual void getCoarseNodeLocalTuple (const LO myLID, LO &i, LO &j, LO &k) const =0
 
virtual void getCoarseNodeGID (const GO i, const GO j, const GO k, GO &myGID) const =0
 
virtual void getCoarseNodeLID (const LO i, const LO j, const LO k, LO &myLID) const =0
 
virtual void getCoarseNodeGhostedLID (const LO i, const LO j, const LO k, LO &myLID) const =0
 
virtual void getCoarseNodeFineLID (const LO i, const LO j, const LO k, LO &myLID) const =0
 
virtual void getGhostedNodeFineLID (const LO i, const LO j, const LO k, LO &myLID) const =0
 
virtual void getGhostedNodeCoarseLID (const LO i, const LO j, const LO k, LO &myLID) const =0
 
- 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 myRank
 Local rank ID.
 
const int numRanks
 Number of ranks used to decompose the problem.
 

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 ()
 
- Protected Attributes inherited from MueLu::IndexManager< LocalOrdinal, GlobalOrdinal, Node >
const RCP< const Teuchos::Comm< int > > comm_
 Communicator used by uncoupled aggregation.
 
const bool coupled_
 Flag for coupled vs uncoupled aggregation mode, if true aggregation is coupled.
 
const bool singleCoarsePoint_
 Flag telling us if can reduce dimensions to a single layer.
 
const int numDimensions
 Number of spacial dimensions in the problem.
 
const int interpolationOrder_
 Interpolation order used by grid transfer operators using these aggregates.
 
Array< int > coarseRate
 coarsening rate in each direction
 
Array< int > endRate
 adapted coarsening rate at the edge of the mesh in each direction.
 
GO gNumFineNodes
 global number of nodes.
 
GO gNumFineNodes10
 global number of nodes per 0-1 slice.
 
const Array< GO > gFineNodesPerDir
 global number of nodes per direction.
 
LO lNumFineNodes
 local number of nodes.
 
LO lNumFineNodes10
 local number of nodes per 0-1 slice.
 
const Array< LO > lFineNodesPerDir
 local number of nodes per direction.
 
GO gNumCoarseNodes
 global number of nodes remaining after coarsening.
 
GO gNumCoarseNodes10
 global number of nodes per 0-1 slice remaining after coarsening.
 
Array< GO > gCoarseNodesPerDir
 global number of nodes per direction remaining after coarsening.
 
LO lNumCoarseNodes
 local number of nodes remaining after coarsening.
 
LO lNumCoarseNodes10
 local number of nodes per 0-1 slice remaining after coarsening.
 
Array< LO > lCoarseNodesPerDir
 local number of nodes per direction remaing after coarsening.
 
LO numGhostNodes
 local number of ghost nodes
 
LO numGhostedNodes
 local number of ghosted nodes (i.e. ghost + coarse nodes).
 
LO numGhostedNodes10
 local number of ghosted nodes (i.e. ghost + coarse nodes) per 0-1 slice.
 
Array< LO > ghostedNodesPerDir
 local number of ghosted nodes (i.e. ghost + coarse nodes) per direction
 
GO minGlobalIndex
 lowest GID of any node in the local process
 
Array< LO > offsets
 distance between lowest (resp. highest) index to the lowest (resp. highest) ghostedNodeIndex in that direction.
 
Array< LO > coarseNodeOffsets
 distance between lowest (resp. highest) index to the lowest (resp. highest) coarseNodeIndex in that direction.
 
Array< GO > startIndices
 lowest global tuple (i,j,k) of a node on the local process
 
Array< GO > startGhostedCoarseNode
 lowest coarse global tuple (i,j,k) of a node remaing on the local process after coarsening.
 
bool meshEdge [6] = {false}
 flags indicating if we run into the edge of the mesh in ilo, ihi, jlo, jhi, klo or khi.
 
bool ghostInterface [6] = {false}
 flags indicating if ghost points are needed at ilo, ihi, jlo, jhi, klo and khi boundaries.
 
bool ghostedDir [6] = {false}
 flags indicating if ghost points are needed at ilo, ihi, jlo, jhi, klo and khi boundaries.
 

Detailed Description

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

Definition at line 83 of file MueLu_UncoupledIndexManager_decl.hpp.

Constructor & Destructor Documentation

◆ UncoupledIndexManager() [1/2]

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

◆ UncoupledIndexManager() [2/2]

template<class LocalOrdinal , class GlobalOrdinal , class Node >
MueLu::UncoupledIndexManager< LocalOrdinal, GlobalOrdinal, Node >::UncoupledIndexManager ( const RCP< const Teuchos::Comm< int > >  comm,
const bool  coupled,
const int  NumDimensions,
const int  interpolationOrder,
const int  MyRank,
const int  NumRanks,
const Array< GO >  GFineNodesPerDir,
const Array< LO >  LFineNodesPerDir,
const Array< LO >  CoarseRate,
const bool  singleCoarsePoint 
)

Definition at line 56 of file MueLu_UncoupledIndexManager_def.hpp.

◆ ~UncoupledIndexManager()

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

Definition at line 103 of file MueLu_UncoupledIndexManager_decl.hpp.

Member Function Documentation

◆ computeGlobalCoarseParameters()

template<class LocalOrdinal , class GlobalOrdinal , class Node >
void MueLu::UncoupledIndexManager< LocalOrdinal, GlobalOrdinal, Node >::computeGlobalCoarseParameters
virtual

◆ getCoarseMeshData()

template<class LocalOrdinal , class GlobalOrdinal , class Node >
std::vector< std::vector< GlobalOrdinal > > MueLu::UncoupledIndexManager< LocalOrdinal, GlobalOrdinal, Node >::getCoarseMeshData
virtual

◆ getGhostedNodesData()

template<class LocalOrdinal , class GlobalOrdinal , class Node >
void MueLu::UncoupledIndexManager< LocalOrdinal, GlobalOrdinal, Node >::getGhostedNodesData ( const RCP< const Map >  fineMap,
Array< LO > &  ghostedNodeCoarseLIDs,
Array< int > &  ghostedNodeCoarsePIDs,
Array< GO > &  ghostedNodeCoarseGIDs 
) const
virtual

◆ getCoarseNodesData()

template<class LocalOrdinal , class GlobalOrdinal , class Node >
void MueLu::UncoupledIndexManager< LocalOrdinal, GlobalOrdinal, Node >::getCoarseNodesData ( const RCP< const Map >  fineCoordinatesMap,
Array< GO > &  coarseNodeCoarseGIDs,
Array< GO > &  coarseNodeFineGIDs 
) const
virtual

◆ getFineNodeGlobalTuple()

template<class LocalOrdinal , class GlobalOrdinal , class Node >
void MueLu::UncoupledIndexManager< LocalOrdinal, GlobalOrdinal, Node >::getFineNodeGlobalTuple ( const GO  myGID,
GO &  i,
GO &  j,
GO &  k 
) const
virtual

◆ getFineNodeLocalTuple()

template<class LocalOrdinal , class GlobalOrdinal , class Node >
void MueLu::UncoupledIndexManager< LocalOrdinal, GlobalOrdinal, Node >::getFineNodeLocalTuple ( const LO  myLID,
LO &  i,
LO &  j,
LO &  k 
) const
virtual

◆ getFineNodeGhostedTuple()

template<class LocalOrdinal , class GlobalOrdinal , class Node >
void MueLu::UncoupledIndexManager< LocalOrdinal, GlobalOrdinal, Node >::getFineNodeGhostedTuple ( const LO  myLID,
LO &  i,
LO &  j,
LO &  k 
) const
virtual

◆ getFineNodeGID()

template<class LocalOrdinal , class GlobalOrdinal , class Node >
void MueLu::UncoupledIndexManager< LocalOrdinal, GlobalOrdinal, Node >::getFineNodeGID ( const GO  i,
const GO  j,
const GO  k,
GO &  myGID 
) const
virtual

◆ getFineNodeLID()

template<class LocalOrdinal , class GlobalOrdinal , class Node >
void MueLu::UncoupledIndexManager< LocalOrdinal, GlobalOrdinal, Node >::getFineNodeLID ( const LO  i,
const LO  j,
const LO  k,
LO &  myLID 
) const
virtual

◆ getCoarseNodeGlobalTuple()

template<class LocalOrdinal , class GlobalOrdinal , class Node >
void MueLu::UncoupledIndexManager< LocalOrdinal, GlobalOrdinal, Node >::getCoarseNodeGlobalTuple ( const GO  myGID,
GO &  i,
GO &  j,
GO &  k 
) const
virtual

◆ getCoarseNodeLocalTuple()

template<class LocalOrdinal , class GlobalOrdinal , class Node >
void MueLu::UncoupledIndexManager< LocalOrdinal, GlobalOrdinal, Node >::getCoarseNodeLocalTuple ( const LO  myLID,
LO &  i,
LO &  j,
LO &  k 
) const
virtual

◆ getCoarseNodeGID()

template<class LocalOrdinal , class GlobalOrdinal , class Node >
void MueLu::UncoupledIndexManager< LocalOrdinal, GlobalOrdinal, Node >::getCoarseNodeGID ( const GO  i,
const GO  j,
const GO  k,
GO &  myGID 
) const
virtual

◆ getCoarseNodeLID()

template<class LocalOrdinal , class GlobalOrdinal , class Node >
void MueLu::UncoupledIndexManager< LocalOrdinal, GlobalOrdinal, Node >::getCoarseNodeLID ( const LO  i,
const LO  j,
const LO  k,
LO &  myLID 
) const
virtual

◆ getCoarseNodeGhostedLID()

template<class LocalOrdinal , class GlobalOrdinal , class Node >
void MueLu::UncoupledIndexManager< LocalOrdinal, GlobalOrdinal, Node >::getCoarseNodeGhostedLID ( const LO  i,
const LO  j,
const LO  k,
LO &  myLID 
) const
virtual

◆ getCoarseNodeFineLID()

template<class LocalOrdinal , class GlobalOrdinal , class Node >
void MueLu::UncoupledIndexManager< LocalOrdinal, GlobalOrdinal, Node >::getCoarseNodeFineLID ( const LO  i,
const LO  j,
const LO  k,
LO &  myLID 
) const
virtual

◆ getGhostedNodeFineLID()

template<class LocalOrdinal , class GlobalOrdinal , class Node >
void MueLu::UncoupledIndexManager< LocalOrdinal, GlobalOrdinal, Node >::getGhostedNodeFineLID ( const LO  i,
const LO  j,
const LO  k,
LO &  myLID 
) const
virtual

◆ getGhostedNodeCoarseLID()

template<class LocalOrdinal , class GlobalOrdinal , class Node >
void MueLu::UncoupledIndexManager< LocalOrdinal, GlobalOrdinal, Node >::getGhostedNodeCoarseLID ( const LO  i,
const LO  j,
const LO  k,
LO &  myLID 
) const
virtual

Member Data Documentation

◆ myRank

template<class LocalOrdinal , class GlobalOrdinal , class Node >
const int MueLu::UncoupledIndexManager< LocalOrdinal, GlobalOrdinal, Node >::myRank
private

Local rank ID.

Definition at line 146 of file MueLu_UncoupledIndexManager_decl.hpp.

◆ numRanks

template<class LocalOrdinal , class GlobalOrdinal , class Node >
const int MueLu::UncoupledIndexManager< LocalOrdinal, GlobalOrdinal, Node >::numRanks
private

Number of ranks used to decompose the problem.

Definition at line 147 of file MueLu_UncoupledIndexManager_decl.hpp.


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