MueLu Version of the Day
|
Factory for creating a graph base on a given matrix. More...
#include <MueLu_SmooVecCoalesceDropFactory_decl.hpp>
Constructors/Destructors. | |
RCP< PreDropFunctionBaseClass > | predrop_ |
SmooVecCoalesceDropFactory () | |
Constructor. | |
virtual | ~SmooVecCoalesceDropFactory () |
Destructor. | |
RCP< const ParameterList > | GetValidParameterList () const |
Return a const parameter list of valid parameters that setParameterList() will accept. | |
void | DeclareInput (Level ¤tLevel) const |
Input. | |
void | SetPreDropFunction (const RCP< MueLu::PreDropFunctionBaseClass< Scalar, LocalOrdinal, GlobalOrdinal, Node > > &predrop) |
set predrop function | |
void | Build (Level ¤tLevel) const |
Build an object with this factory. | |
void | badGuysCoalesceDrop (const Matrix &Amat, Teuchos::ArrayRCP< Scalar > &dropParams, LO nPDEs, const MultiVector &smoothedTVecs, const MultiVector &smoothedNull, RCP< GraphBase > &filteredGraph) const |
Methods to support compatible-relaxation style dropping. | |
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 |
Additional Inherited Members | |
![]() | |
SingleLevelFactoryBase () | |
Constructor. | |
virtual | ~SingleLevelFactoryBase () |
Destructor. | |
virtual void | CallBuild (Level &requestedLevel) const |
virtual void | CallDeclareInput (Level &requestedLevel) const |
![]() | |
Factory () | |
Constructor. | |
virtual | ~Factory () |
Destructor. | |
virtual void | SetFactory (const std::string &varName, const RCP< const FactoryBase > &factory) |
Configuration. | |
const RCP< const FactoryBase > | GetFactory (const std::string &varName) const |
Default implementation of FactoryAcceptor::GetFactory() | |
RCP< ParameterList > | RemoveFactoriesFromList (const ParameterList &list) const |
virtual RCP< const ParameterList > | GetValidParameterList () const |
Return a const parameter list of valid parameters that setParameterList() will accept. | |
void | EnableMultipleCallCheck () const |
void | DisableMultipleCallCheck () const |
void | ResetDebugData () const |
![]() | |
FactoryBase () | |
Constructor. | |
virtual | ~FactoryBase () |
Destructor. | |
int | GetID () const |
return unique factory id | |
![]() | |
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. | |
![]() | |
virtual | ~FactoryAcceptor () |
virtual void | SetFactory (const std::string &varName, const RCP< const FactoryBase > &factory)=0 |
Configuration. | |
virtual const RCP< const FactoryBase > | GetFactory (const std::string &varName) const =0 |
![]() | |
ParameterListAcceptorImpl () | |
virtual | ~ParameterListAcceptorImpl ()=default |
virtual void | SetParameterList (const Teuchos::ParameterList ¶mList) |
Set parameters from a parameter list and return with default values. | |
virtual const Teuchos::ParameterList & | GetParameterList () const |
void | SetParameter (const std::string &name, const ParameterEntry &entry) |
Set a parameter directly as a ParameterEntry. | |
const ParameterEntry & | GetParameter (const std::string &name) const |
Retrieves a const entry with the name name. | |
virtual void | GetDocumentation (std::ostream &os) const |
![]() | |
ParameterListAcceptor () | |
virtual | ~ParameterListAcceptor ()=default |
![]() | |
static void | EnableTimerSync () |
static void | DisableTimerSync () |
static void | EnableMultipleCheckGlobally () |
static void | DisableMultipleCheckGlobally () |
![]() | |
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 () |
![]() | |
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 |
bool | IsAvailable (Level &level, const std::string &varName) const |
![]() | |
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 | "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 129 of file MueLu_SmooVecCoalesceDropFactory_decl.hpp.
MueLu::SmooVecCoalesceDropFactory< Scalar, LocalOrdinal, GlobalOrdinal, Node >::SmooVecCoalesceDropFactory |
Constructor.
Definition at line 128 of file MueLu_SmooVecCoalesceDropFactory_def.hpp.
|
inlinevirtual |
Destructor.
Definition at line 142 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 105 of file MueLu_SmooVecCoalesceDropFactory_def.hpp.
|
virtual |
Input.
Implements MueLu::SingleLevelFactoryBase.
Definition at line 131 of file MueLu_SmooVecCoalesceDropFactory_def.hpp.
|
inline |
set predrop function
Definition at line 154 of file MueLu_SmooVecCoalesceDropFactory_decl.hpp.
|
virtual |
Build an object with this factory.
Implements MueLu::SingleLevelFactoryBase.
Definition at line 142 of file MueLu_SmooVecCoalesceDropFactory_def.hpp.
|
private |
Methods to support compatible-relaxation style dropping.
Definition at line 248 of file MueLu_SmooVecCoalesceDropFactory_def.hpp.
|
private |
Definition at line 423 of file MueLu_SmooVecCoalesceDropFactory_def.hpp.
|
mutableprivate |
Definition at line 164 of file MueLu_SmooVecCoalesceDropFactory_decl.hpp.