MueLu
Version of the Day
|
Prolongator factory performing semi-coarsening. More...
#include <MueLu_SemiCoarsenPFactory_kokkos_decl.hpp>
Public Types | |
typedef LocalOrdinal | local_ordinal_type |
typedef GlobalOrdinal | global_ordinal_type |
typedef Node::execution_space | execution_space |
typedef Node::device_type | DeviceType |
typedef Node | node_type |
Public Member Functions | |
RCP< const ParameterList > | GetValidParameterList () const |
Return a const parameter list of valid parameters that setParameterList() will accept. More... | |
void | BuildSemiCoarsenP (Level &coarseLevel, const LO NFRows, const LO NFNodes, const LO DofsPerNode, const LO NFLayers, const LO NCLayers, const ArrayRCP< LO > LayerId, const ArrayRCP< LO > VertLineId, const RCP< Matrix > &Amat, const RCP< MultiVector > fineNullspace, RCP< Matrix > &P, RCP< MultiVector > &coarseNullspace) const |
Public Member Functions inherited from MueLu::PFactory | |
PFactory () | |
Constructor. More... | |
virtual | ~PFactory () |
Destructor. More... | |
void | setRestrictionMode (bool bRestrictionMode=false) |
bool | isRestrictionModeSet () |
returns restrictionMode flag More... | |
Public Member Functions inherited from MueLu::TwoLevelFactoryBase | |
TwoLevelFactoryBase () | |
Constructor. More... | |
virtual | ~TwoLevelFactoryBase () |
Destructor. More... | |
virtual void | CallDeclareInput (Level &requestedLevel) const |
virtual void | CallBuild (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 |
Public Attributes | |
bool | bTransferCoordinates_ |
Constructors/Destructors. | |
SemiCoarsenPFactory_kokkos () | |
Constructor. More... | |
virtual | ~SemiCoarsenPFactory_kokkos ()=default |
Destructor. More... | |
void | DeclareInput (Level &fineLevel, Level &coarseLevel) const |
Input. More... | |
Build methods. | |
void | Build (Level &fineLevel, Level &coarseLevel) const |
Build an object with this factory. More... | |
void | BuildP (Level &fineLevel, Level &coarseLevel) const |
Abstract Build method. 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 |
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_kokkos is used together with the TogglePFactory and a second TentativePFactory_kokkos 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_kokkos 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 | null | * | * | 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_kokkos::GetValidParameters).
The * in the requested
column states that the data is requested as input with all dependencies (see SemiCoarsenPFactory_kokkos::DeclareInput).
After SemiCoarsenPFactory_kokkos::Build the following data is available (if requested)
Parameter | generated by | description |
---|---|---|
P | SemiCoarsenPFactory_kokkos | Prolongator |
Nullspace | SemiCoarsenPFactory_kokkos | 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 61 of file MueLu_SemiCoarsenPFactory_kokkos_decl.hpp.
typedef LocalOrdinal MueLu::SemiCoarsenPFactory_kokkos< Scalar, LocalOrdinal, GlobalOrdinal, Node >::local_ordinal_type |
Definition at line 63 of file MueLu_SemiCoarsenPFactory_kokkos_decl.hpp.
typedef GlobalOrdinal MueLu::SemiCoarsenPFactory_kokkos< Scalar, LocalOrdinal, GlobalOrdinal, Node >::global_ordinal_type |
Definition at line 64 of file MueLu_SemiCoarsenPFactory_kokkos_decl.hpp.
typedef Node::execution_space MueLu::SemiCoarsenPFactory_kokkos< Scalar, LocalOrdinal, GlobalOrdinal, Node >::execution_space |
Definition at line 65 of file MueLu_SemiCoarsenPFactory_kokkos_decl.hpp.
typedef Node::device_type MueLu::SemiCoarsenPFactory_kokkos< Scalar, LocalOrdinal, GlobalOrdinal, Node >::DeviceType |
Definition at line 66 of file MueLu_SemiCoarsenPFactory_kokkos_decl.hpp.
typedef Node MueLu::SemiCoarsenPFactory_kokkos< Scalar, LocalOrdinal, GlobalOrdinal, Node >::node_type |
Definition at line 67 of file MueLu_SemiCoarsenPFactory_kokkos_decl.hpp.
|
inline |
Constructor.
Definition at line 78 of file MueLu_SemiCoarsenPFactory_kokkos_decl.hpp.
|
virtualdefault |
Destructor.
|
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 41 of file MueLu_SemiCoarsenPFactory_kokkos_def.hpp.
|
virtual |
Input.
Implements MueLu::TwoLevelFactoryBase.
Definition at line 71 of file MueLu_SemiCoarsenPFactory_kokkos_def.hpp.
|
virtual |
Build an object with this factory.
Implements MueLu::TwoLevelFactoryBase.
Definition at line 104 of file MueLu_SemiCoarsenPFactory_kokkos_def.hpp.
|
virtual |
Abstract Build method.
Implements MueLu::PFactory.
Definition at line 113 of file MueLu_SemiCoarsenPFactory_kokkos_def.hpp.
void MueLu::SemiCoarsenPFactory_kokkos< Scalar, LocalOrdinal, GlobalOrdinal, Node >::BuildSemiCoarsenP | ( | Level & | coarseLevel, |
const LO | NFRows, | ||
const LO | NFNodes, | ||
const LO | DofsPerNode, | ||
const LO | NFLayers, | ||
const LO | NCLayers, | ||
const ArrayRCP< LO > | LayerId, | ||
const ArrayRCP< LO > | VertLineId, | ||
const RCP< Matrix > & | Amat, | ||
const RCP< MultiVector > | fineNullspace, | ||
RCP< Matrix > & | P, | ||
RCP< MultiVector > & | coarseNullspace | ||
) | const |
Definition at line 298 of file MueLu_SemiCoarsenPFactory_kokkos_def.hpp.
|
mutable |
Definition at line 111 of file MueLu_SemiCoarsenPFactory_kokkos_decl.hpp.