|
MueLu Version of the Day
|
Prolongator factory performing semi-coarsening. More...
#include <MueLu_SemiCoarsenPFactory_decl.hpp>
Build methods. | |
| bool | bTransferCoordinates_ |
| void | Build (Level &fineLevel, Level &coarseLevel) const |
| Build an object with this factory. | |
| void | BuildP (Level &fineLevel, Level &coarseLevel) const |
| Abstract Build method. | |
| LO | FindCpts (LO const PtsPerLine, LO const CoarsenRate, LO const Thin, LO **LayerCpts) const |
| LO | MakeSemiCoarsenP (LO const Ntotal, LO const nz, LO const CoarsenRate, LO const LayerId[], LO const VertLineId[], LO const DofsPerNode, RCP< Matrix > &Amat, RCP< Matrix > &P, RCP< const Map > &coarseMap, const RCP< MultiVector > fineNullspace, RCP< MultiVector > &coarseNullspace, RCP< Matrix > &R, bool buildRestriction, bool doLinear) const |
| void | RevertToPieceWiseConstant (RCP< Matrix > &P, LO BlkSize) const |
Constructors/Destructors. | |
| SemiCoarsenPFactory () | |
| Constructor. | |
| virtual | ~SemiCoarsenPFactory () |
| Destructor. | |
| RCP< const ParameterList > | GetValidParameterList () const |
| Return a const parameter list of valid parameters that setParameterList() will accept. | |
| void | DeclareInput (Level &fineLevel, Level &coarseLevel) const |
| Input. | |
Additional Inherited Members | |
Public Member Functions inherited from MueLu::PFactory | |
| PFactory () | |
| Constructor. | |
| virtual | ~PFactory () |
| Destructor. | |
| void | setRestrictionMode (bool bRestrictionMode=false) |
| bool | isRestrictionModeSet () |
| returns restrictionMode flag | |
Public Member Functions inherited from MueLu::TwoLevelFactoryBase | |
| TwoLevelFactoryBase () | |
| Constructor. | |
| virtual | ~TwoLevelFactoryBase () |
| Destructor. | |
| virtual void | CallDeclareInput (Level &requestedLevel) const |
| virtual void | CallBuild (Level &requestedLevel) const |
Public Member Functions inherited from MueLu::Factory | |
| 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 |
| void | EnableMultipleCallCheck () const |
| void | DisableMultipleCallCheck () const |
| void | ResetDebugData () const |
Public Member Functions inherited from MueLu::FactoryBase | |
| FactoryBase () | |
| Constructor. | |
| virtual | ~FactoryBase () |
| Destructor. | |
| int | GetID () const |
| return unique factory id | |
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. | |
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. | |
| virtual const Teuchos::ParameterList & | GetParameterList () const |
| virtual const Teuchos::ParameterList & | GetParameterListWithoutValidation () 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 |
Public Member Functions inherited from MueLu::ParameterListAcceptor | |
| ParameterListAcceptor () | |
| virtual | ~ParameterListAcceptor ()=default |
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 | 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 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 Attributes inherited from MueLu::PFactory | |
| bool | restrictionMode_ |
Static Protected Attributes inherited from MueLu::Factory | |
| static bool | timerSync_ = false |
Prolongator factory performing semi-coarsening.
The semi-coarsening is performed along user-provided "vertical lines" (in z-direction). The line detection algorithm can be found in the LineDetectionFactory. Usually, the SemiCoarsenPFactory is used together with the TogglePFactory and a second TentativePFactory which allows to dynamically switch from semi-coarsening to aggregation-based coarsening (or any other compatible coarsening algorithm).
| Parameter | type | default | master.xml | validated | requested | description |
|---|---|---|---|---|---|---|
| A | Factory | null | * | * | Generating factory of the matrix A used during the prolongator smoothing process | |
| Nullspace | Factory | null | * | * | Generating factory of the nullspace. The SemiCoarsenPFactory provides a coarse version of the given Nullspace. | |
| Coordinates | Factory | NoFactory | * | * | Generating factory for coorindates. The coordinates are expected to be provided on the finest level using the NoFactory mechanism. The coordinates are used to determine the number of z-layers if not otherwise provided by the user. | |
| LineDetection_VertLineIds | Factory | null | * | * | Generating factory for LineDetection information. Usually provided by the LineDetectionFactory. Array with vertical line ids for all nodes on current processor. | |
| LineDetection_Layers | Factory | null | * | * | Generating factory for LineDetection information. Usually provided by the LineDetectionFactory. Array with layer id for all nodes on current processor. | |
| CoarseNumZLayers | Factory | null | * | * | Generating factory for LineDetection information. Usually provided by the LineDetectionFactory. Number of remaining z-layers after semi-coarsening. |
| semicoarsen: coarsen rate | int | * | * | | Coarsening rate along vertical lines (2 corresponds to classical semicoarsening. Values > 2 for more aggressive coarsening). |
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 SemiCoarsenPFactory::GetValidParameters).
The * in the requested column states that the data is requested as input with all dependencies (see SemiCoarsenPFactory::DeclareInput).
After SemiCoarsenPFactory::Build the following data is available (if requested)
| Parameter | generated by | description |
|---|---|---|
| P | SemiCoarsenPFactory | Prolongator |
| Nullspace | SemiCoarsenPFactory | Coarse nullspace (the fine level nullspace information is coarsened using P to generate a coarse version of the nullspace. No scaling is applied. |
| NumZLayers | NoFactory | Number of z layers after coarsening. Necessary input for LineDetectionFactory. Useful input for TogglePFactory. |
Definition at line 74 of file MueLu_SemiCoarsenPFactory_decl.hpp.
|
inline |
Constructor.
Definition at line 83 of file MueLu_SemiCoarsenPFactory_decl.hpp.
|
inlinevirtual |
Destructor.
Definition at line 87 of file MueLu_SemiCoarsenPFactory_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 32 of file MueLu_SemiCoarsenPFactory_def.hpp.
|
virtual |
Input.
Implements MueLu::TwoLevelFactoryBase.
Definition at line 53 of file MueLu_SemiCoarsenPFactory_def.hpp.
|
virtual |
Build an object with this factory.
Implements MueLu::TwoLevelFactoryBase.
Definition at line 84 of file MueLu_SemiCoarsenPFactory_def.hpp.
|
virtual |
Abstract Build method.
Implements MueLu::PFactory.
Definition at line 89 of file MueLu_SemiCoarsenPFactory_def.hpp.
|
private |
Definition at line 247 of file MueLu_SemiCoarsenPFactory_def.hpp.
|
private |
Definition at line 304 of file MueLu_SemiCoarsenPFactory_def.hpp.
|
private |
Definition at line 950 of file MueLu_SemiCoarsenPFactory_def.hpp.
|
mutableprivate |
Definition at line 115 of file MueLu_SemiCoarsenPFactory_decl.hpp.