MueLu
Version of the Day
|
Factory for creating a graph base on a given matrix. More...
#include <MueLu_SmooVecCoalesceDropFactory_decl.hpp>
Public Member Functions | |
void | Build (Level ¤tLevel) const |
Build an object with this factory. More... | |
Public Member Functions inherited from MueLu::SingleLevelFactoryBase | |
SingleLevelFactoryBase () | |
Constructor. More... | |
virtual | ~SingleLevelFactoryBase () |
Destructor. More... | |
virtual void | CallBuild (Level &requestedLevel) const |
virtual void | CallDeclareInput (Level &requestedLevel) const |
Public Member Functions inherited from MueLu::Factory | |
void | EnableMultipleCallCheck () const |
void | DisableMultipleCallCheck () const |
void | ResetDebugData () const |
Factory () | |
Constructor. More... | |
virtual | ~Factory () |
Destructor. More... | |
virtual void | SetFactory (const std::string &varName, const RCP< const FactoryBase > &factory) |
Configuration. More... | |
const RCP< const FactoryBase > | GetFactory (const std::string &varName) const |
Default implementation of FactoryAcceptor::GetFactory() More... | |
RCP< ParameterList > | RemoveFactoriesFromList (const ParameterList &list) const |
Public Member Functions inherited from MueLu::FactoryBase | |
FactoryBase () | |
Constructor. More... | |
virtual | ~FactoryBase () |
Destructor. More... | |
int | GetID () const |
return unique factory id 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 |
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) |
Public Member Functions inherited from MueLu::FactoryAcceptor | |
virtual | ~FactoryAcceptor () |
Public Member Functions inherited from MueLu::ParameterListAcceptorImpl | |
ParameterListAcceptorImpl () | |
virtual | ~ParameterListAcceptorImpl ()=default |
virtual void | SetParameterList (const Teuchos::ParameterList ¶mList) |
Set parameters from a parameter list and return with default values. More... | |
virtual const Teuchos::ParameterList & | GetParameterList () const |
void | SetParameter (const std::string &name, const ParameterEntry &entry) |
Set a parameter directly as a ParameterEntry. More... | |
const ParameterEntry & | GetParameter (const std::string &name) const |
Retrieves a const entry with the name name. More... | |
virtual void | GetDocumentation (std::ostream &os) const |
Public Member Functions inherited from MueLu::ParameterListAcceptor | |
ParameterListAcceptor () | |
virtual | ~ParameterListAcceptor ()=default |
Private Member Functions | |
void | badGuysCoalesceDrop (const Matrix &Amat, Teuchos::ArrayRCP< Scalar > &dropParams, LO nPDEs, const MultiVector &smoothedTVecs, const MultiVector &smoothedNull, RCP< LWGraph > &filteredGraph) const |
Methods to support compatible-relaxation style dropping. More... | |
void | badGuysDropfunc (LO row, const Teuchos::ArrayView< const LocalOrdinal > &indices, const Teuchos::ArrayView< const Scalar > &vals, const MultiVector &smoothedTVecs, LO nPDEs, Teuchos::ArrayRCP< Scalar > &penalties, const MultiVector &smoothedNull, Teuchos::ArrayRCP< LO > &Bcols, Teuchos::ArrayRCP< bool > &keepOrNot, LO &Nbcols, LO nLoc) const |
Private Attributes | |
RCP< PreDropFunctionBaseClass > | predrop_ |
Constructors/Destructors. | |
SmooVecCoalesceDropFactory () | |
Constructor. More... | |
virtual | ~SmooVecCoalesceDropFactory () |
Destructor. More... | |
RCP< const ParameterList > | GetValidParameterList () const |
Return a const parameter list of valid parameters that setParameterList() will accept. More... | |
void | DeclareInput (Level ¤tLevel) const |
Input. More... | |
void | SetPreDropFunction (const RCP< MueLu::PreDropFunctionBaseClass< Scalar, LocalOrdinal, GlobalOrdinal, Node > > &predrop) |
set predrop function More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from MueLu::Factory | |
static void | EnableTimerSync () |
static void | DisableTimerSync () |
static void | EnableMultipleCheckGlobally () |
static void | DisableMultipleCheckGlobally () |
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 MueLu::Factory | |
void | Input (Level &level, const std::string &varName) const |
void | Input (Level &level, const std::string &varName, const std::string &varParamName) const |
template<class T > | |
T | Get (Level &level, const std::string &varName) const |
template<class T > | |
T | Get (Level &level, const std::string &varName, const std::string &varParamName) const |
template<class T > | |
void | Set (Level &level, const std::string &varName, const T &data) const |
template<class T > | |
bool | IsType (Level &level, const std::string &varName) const |
bool | IsAvailable (Level &level, const std::string &varName) const |
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 |
Static Protected Attributes inherited from MueLu::Factory | |
static bool | timerSync_ = false |
Factory for creating a graph base on a given matrix.
Factory for creating graphs from matrices with entries selectively dropped.
Experimental dropping function based on taking a set of random vectors u, running a smoother on A u = 0, and then basing the drop decisions on "how smooth" the vectors are local. Neighobring regions where the vectors are smooth can be aggregated together and so these are kept in the associated drop matrix. Areas that are not smooth should end up in different aggregates and so the A_ij representing these should be dropped. This Factory can address both PDE systems and scalar PDEs, always creating a matrix reprsenting nodal connections as opposed to dof connections.
To enter this factor as opposed to the more standard CoalesceDropFactory() one must set "aggregation: drop scheme" to "unsupported vector smoothing". In this case some of the parameter options associated with CoalesceDropFactory (e.g., "aggregation: drop tol", "aggregation: Dirichlet threshold", "lightweight wrap") will cause parameter validator errors.
Parameter | type | default | master.xml | validated | requested | description |
---|---|---|---|---|---|---|
A | Factory | null | * | * | Generating factory of the operator A | |
"aggregation: drop scheme" | std::string<td>"classical" | * | * | * | Must choose "unsupported vector smoothing" | |
"aggregation: number of times to pre or post smooth" | int | 10 | * | * | Amount of pre or post smoothing invocations | |
"aggregation: number of random vectors" | int | 10 | * | * | * | Number of random vectors |
"aggregation: penalty parameters" | Array(double) | {12.0,-.20} | * | * | * | Ultimately determines how much dropping is done |
The * in the master.xml
column denotes that the parameter is defined in the master.xml
file.
The * in the validated
column means that the parameter is declared in the list of valid input parameters (see SmooVecCoalesceDropFactory::GetValidParameters).
The * in the requested
column states that the data is requested as input with all dependencies (see SmooVecCoalesceDropFactory::DeclareInput).
After SmooVecCoalesceDropFactory::Build the following data is available (if requested)
Parameter | generated by | description |
---|---|---|
Graph | SmooVecCoalesceDropFactory | Graph of matrix A |
DofsPerNode | SmooVecCoalesceDropFactory | number of DOFs per node. Note, that we assume a constant number of DOFs per node for all nodes associated with the operator A. |
Definition at line 85 of file MueLu_SmooVecCoalesceDropFactory_decl.hpp.
MueLu::SmooVecCoalesceDropFactory< Scalar, LocalOrdinal, GlobalOrdinal, Node >::SmooVecCoalesceDropFactory | ( | ) |
Constructor.
Definition at line 80 of file MueLu_SmooVecCoalesceDropFactory_def.hpp.
|
inlinevirtual |
Destructor.
Definition at line 97 of file MueLu_SmooVecCoalesceDropFactory_decl.hpp.
|
virtual |
Return a const parameter list of valid parameters that setParameterList() will accept.
Also define the default values of parameters according to the input parameter list.
Reimplemented from MueLu::Factory.
Definition at line 59 of file MueLu_SmooVecCoalesceDropFactory_def.hpp.
|
virtual |
Input.
Implements MueLu::SingleLevelFactoryBase.
Definition at line 84 of file MueLu_SmooVecCoalesceDropFactory_def.hpp.
|
inline |
set predrop function
Definition at line 109 of file MueLu_SmooVecCoalesceDropFactory_decl.hpp.
|
virtual |
Build an object with this factory.
Implements MueLu::SingleLevelFactoryBase.
Definition at line 95 of file MueLu_SmooVecCoalesceDropFactory_def.hpp.
|
private |
Methods to support compatible-relaxation style dropping.
Definition at line 196 of file MueLu_SmooVecCoalesceDropFactory_def.hpp.
|
private |
Definition at line 370 of file MueLu_SmooVecCoalesceDropFactory_def.hpp.
|
mutableprivate |
Definition at line 117 of file MueLu_SmooVecCoalesceDropFactory_decl.hpp.