10#ifndef MUELU_FACTORY_HPP
11#define MUELU_FACTORY_HPP
16#include "Teuchos_ENull.hpp"
17#include "Teuchos_FilteredIterator.hpp"
18#include "Teuchos_ParameterEntry.hpp"
19#include "Teuchos_ParameterList.hpp"
20#include "Teuchos_RCPDecl.hpp"
21#include "Teuchos_RCPNode.hpp"
22#include "Teuchos_StringIndexedOrderedValueObjectContainer.hpp"
23#include "Teuchos_RCP.hpp"
48 virtual void SetFactory(
const std::string& varName,
const RCP<const FactoryBase>& factory);
51 const RCP<const FactoryBase>
GetFactory(
const std::string& varName)
const;
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
Base class for factories (e.g., R, P, and A_coarse).
void Input(Level &level, const std::string &varName) const
virtual void SetFactory(const std::string &varName, const RCP< const FactoryBase > &factory)
Configuration.
virtual ~Factory()
Destructor.
void ResetDebugData() const
void DisableMultipleCallCheck() const
T Get(Level &level, const std::string &varName) const
bool IsType(Level &level, const std::string &varName) const
static void EnableTimerSync()
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.
bool IsAvailable(Level &level, const std::string &varName) const
static void EnableMultipleCheckGlobally()
const RCP< const FactoryBase > GetFactory(const std::string &varName) const
Default implementation of FactoryAcceptor::GetFactory()
RCP< ParameterList > RemoveFactoriesFromList(const ParameterList &list) const
static void DisableMultipleCheckGlobally()
void EnableMultipleCallCheck() const
static void DisableTimerSync()
T Get(Level &level, const std::string &varName, const std::string &varParamName) const
Class that holds all level-specific information.
bool IsType(const std::string &ename, const FactoryBase *factory=NoFactory::get())
T & Get(const std::string &ename, const FactoryBase *factory=NoFactory::get())
Get data without decrementing associated storage counter (i.e., read-only access)....
void Set(const std::string &ename, const T &entry, const FactoryBase *factory=NoFactory::get())
Namespace for MueLu classes and methods.