10 #ifndef MUELU_FACTORY_HPP
11 #define MUELU_FACTORY_HPP
16 #include "Teuchos_ENull.hpp"
17 #include "Teuchos_FilteredIterator.hpp"
22 #include "Teuchos_StringIndexedOrderedValueObjectContainer.hpp"
64 void Input(
Level& level,
const std::string& varName)
const;
66 void Input(
Level& level,
const std::string& varName,
const std::string& varParamName)
const;
69 T
Get(
Level& level,
const std::string& varName)
const {
75 T
Get(
Level& level,
const std::string& varName,
const std::string& varParamName)
const {
80 void Set(
Level& level,
const std::string& varName,
const T& data)
const {
81 return level.
Set<T>(varName, data,
this);
98 #ifdef HAVE_MUELU_DEBUG
100 enum multipleCallCheckEnum{ENABLED, DISABLED, FIRSTCALL};
110 mutable multipleCallCheckEnum multipleCallCheck_;
111 static multipleCallCheckEnum multipleCallCheckGlobal_;
112 mutable int lastLevelID_;
125 #define MUELU_FACTORY_SHORT
126 #endif // ifndef MUELU_FACTORY_HPP
void DisableMultipleCallCheck() const
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.
virtual void SetFactory(const std::string &varName, const RCP< const FactoryBase > &factory)
Configuration.
T Get(Level &level, const std::string &varName) const
static void DisableTimerSync()
RCP< ParameterList > RemoveFactoriesFromList(const ParameterList &list) const
static void DisableMultipleCheckGlobally()
bool IsType(Level &level, const std::string &varName) const
static void EnableTimerSync()
Base class for factories (e.g., R, P, and A_coarse).
Class that holds all level-specific information.
void EnableMultipleCallCheck() const
void Set(Level &level, const std::string &varName, const T &data) const
virtual RCP< const ParameterList > GetValidParameterList() const
Return a const parameter list of valid parameters that setParameterList() will accept.
void ResetDebugData() const
void Set(const std::string &ename, const T &entry, const FactoryBase *factory=NoFactory::get())
bool IsAvailable(Level &level, const std::string &varName) const
bool IsType(const std::string &ename, const FactoryBase *factory=NoFactory::get())
T Get(Level &level, const std::string &varName, const std::string &varParamName) const
static void EnableMultipleCheckGlobally()
void Input(Level &level, const std::string &varName) const
const RCP< const FactoryBase > GetFactory(const std::string &varName) const
Default implementation of FactoryAcceptor::GetFactory()
virtual ~Factory()
Destructor.