10#ifndef MUELU_CONSTRAINTFACTORY_DEF_HPP
11#define MUELU_CONSTRAINTFACTORY_DEF_HPP
15#include "MueLu_Constraint.hpp"
20template <
class Scalar,
class LocalOrdinal,
class GlobalOrdinal,
class Node>
22 RCP<ParameterList> validParamList = rcp(
new ParameterList());
24 validParamList->set<RCP<const FactoryBase> >(
"FineNullspace", Teuchos::null,
"Generating factory for the nullspace");
25 validParamList->set<RCP<const FactoryBase> >(
"CoarseNullspace", Teuchos::null,
"Generating factory for the nullspace");
26 validParamList->set<RCP<const FactoryBase> >(
"Ppattern", Teuchos::null,
"Generating factory for the nonzero pattern");
28 return validParamList;
31template <
class Scalar,
class LocalOrdinal,
class GlobalOrdinal,
class Node>
33 Input(fineLevel,
"Nullspace",
"FineNullspace");
34 Input(coarseLevel,
"Nullspace",
"CoarseNullspace");
35 Input(coarseLevel,
"Ppattern");
38template <
class Scalar,
class LocalOrdinal,
class GlobalOrdinal,
class Node>
42 RCP<MultiVector> fineNullspace = Get<RCP<MultiVector> >(fineLevel,
"Nullspace",
"FineNullspace");
43 RCP<MultiVector> coarseNullspace = Get<RCP<MultiVector> >(coarseLevel,
"Nullspace",
"CoarseNullspace");
46 constraint->Setup(fineNullspace, coarseNullspace,
47 Get<RCP<const CrsGraph> >(coarseLevel,
"Ppattern"));
49 Set(coarseLevel,
"Constraint", constraint);
RCP< const ParameterList > GetValidParameterList() const
Return a const parameter list of valid parameters that setParameterList() will accept.
void Build(Level &fineLevel, Level &coarseLevel) const
Build method.
void DeclareInput(Level &fineLevel, Level &coarseLevel) const
Input.
Constraint space information for the potential prolongator.
Timer to be used in factories. Similar to Monitor but with additional timers.
Class that holds all level-specific information.
Namespace for MueLu classes and methods.