MueLu
Version of the Day
|
Add leftovers to existing aggregates
#include <MueLu_AggregationPhase2bAlgorithm_decl.hpp>
Public Member Functions | |
std::string | description () const |
Return a simple one-line description of this object. More... | |
Public Member Functions inherited from MueLu::AggregationAlgorithmBase< LocalOrdinal, GlobalOrdinal, Node > | |
virtual | ~AggregationAlgorithmBase () |
Destructor. More... | |
virtual void | BuildAggregatesNonKokkos (const Teuchos::ParameterList ¶ms, const LWGraphHostType &graph, Aggregates &aggregates, AggStatHostType &aggStat, LO &numNonAggregatedNodes) const =0 |
BuildAggregatesNonKokkos routine. More... | |
virtual void | BuildAggregates (const Teuchos::ParameterList ¶ms, const LWGraphType &graph, Aggregates &aggregates, AggStatType &aggStat, LO &numNonAggregatedNodes) const =0 |
BuildAggregates routine. 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::FancyOStream & | GetOStream (MsgType type, int thisProcRankOnly=0) const |
Get an output stream for outputting the input message type. More... | |
Teuchos::FancyOStream & | GetBlackHole () 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 VerboseObject & | setVerbLevel (const EVerbosityLevel verbLevel) const |
virtual const VerboseObject & | setOverridingVerbLevel (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 VerboseObjectBase & | setOStream (const RCP< FancyOStream > &oStream) const |
virtual const VerboseObjectBase & | setOverridingOStream (const RCP< FancyOStream > &oStream) const |
virtual VerboseObjectBase & | setLinePrefix (const std::string &linePrefix) |
virtual RCP< FancyOStream > | getOStream () const |
virtual RCP< FancyOStream > | getOverridingOStream () 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) |
Constructors/Destructors. | |
AggregationPhase2bAlgorithm (const RCP< const FactoryBase > &=Teuchos::null) | |
Constructor. More... | |
virtual | ~AggregationPhase2bAlgorithm () |
Destructor. More... | |
Aggregation methods. | |
void | BuildAggregatesNonKokkos (const ParameterList ¶ms, const LWGraph &graph, Aggregates &aggregates, typename AggregationAlgorithmBase< LocalOrdinal, GlobalOrdinal, Node >::AggStatHostType &aggStat, LO &numNonAggregatedNodes) const |
Local aggregation. More... | |
void | BuildAggregates (const ParameterList ¶ms, const LWGraph_kokkos &graph, Aggregates &aggregates, typename AggregationAlgorithmBase< LocalOrdinal, GlobalOrdinal, Node >::AggStatType &aggStat, LO &numNonAggregatedNodes) const |
void | BuildAggregatesRandom (const ParameterList ¶ms, const LWGraph_kokkos &graph, Aggregates &aggregates, typename AggregationAlgorithmBase< LocalOrdinal, GlobalOrdinal, Node >::AggStatType &aggStat, LO &numNonAggregatedNodes) const |
void | BuildAggregatesDeterministic (const ParameterList ¶ms, const LWGraph_kokkos &graph, Aggregates &aggregates, typename AggregationAlgorithmBase< LocalOrdinal, GlobalOrdinal, Node >::AggStatType &aggStat, LO &numNonAggregatedNodes) const |
Additional Inherited Members | |
Public Types inherited from MueLu::AggregationAlgorithmBase< LocalOrdinal, GlobalOrdinal, Node > | |
using | LWGraphHostType = LWGraph |
using | AggStatHostType = Kokkos::View< unsigned *, typename LWGraphHostType::device_type > |
using | LWGraphType = LWGraph_kokkos |
using | AggStatType = Kokkos::View< unsigned *, typename LWGraphType::device_type > |
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< FancyOStream > | getDefaultOStream () |
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 |
Add leftovers to existing aggregates
In phase 2b non-aggregated nodes are added to existing aggregates. All neighbors of the unaggregated node are checked and the corresponding aggregate weight is increased. The unaggregated node is added to the aggregate with the best weight. A simple penalty strategy makes sure that the non-aggregated nodes are added to different aggregates. The routine runs twice to cover non-aggregate nodes which have a node distance of two to existing aggregates. Assuming that the node distance is not greater than 3 (the aggregate diameter size), running the algorithm only twice should be sufficient.
Only nodes with state READY are changed to AGGREGATED. There are no aggregation criteria considered. Especially the aggregation: max agg size criterion is ignored. This is not a problem, since after the previous aggregation phases one should not be able to build too large aggregates.
Definition at line 47 of file MueLu_AggregationPhase2bAlgorithm_decl.hpp.
|
inline |
Constructor.
Definition at line 56 of file MueLu_AggregationPhase2bAlgorithm_decl.hpp.
|
inlinevirtual |
Destructor.
Definition at line 59 of file MueLu_AggregationPhase2bAlgorithm_decl.hpp.
void MueLu::AggregationPhase2bAlgorithm< LocalOrdinal, GlobalOrdinal, Node >::BuildAggregatesNonKokkos | ( | const ParameterList & | params, |
const LWGraph & | graph, | ||
Aggregates & | aggregates, | ||
typename AggregationAlgorithmBase< LocalOrdinal, GlobalOrdinal, Node >::AggStatHostType & | aggStat, | ||
LO & | numNonAggregatedNodes | ||
) | const |
Local aggregation.
Definition at line 30 of file MueLu_AggregationPhase2bAlgorithm_def.hpp.
void MueLu::AggregationPhase2bAlgorithm< LocalOrdinal, GlobalOrdinal, Node >::BuildAggregates | ( | const ParameterList & | params, |
const LWGraph_kokkos & | graph, | ||
Aggregates & | aggregates, | ||
typename AggregationAlgorithmBase< LocalOrdinal, GlobalOrdinal, Node >::AggStatType & | aggStat, | ||
LO & | numNonAggregatedNodes | ||
) | const |
Definition at line 114 of file MueLu_AggregationPhase2bAlgorithm_def.hpp.
void MueLu::AggregationPhase2bAlgorithm< LO, GO, Node >::BuildAggregatesRandom | ( | const ParameterList & | params, |
const LWGraph_kokkos & | graph, | ||
Aggregates & | aggregates, | ||
typename AggregationAlgorithmBase< LocalOrdinal, GlobalOrdinal, Node >::AggStatType & | aggStat, | ||
LO & | numNonAggregatedNodes | ||
) | const |
Definition at line 131 of file MueLu_AggregationPhase2bAlgorithm_def.hpp.
void MueLu::AggregationPhase2bAlgorithm< LO, GO, Node >::BuildAggregatesDeterministic | ( | const ParameterList & | params, |
const LWGraph_kokkos & | graph, | ||
Aggregates & | aggregates, | ||
typename AggregationAlgorithmBase< LocalOrdinal, GlobalOrdinal, Node >::AggStatType & | aggStat, | ||
LO & | numNonAggregatedNodes | ||
) | const |
Definition at line 239 of file MueLu_AggregationPhase2bAlgorithm_def.hpp.
|
inlinevirtual |
Return a simple one-line description of this object.
Reimplemented from MueLu::Describable.
Definition at line 89 of file MueLu_AggregationPhase2bAlgorithm_decl.hpp.