17 #ifndef PACKAGES_MUELU_SRC_MUECENTRAL_MUELU_TOPRAPFACTORY_DEF_HPP_
18 #define PACKAGES_MUELU_SRC_MUECENTRAL_MUELU_TOPRAPFACTORY_DEF_HPP_
28 template <
class Scalar,
class LocalOrdinal,
class GlobalOrdinal,
class Node>
30 : PFact_(parentFactoryManager->GetFactory(
"P"))
31 , RFact_(parentFactoryManager->GetFactory(
"R"))
32 , AcFact_(parentFactoryManager->GetFactory(
"A")) {}
34 template <
class Scalar,
class LocalOrdinal,
class GlobalOrdinal,
class Node>
36 : PFact_(parentFactoryManagerCoarse->GetFactory(
"P"))
37 , RFact_(parentFactoryManagerCoarse->GetFactory(
"R"))
38 , AcFact_(parentFactoryManagerCoarse->GetFactory(
"A")) {}
40 template <
class Scalar,
class LocalOrdinal,
class GlobalOrdinal,
class Node>
43 template <
class Scalar,
class LocalOrdinal,
class GlobalOrdinal,
class Node>
45 if (PFact_ != Teuchos::null) coarseLevel.
DeclareInput(
"P", PFact_.get());
46 if (RFact_ != Teuchos::null) coarseLevel.
DeclareInput(
"R", RFact_.get());
50 template <
class Scalar,
class LocalOrdinal,
class GlobalOrdinal,
class Node>
56 if (oP == Teuchos::null)
return;
TopRAPFactory(RCP< const FactoryManagerBase > parentFactoryManager)
T & Get(const std::string &ename, const FactoryBase *factory=NoFactory::get())
Get data without decrementing associated storage counter (i.e., read-only access). Usage: Level->Get< RCP<Matrix> >("A", factory) if factory == NULL => use default factory.
void DeclareInput(Level &fineLevel, Level &coarseLevel) const
Input.
User data are always kept. This flag is set automatically when Level::Set("data", data) is used...
static const NoFactory * get()
Class that holds all level-specific information.
Keep data only for this run. Used to keep data useful for Hierarchy::Iterate(). Data will be deleted ...
void RemoveKeepFlag(const std::string &ename, const FactoryBase *factory, KeepType keep=MueLu::All)
static const RCP< const NoFactory > getRCP()
Static Get() functions.
void AddKeepFlag(const std::string &ename, const FactoryBase *factory=NoFactory::get(), KeepType keep=MueLu::Keep)
void Set(const std::string &ename, const T &entry, const FactoryBase *factory=NoFactory::get())
void Build(Level &fineLevel, Level &coarseLevel) const
Build an object with this factory.
void DeclareInput(const std::string &ename, const FactoryBase *factory, const FactoryBase *requestedBy=NoFactory::get())
Callback from FactoryBase::CallDeclareInput() and FactoryBase::DeclareInput()