46#ifndef MUELU_CLASSICALPFACTORY_DECL_HPP
47#define MUELU_CLASSICALPFACTORY_DECL_HPP
49#include <Xpetra_MultiVectorFactory_fwd.hpp>
50#include <Xpetra_VectorFactory_fwd.hpp>
51#include <Xpetra_CrsGraphFactory_fwd.hpp>
52#include <Xpetra_Map_fwd.hpp>
53#include <Xpetra_MapFactory_fwd.hpp>
54#include <Xpetra_Import_fwd.hpp>
55#include <Xpetra_Vector_fwd.hpp>
59#include "MueLu_PFactory.hpp"
75#undef MUELU_CLASSICALPFACTORY_SHORT
110 void GenerateStrengthFlags(
const Matrix & A,
const GraphBase & graph, Teuchos::Array<size_t> & eis_rowptr, Teuchos::Array<bool> & edgeIsStrong)
const;
113 void GhostCoarseMap(
const Matrix &A,
const Import & Importer,
const ArrayRCP<const LO> myPointType,
const RCP<const Map> & coarseMap, RCP<const Map> & coarseColMap)
const;
116 void Coarsen_ClassicalModified(
const Matrix & A,
const RCP<const Matrix> & Aghost,
const GraphBase & graph, RCP<const Map> & coarseColMap, RCP<const Map> & coarseDomainMap, LO num_c_points, LO num_f_points,
const Teuchos::ArrayView<const LO> & myPointType,
const Teuchos::ArrayView<const LO> & myPointType_ghost,
const Teuchos::Array<LO> & cpoint2pcol,
const Teuchos::Array<LO> & pcol2cpoint, Teuchos::Array<size_t> & eis_rowptr, Teuchos::Array<bool> & edgeIsStrong, RCP<LocalOrdinalVector> & BlockNumber, RCP<const Import> remoteOnlyImporter, RCP<Matrix> & P)
const;
117 void Coarsen_Direct(
const Matrix & A,
const RCP<const Matrix> & Aghost,
const GraphBase & graph, RCP<const Map> & coarseColMap, RCP<const Map> & coarseDomainMap, LO num_c_points, LO num_f_points,
const Teuchos::ArrayView<const LO> & myPointType,
const Teuchos::ArrayView<const LO> & myPointType_ghost,
const Teuchos::Array<LO> & cpoint2pcol,
const Teuchos::Array<LO> & pcol2cpoint, Teuchos::Array<size_t> & eis_rowptr, Teuchos::Array<bool> & edgeIsStrong, RCP<LocalOrdinalVector> & BlockNumber, RCP<Matrix> & P)
const;
118 void Coarsen_Ext_Plus_I(
const Matrix & A,
const RCP<const Matrix> & Aghost,
const GraphBase & graph, RCP<const Map> & coarseColMap, RCP<const Map> & coarseDomainMap, LO num_c_points, LO num_f_points,
const Teuchos::ArrayView<const LO> & myPointType,
const Teuchos::ArrayView<const LO> & myPointType_ghost,
const Teuchos::Array<LO> & cpoint2pcol,
const Teuchos::Array<LO> & pcol2cpoint, Teuchos::Array<size_t> & eis_rowptr, Teuchos::Array<bool> & edgeIsStrong, RCP<LocalOrdinalVector> & BlockNumber, RCP<Matrix> & P)
const;
126#define MUELU_CLASSICALPFACTORY_SHORT
MueLu::DefaultLocalOrdinal LocalOrdinal
MueLu::DefaultScalar Scalar
MueLu::DefaultGlobalOrdinal GlobalOrdinal
point_type
F/C/Dirichlet point type.
void BuildP(Level &fineLevel, Level &coarseLevel) const
Abstract Build method.
void Coarsen_Direct(const Matrix &A, const RCP< const Matrix > &Aghost, const GraphBase &graph, RCP< const Map > &coarseColMap, RCP< const Map > &coarseDomainMap, LO num_c_points, LO num_f_points, const Teuchos::ArrayView< const LO > &myPointType, const Teuchos::ArrayView< const LO > &myPointType_ghost, const Teuchos::Array< LO > &cpoint2pcol, const Teuchos::Array< LO > &pcol2cpoint, Teuchos::Array< size_t > &eis_rowptr, Teuchos::Array< bool > &edgeIsStrong, RCP< LocalOrdinalVector > &BlockNumber, RCP< Matrix > &P) const
ClassicalPFactory()
Constructor.
void GenerateStrengthFlags(const Matrix &A, const GraphBase &graph, Teuchos::Array< size_t > &eis_rowptr, Teuchos::Array< bool > &edgeIsStrong) const
void Build(Level &fineLevel, Level &coarseLevel) const
Build an object with this factory.
void DeclareInput(Level &fineLevel, Level &coarseLevel) const
Input.
virtual ~ClassicalPFactory()
Destructor.
void Coarsen_Ext_Plus_I(const Matrix &A, const RCP< const Matrix > &Aghost, const GraphBase &graph, RCP< const Map > &coarseColMap, RCP< const Map > &coarseDomainMap, LO num_c_points, LO num_f_points, const Teuchos::ArrayView< const LO > &myPointType, const Teuchos::ArrayView< const LO > &myPointType_ghost, const Teuchos::Array< LO > &cpoint2pcol, const Teuchos::Array< LO > &pcol2cpoint, Teuchos::Array< size_t > &eis_rowptr, Teuchos::Array< bool > &edgeIsStrong, RCP< LocalOrdinalVector > &BlockNumber, RCP< Matrix > &P) const
RCP< const ParameterList > GetValidParameterList() const
Return a const parameter list of valid parameters that setParameterList() will accept.
typename ClassicalMapFactory::point_type point_type
void Coarsen_ClassicalModified(const Matrix &A, const RCP< const Matrix > &Aghost, const GraphBase &graph, RCP< const Map > &coarseColMap, RCP< const Map > &coarseDomainMap, LO num_c_points, LO num_f_points, const Teuchos::ArrayView< const LO > &myPointType, const Teuchos::ArrayView< const LO > &myPointType_ghost, const Teuchos::Array< LO > &cpoint2pcol, const Teuchos::Array< LO > &pcol2cpoint, Teuchos::Array< size_t > &eis_rowptr, Teuchos::Array< bool > &edgeIsStrong, RCP< LocalOrdinalVector > &BlockNumber, RCP< const Import > remoteOnlyImporter, RCP< Matrix > &P) const
void GhostCoarseMap(const Matrix &A, const Import &Importer, const ArrayRCP< const LO > myPointType, const RCP< const Map > &coarseMap, RCP< const Map > &coarseColMap) const
MueLu representation of a graph.
Class that holds all level-specific information.
Factory that provides an interface for a concrete implementation of a prolongation operator.
Namespace for MueLu classes and methods.
KokkosClassic::DefaultNode::DefaultNodeType DefaultNode
Tpetra::Details::DefaultTypes::scalar_type DefaultScalar