10#ifndef MUELU_DENSECONSTRAINT_DECL_HPP
11#define MUELU_DENSECONSTRAINT_DECL_HPP
13#include "Teuchos_ScalarTraits.hpp"
15#include <Xpetra_MultiVector_fwd.hpp>
16#include <Xpetra_Matrix.hpp>
17#include <Xpetra_CrsGraph_fwd.hpp>
18#include <Xpetra_MapFactory_fwd.hpp>
21#include "MueLu_Constraint.hpp"
30 :
public Constraint<Scalar, LocalOrdinal, GlobalOrdinal, Node> {
31#undef MUELU_DENSECONSTRAINT_SHORT
39 using MagnitudeType =
typename Teuchos::ScalarTraits<Scalar>::magnitudeType;
51 DenseConstraint(
const RCP<MultiVector>& B,
const RCP<MultiVector>& Bc, RCP<const CrsGraph> Ppattern,
const std::string& solverType);
57 typename CrsGraph::local_graph_type
FindBlocks(RCP<const CrsGraph>& )
override;
72#define MUELU_DENSECONSTRAINT_SHORT
MueLu::DefaultLocalOrdinal LocalOrdinal
MueLu::DefaultScalar Scalar
MueLu::DefaultGlobalOrdinal GlobalOrdinal
Constraint space information for the potential prolongator.
CrsGraph::local_graph_type FindBlocks(RCP< const CrsGraph > &) override
MagnitudeType ResidualNorm(RCP< const Matrix > P) const override
Compute norm of residual B - P*Bc.
DenseConstraint()=default
RCP< MultiVector > B_
Fine nullspace.
typename Teuchos::ScalarTraits< Scalar >::magnitudeType MagnitudeType
RCP< MultiVector > Bc_
Coarse nullspace.
Namespace for MueLu classes and methods.
Tpetra::KokkosClassic::DefaultNode::DefaultNodeType DefaultNode
Tpetra::Details::DefaultTypes::scalar_type DefaultScalar