MueLu  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
MueLu::Aggregates< LocalOrdinal, GlobalOrdinal, Node > Class Template Reference

Container class for aggregation information. More...

#include <MueLu_Aggregates_decl.hpp>

Inheritance diagram for MueLu::Aggregates< LocalOrdinal, GlobalOrdinal, Node >:
MueLu::BaseClass MueLu::VerboseObject MueLu::Describable Teuchos::VerboseObject< VerboseObject > Teuchos::Describable Teuchos::VerboseObjectBase Teuchos::LabeledObject

Public Member Functions

 Aggregates (const GraphBase &graph)
 Standard constructor for Aggregates structure. More...
 
 Aggregates (const RCP< const Map > &map)
 Constructor for Aggregates structure. More...
 
virtual ~Aggregates ()
 Destructor. More...
 
LO GetNumAggregates () const
 returns the number of aggregates of the current processor. Note: could/should be renamed to GetNumLocalAggregates? More...
 
void SetNumAggregates (LO nAggregates)
 Set number of local aggregates on current processor. More...
 
RCP< IndexManager > & GetIndexManager ()
 Get the index manager used by structured aggregation algorithms. More...
 
void SetIndexManager (RCP< IndexManager > &geoData)
 Get the index manager used by structured aggregation algorithms. More...
 
void AggregatesCrossProcessors (const bool &flag)
 Record whether aggregates include DOFs from other processes. More...
 
bool AggregatesCrossProcessors () const
 Return false if and only if no aggregates include DOFs from other processes. More...
 
RCP< LOMultiVector > & GetVertex2AggIdNonConst ()
 Returns a nonconstant vector that maps local node IDs to local aggregates IDs. More...
 
RCP< LOVector > & GetProcWinnerNonConst ()
 Returns nonconsant vector that maps local node IDs to owning processor IDs. More...
 
const RCP< LOMultiVector > & GetVertex2AggId () const
 Returns constant vector that maps local node IDs to local aggregates IDs. More...
 
const RCP< LOVector > & GetProcWinner () const
 Returns constant vector that maps local node IDs to owning processor IDs. More...
 
bool IsRoot (LO i) const
 Returns true if node with given local node id is marked to be a root node. More...
 
void SetIsRoot (LO i, bool value=true)
 Set root node information. More...
 
const RCP< const Map > GetMap () const
 returns (overlapping) map of aggregate/node distribution More...
 
Teuchos::ArrayRCP< LO > ComputeAggregateSizes (bool forceRecompute=false) const
 Compute sizes of aggregates. More...
 
- 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
 
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)
 

Overridden from Teuchos::Describable

LO nAggregates_
 Number of aggregates on this processor. More...
 
RCP< LOMultiVector > vertex2AggId_
 
RCP< LOVector > procWinner_
 
RCP< IndexManagergeoData_
 
Teuchos::ArrayRCP< bool > isRoot_
 
bool aggregatesIncludeGhosts_
 Set to false iff aggregates do not include any DOFs belong to other processes. More...
 
Teuchos::ArrayRCP< LO > aggregateSizes_
 Array of sizes of each local aggregate. More...
 
std::string description () const
 Return a simple one-line description of this object. More...
 
void print (Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel=verbLevel_default) const
 Print the object with some verbosity level to an FancyOStream object. More...
 
GO GetNumGlobalAggregates () const
 Get global number of aggregates. 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 = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
class MueLu::Aggregates< LocalOrdinal, GlobalOrdinal, Node >

Container class for aggregation information.

Structure holding aggregate information. Right now, nAggregates, IsRoot, Vertex2AggId, procWinner are populated. This allows us to look at a node and determine the aggregate to which it has been assigned and the id of the processor that owns this aggregate. It is not so easy to determine vertices within the kth aggregate or the size of the kth aggregate. Thus, it might be useful to have a secondary structure which would be a rectangular CrsGraph where rows (or vertices) correspond to aggregates and colunmns (or edges) correspond to nodes. While not strictly necessary, it might be convenient.

Definition at line 102 of file MueLu_Aggregates_decl.hpp.

Constructor & Destructor Documentation

template<class LocalOrdinal , class GlobalOrdinal , class Node >
MueLu::Aggregates< LocalOrdinal, GlobalOrdinal, Node >::Aggregates ( const GraphBase graph)

Standard constructor for Aggregates structure.

Standard constructor of aggregates takes a Graph object as parameter. Uses the graph.GetImportMap() to initialize the internal vector for mapping nodes to (local) aggregate ids as well as the mapping of node to the owning processor id.

