10 #ifndef MUELU_HIERARCHYMANAGER_DECL_HPP
11 #define MUELU_HIERARCHYMANAGER_DECL_HPP
24 #include "MueLu_Aggregates.hpp"
25 #include "MueLu_Hierarchy.hpp"
29 #include "MueLu_PerfUtils.hpp"
31 #ifdef HAVE_MUELU_INTREPID2
32 #include "Kokkos_DynRankView.hpp"
46 class HierarchyManager :
public HierarchyFactory<Scalar, LocalOrdinal, GlobalOrdinal, Node> {
47 #undef MUELU_HIERARCHYMANAGER_SHORT
49 typedef std::pair<std::string, const FactoryBase*>
keep_pair;
53 HierarchyManager(
int numDesiredLevel = MasterList::getDefault<int>(
"max levels"));
81 typedef std::map<std::string, RCP<const FactoryBase>>
FactoryMap;
136 std::map<int, std::vector<keep_pair>>
keep_;
167 #define MUELU_HIERARCHYMANAGER_SHORT
168 #endif // MUELU_HIERARCHYMANAGER_HPP
virtual void SetupExtra(Hierarchy &) const
Setup extra data.
virtual ~HierarchyManager()=default
Destructor.
MueLu::DefaultLocalOrdinal LocalOrdinal
Tpetra::KokkosClassic::DefaultNode::DefaultNodeType DefaultNode
void WriteDataAggregates(Hierarchy &H, const Teuchos::Array< int > &data, const std::string &name) const
void ExportDataSetKeepFlags(Hierarchy &H, const Teuchos::Array< int > &data, const std::string &name) const
RCP< FactoryManagerBase > GetFactoryManager(int levelID) const
Teuchos::Array< std::string > dataToSave_
void AddFactoryManager(int startLevel, int numDesiredLevel, RCP< FactoryManagerBase > manager)
Teuchos::Array< int > elementToNodeMapsToPrint_
Teuchos::RCP< FactoryManagerBase > LvlMngr(int levelID, int lastLevelID) const
std::map< std::string, RCP< const FactoryBase > > FactoryMap
Teuchos::Array< int > coordinatesToPrint_
virtual RCP< Hierarchy > CreateHierarchy() const
Create an empty Hierarchy object.
Teuchos::Array< int > nullspaceToPrint_
Lists of entities to be exported (or saved)
void WriteData(Hierarchy &H, const Teuchos::Array< int > &data, const std::string &name) const
size_t getNumFactoryManagers() const
returns number of factory managers stored in levelManagers_ vector.
MueLu::DefaultScalar Scalar
Tpetra::Details::DefaultTypes::scalar_type DefaultScalar
MueLu::DefaultGlobalOrdinal GlobalOrdinal
Teuchos::Array< int > aggregatesToPrint_
bool suppressNullspaceDimensionCheck_
Flag to indicate whether the check of the nullspace dimension is suppressed.
void ExportDataSetKeepFlagsAll(Hierarchy &H, const std::string &name) const
int graphOutputLevel_
-2 = no output, -1 = all levels
std::map< std::string, Teuchos::Array< int > > matricesToPrint_
virtual void SetupHierarchy(Hierarchy &H) const
Setup Hierarchy object.
virtual void SetupOperator(Operator &) const
Setup Matrix object.
HierarchyManager(int numDesiredLevel=MasterList::getDefault< int >("max levels"))
Constructor.
std::pair< std::string, const FactoryBase * > keep_pair
void WriteDataFC(Hierarchy &H, const Teuchos::Array< int > &data, const std::string &name, const std::string &ofname) const
bool doPRViaCopyrebalance_
Xpetra::global_size_t maxCoarseSize_
void WriteFieldContainer(const std::string &fileName, T &fcont, const Map &colMap) const
Teuchos::RCP< Teuchos::ParameterList > matvecParams_
bool fuseProlongationAndUpdate_
std::map< int, std::vector< keep_pair > > keep_
Provides methods to build a multigrid hierarchy and apply multigrid cycles.
Array< RCP< FactoryManagerBase > > levelManagers_
void ExportDataSetKeepFlagsNextLevel(Hierarchy &H, const Teuchos::Array< int > &data, const std::string &name) const