10#ifndef MUELU_HIERARCHYMANAGER_DECL_HPP
11#define MUELU_HIERARCHYMANAGER_DECL_HPP
16#include <Teuchos_Array.hpp>
18#include <Xpetra_Operator.hpp>
19#include <Xpetra_IO.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"
47#undef MUELU_HIERARCHYMANAGER_SHORT
49 typedef std::pair<std::string, const FactoryBase*>
keep_pair;
59 void AddFactoryManager(
int startLevel,
int numDesiredLevel, RCP<FactoryManagerBase> manager);
81 typedef std::map<std::string, RCP<const FactoryBase>>
FactoryMap;
94 Teuchos::RCP<FactoryManagerBase>
LvlMngr(
int levelID,
int lastLevelID)
const;
137 std::map<int, std::vector<keep_pair>>
keep_;
155 void WriteDataFC(
Hierarchy& H,
const Teuchos::Array<int>& data,
const std::string& name,
const std::string& ofname)
const;
168#define MUELU_HIERARCHYMANAGER_SHORT
MueLu::DefaultLocalOrdinal LocalOrdinal
MueLu::DefaultScalar Scalar
MueLu::DefaultGlobalOrdinal GlobalOrdinal
Teuchos::Array< int > elementToNodeMapsToPrint_
void WriteFieldContainer(const std::string &fileName, T &fcont, const Map &colMap) const
void ExportDataSetKeepFlagsNextLevel(Hierarchy &H, const Teuchos::Array< int > &data, const std::string &name) const
virtual void SetupHierarchy(Hierarchy &H) const
Setup Hierarchy object.
Teuchos::Array< int > coordinatesToPrint_
Teuchos::RCP< Teuchos::ParameterList > matvecParams_
virtual void SetupExtra(Hierarchy &) const
Setup extra data.
Teuchos::Array< int > aggregatesToPrint_
std::map< std::string, RCP< const FactoryBase > > FactoryMap
void ExportDataSetKeepFlags(Hierarchy &H, const Teuchos::Array< int > &data, const std::string &name) const
bool doPRViaCopyrebalance_
void WriteDataFC(Hierarchy &H, const Teuchos::Array< int > &data, const std::string &name, const std::string &ofname) const
void WriteData(Hierarchy &H, const Teuchos::Array< int > &data, const std::string &name) const
std::map< int, std::vector< keep_pair > > keep_
bool suppressNullspaceDimensionCheck_
Flag to indicate whether the check of the nullspace dimension is suppressed.
virtual void SetupOperator(Operator &) const
Setup Matrix object.
RCP< FactoryManagerBase > GetFactoryManager(int levelID) const
std::pair< std::string, const FactoryBase * > keep_pair
void WriteDataAggregates(Hierarchy &H, const Teuchos::Array< int > &data, const std::string &name) const
int graphOutputLevel_
-2 = no output, -1 = all levels
void AddFactoryManager(int startLevel, int numDesiredLevel, RCP< FactoryManagerBase > manager)
virtual RCP< Hierarchy > CreateHierarchy(const std::string &label) const
std::map< std::string, Teuchos::Array< int > > matricesToPrint_
Xpetra::global_size_t maxCoarseSize_
void ExportDataSetKeepFlagsAll(Hierarchy &H, const std::string &name) const
Teuchos::Array< int > nullspaceToPrint_
Lists of entities to be exported (or saved).
bool fuseProlongationAndUpdate_
virtual ~HierarchyManager()=default
Destructor.
virtual RCP< Hierarchy > CreateHierarchy() const
Create an empty Hierarchy object.
Array< RCP< FactoryManagerBase > > levelManagers_
HierarchyManager(int numDesiredLevel=MasterList::getDefault< int >("max levels"))
Constructor.
Teuchos::Array< int > materialToPrint_
Teuchos::Array< std::string > dataToSave_
Teuchos::RCP< FactoryManagerBase > LvlMngr(int levelID, int lastLevelID) const
size_t getNumFactoryManagers() const
returns number of factory managers stored in levelManagers_ vector.
Provides methods to build a multigrid hierarchy and apply multigrid cycles.
static const T & getDefault(const std::string &name)
Returns default value on the "master" list for a parameter with the specified name and type.
Namespace for MueLu classes and methods.
Tpetra::KokkosClassic::DefaultNode::DefaultNodeType DefaultNode
Tpetra::Details::DefaultTypes::scalar_type DefaultScalar