Definition at line 65 of file MueLu_Aggregates_def.hpp.

template<class LocalOrdinal , class GlobalOrdinal , class Node >
MueLu::Aggregates< LocalOrdinal, GlobalOrdinal, Node >::Aggregates ( const RCP< const Map > &  map)

Constructor for Aggregates structure.

This constructor takes a RCP pointer to a map which is used for the internal mappings of nodes to the (local) aggregate ids and the owning processor.

Definition at line 82 of file MueLu_Aggregates_def.hpp.

template<class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
virtual MueLu::Aggregates< LocalOrdinal, GlobalOrdinal, Node >::~Aggregates ( )
inlinevirtual

Destructor.

Definition at line 127 of file MueLu_Aggregates_decl.hpp.

Member Function Documentation

template<class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
LO MueLu::Aggregates< LocalOrdinal, GlobalOrdinal, Node >::GetNumAggregates ( ) const
inline

returns the number of aggregates of the current processor. Note: could/should be renamed to GetNumLocalAggregates?

Definition at line 129 of file MueLu_Aggregates_decl.hpp.

template<class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
void MueLu::Aggregates< LocalOrdinal, GlobalOrdinal, Node >::SetNumAggregates ( LO  nAggregates)
inline

Set number of local aggregates on current processor.

This has to be done by the aggregation routines.

Definition at line 135 of file MueLu_Aggregates_decl.hpp.

template<class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
RCP<IndexManager>& MueLu::Aggregates< LocalOrdinal, GlobalOrdinal, Node >::GetIndexManager ( )
inline

Get the index manager used by structured aggregation algorithms.

This has to be done by the aggregation factory.

Definition at line 141 of file MueLu_Aggregates_decl.hpp.

template<class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
void MueLu::Aggregates< LocalOrdinal, GlobalOrdinal, Node >::SetIndexManager ( RCP< IndexManager > &  geoData)
inline

Get the index manager used by structured aggregation algorithms.

This has to be done by the aggregation factory.

Definition at line 147 of file MueLu_Aggregates_decl.hpp.

template<class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
void MueLu::Aggregates< LocalOrdinal, GlobalOrdinal, Node >::AggregatesCrossProcessors ( const bool &  flag)
inline

Record whether aggregates include DOFs from other processes.

Definition at line 150 of file MueLu_Aggregates_decl.hpp.

template<class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
bool MueLu::Aggregates< LocalOrdinal, GlobalOrdinal, Node >::AggregatesCrossProcessors ( ) const
inline

Return false if and only if no aggregates include DOFs from other processes.

Used in construction of tentative prolongator to skip a communication phase.

Definition at line 156 of file MueLu_Aggregates_decl.hpp.

template<class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
RCP<LOMultiVector>& MueLu::Aggregates< LocalOrdinal, GlobalOrdinal, Node >::GetVertex2AggIdNonConst ( )
inline

Returns a nonconstant vector that maps local node IDs to local aggregates IDs.

For local node ID i, the corresponding vector entry v[i] is the local aggregate id to which i belongs on the current processor.

Definition at line 162 of file MueLu_Aggregates_decl.hpp.

template<class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
RCP<LOVector>& MueLu::Aggregates< LocalOrdinal, GlobalOrdinal, Node >::GetProcWinnerNonConst ( )
inline

Returns nonconsant vector that maps local node IDs to owning processor IDs.

For local node ID i, the corresponding vector entry v[i] is the owning processor ID.

Definition at line 168 of file MueLu_Aggregates_decl.hpp.

template<class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
const RCP<LOMultiVector>& MueLu::Aggregates< LocalOrdinal, GlobalOrdinal, Node >::GetVertex2AggId ( ) const
inline

Returns constant vector that maps local node IDs to local aggregates IDs.

For local node ID i, the corresponding vector entry v[i] is the local aggregate id to which i belongs on the current processor.

Definition at line 173 of file MueLu_Aggregates_decl.hpp.

template<class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
const RCP<LOVector>& MueLu::Aggregates< LocalOrdinal, GlobalOrdinal, Node >::GetProcWinner ( ) const
inline

Returns constant vector that maps local node IDs to owning processor IDs.

For local node ID i, the corresponding vector entry v[i] is the owning processor ID.

Definition at line 179 of file MueLu_Aggregates_decl.hpp.

template<class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
bool MueLu::Aggregates< LocalOrdinal, GlobalOrdinal, Node >::IsRoot ( LO  i) const
inline

Returns true if node with given local node id is marked to be a root node.

Definition at line 182 of file MueLu_Aggregates_decl.hpp.

