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;
53 HierarchyManager(
int numDesiredLevel = MasterList::getDefault<int>(
"max levels"));
59 void AddFactoryManager(
int startLevel,
int numDesiredLevel, RCP<FactoryManagerBase> manager);
87 typedef std::map<std::string, RCP<const FactoryBase>>
FactoryMap;
100 Teuchos::RCP<FactoryManagerBase>
LvlMngr(
int levelID,
int lastLevelID)
const;
143 std::map<int, std::vector<keep_pair>>
keep_;
156 void WriteData(
Hierarchy& H,
const Teuchos::Array<int>& data,
const std::string& name)
const;
161 void WriteDataFC(
Hierarchy& H,
const Teuchos::Array<int>& data,
const std::string& name,
const std::string& ofname)
const;
174#define MUELU_HIERARCHYMANAGER_SHORT
MueLu::DefaultLocalOrdinal LocalOrdinal
MueLu::DefaultScalar Scalar
MueLu::DefaultGlobalOrdinal GlobalOrdinal
void WriteFieldContainer(const std::string &fileName, T &fcont, const Map &colMap) const
Teuchos::RCP< Teuchos::ParameterList > matvecParams_
void ExportDataSetKeepFlagsNextLevel(Hierarchy &H, const Teuchos::Array< int > &data, const std::string &name) const
Array< RCP< FactoryManagerBase > > levelManagers_
Teuchos::Array< int > elementToNodeMapsToPrint_
virtual void SetupExtra(Hierarchy &) const
Setup extra data.
Teuchos::Array< int > nullspaceToPrint_
Lists of entities to be exported (or saved)
int GetNumDesiredLevel()
Get the number of desired levels.
std::map< std::string, RCP< const FactoryBase > > FactoryMap
void ExportDataSetKeepFlags(Hierarchy &H, const Teuchos::Array< int > &data, const std::string &name) const
bool doPRViaCopyrebalance_
std::map< int, std::vector< keep_pair > > keep_
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< std::string, Teuchos::Array< int > > matricesToPrint_
Teuchos::Array< int > materialToPrint_
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)
void SetNumDesiredLevel(int numDesiredLevel)
Set the number of desired levels.
virtual void SetupHierarchy(Hierarchy &H) const
Setup Hierarchy object.
Xpetra::global_size_t maxCoarseSize_
virtual RCP< Hierarchy > CreateHierarchy() const
Create an empty Hierarchy object.
void ExportDataSetKeepFlagsAll(Hierarchy &H, const std::string &name) const
Teuchos::Array< std::string > dataToKeep_
bool fuseProlongationAndUpdate_
virtual ~HierarchyManager()=default
Destructor.
Teuchos::Array< int > coordinatesToPrint_
Teuchos::RCP< FactoryManagerBase > LvlMngr(int levelID, int lastLevelID) const
Teuchos::Array< int > aggregatesToPrint_
size_t getNumFactoryManagers() const
returns number of factory managers stored in levelManagers_ vector.
Provides methods to build a multigrid hierarchy and apply multigrid cycles.
Namespace for MueLu classes and methods.
Tpetra::KokkosClassic::DefaultNode::DefaultNodeType DefaultNode
Tpetra::Details::DefaultTypes::scalar_type DefaultScalar