template<class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
void MueLu::Aggregates< LocalOrdinal, GlobalOrdinal, Node >::SetIsRoot ( LO  i,
bool  value = true 
)
inline

Set root node information.

Used by aggregation methods only.

Definition at line 188 of file MueLu_Aggregates_decl.hpp.

template<class LocalOrdinal , class GlobalOrdinal , class Node >
const RCP< const Xpetra::Map< LocalOrdinal, GlobalOrdinal, Node > > MueLu::Aggregates< LocalOrdinal, GlobalOrdinal, Node >::GetMap ( ) const

returns (overlapping) map of aggregate/node distribution

Definition at line 153 of file MueLu_Aggregates_def.hpp.

template<class LocalOrdinal , class GlobalOrdinal , class Node >
Teuchos::ArrayRCP< LocalOrdinal > MueLu::Aggregates< LocalOrdinal, GlobalOrdinal, Node >::ComputeAggregateSizes ( bool  forceRecompute = false) const

Compute sizes of aggregates.

Returns the number of nodes in each aggregate in an array. If the aggregate sizes are not stored internally (which is the default), they are computed and returned. If the aggregate sizes have been stored internally, then they are not recomputed, but instead the stored sizes are returned.

Parameters
[in]forceRecomputeif true, force recomputation of the aggregate sizes.

Definition at line 99 of file MueLu_Aggregates_def.hpp.

template<class LocalOrdinal , class GlobalOrdinal , class Node >
std::string MueLu::Aggregates< LocalOrdinal, GlobalOrdinal, Node >::description ( ) const
virtual

Return a simple one-line description of this object.

Reimplemented from MueLu::Describable.

Definition at line 130 of file MueLu_Aggregates_def.hpp.

template<class LocalOrdinal , class GlobalOrdinal , class Node >
void MueLu::Aggregates< LocalOrdinal, GlobalOrdinal, Node >::print ( Teuchos::FancyOStream out,
const Teuchos::EVerbosityLevel  verbLevel = verbLevel_default 
) const

Print the object with some verbosity level to an FancyOStream object.

Definition at line 138 of file MueLu_Aggregates_def.hpp.

template<class LocalOrdinal , class GlobalOrdinal , class Node >
GlobalOrdinal MueLu::Aggregates< LocalOrdinal, GlobalOrdinal, Node >::GetNumGlobalAggregates ( ) const
private

Get global number of aggregates.

Definition at line 146 of file MueLu_Aggregates_def.hpp.

Member Data Documentation

template<class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
LO MueLu::Aggregates< LocalOrdinal, GlobalOrdinal, Node >::nAggregates_
private

Number of aggregates on this processor.

Definition at line 214 of file MueLu_Aggregates_decl.hpp.

template<class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
RCP<LOMultiVector> MueLu::Aggregates< LocalOrdinal, GlobalOrdinal, Node >::vertex2AggId_
private

vertex2AggId[k] gives a local id corresponding to the aggregate to which local id k has been assigned. While k is the local id on my processor (MyPID), vertex2AggId[k] is the local id on the processor which actually owns the aggregate.

Definition at line 220 of file MueLu_Aggregates_decl.hpp.

template<class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
RCP<LOVector> MueLu::Aggregates< LocalOrdinal, GlobalOrdinal, Node >::procWinner_
private

If k is the local id on my processor (MyPID), the owning processor has the id given by procWinner[k]

Definition at line 226 of file MueLu_Aggregates_decl.hpp.

template<class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
RCP<IndexManager> MueLu::Aggregates< LocalOrdinal, GlobalOrdinal, Node >::geoData_
private

geoData stores an index manager object that is used to perform structured aggreation on a problem.

Definition at line 231 of file MueLu_Aggregates_decl.hpp.

template<class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
Teuchos::ArrayRCP<bool> MueLu::Aggregates< LocalOrdinal, GlobalOrdinal, Node >::isRoot_
private

Definition at line 233 of file MueLu_Aggregates_decl.hpp.

template<class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
bool MueLu::Aggregates< LocalOrdinal, GlobalOrdinal, Node >::aggregatesIncludeGhosts_
private

Set to false iff aggregates do not include any DOFs belong to other processes.

Definition at line 236 of file MueLu_Aggregates_decl.hpp.

template<class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
Teuchos::ArrayRCP<LO> MueLu::Aggregates< LocalOrdinal, GlobalOrdinal, Node >::aggregateSizes_
mutableprivate

Array of sizes of each local aggregate.

Definition at line 239 of file MueLu_Aggregates_decl.hpp.


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