46 #ifndef MUELU_MAXWELL_UTILS_DECL_HPP
47 #define MUELU_MAXWELL_UTILS_DECL_HPP
73 #undef MUELU_MAXWELL_UTILS_SHORT
86 Kokkos::View<bool*, typename Node::device_type::memory_space>& BCrowsKokkos,
87 Kokkos::View<bool*, typename Node::device_type::memory_space>& BCcolsKokkos,
88 Kokkos::View<bool*, typename Node::device_type::memory_space>& BCdomainKokkos,
94 bool& allEdgesBoundary,
95 bool& allNodesBoundary);
101 Kokkos::View<bool*, typename Node::device_type::memory_space>& BCrowsKokkos,
102 Kokkos::View<bool*, typename Node::device_type::memory_space>& BCcolsKokkos,
103 Kokkos::View<bool*, typename Node::device_type::memory_space>& BCdomainKokkos,
106 bool& allEdgesBoundary,
107 bool& allNodesBoundary);
112 const bool keepDiagonal =
true,
113 const size_t expectedNNZperRow = 0);
141 #define MUELU_MAXWELL_UTILS_SHORT
142 #endif // MUELU_MAXWELL_UTILS_DECL_HPP
static RCP< Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > PtAPWrapper(const RCP< Matrix > &A, const RCP< Matrix > &P, Teuchos::ParameterList ¶ms, std::string &label)
Performs an P^T AP.
static void removeExplicitZeros(Teuchos::ParameterList ¶meterList, RCP< Matrix > &D0_Matrix, RCP< Matrix > &SM_Matrix)
MueLu::DefaultLocalOrdinal LocalOrdinal
Verbose class for MueLu classes.
Utility functions for Maxwell.
MueLu::DefaultScalar Scalar
MueLu::DefaultGlobalOrdinal GlobalOrdinal
Teuchos::ScalarTraits< Scalar >::magnitudeType magnitudeType
static void setMatvecParams(Matrix &A, RCP< ParameterList > matvecParams)
Sets matvec params on a matrix.
static void detectBoundaryConditionsSM(RCP< Matrix > &SM_Matrix, RCP< Matrix > &D0_Matrix, magnitudeType rowSumTol, bool useKokkos_, Kokkos::View< bool *, typename Node::device_type::memory_space > &BCrowsKokkos, Kokkos::View< bool *, typename Node::device_type::memory_space > &BCcolsKokkos, Kokkos::View< bool *, typename Node::device_type::memory_space > &BCdomainKokkos, int &BCedges, int &BCnodes, Teuchos::ArrayRCP< bool > &BCrows, Teuchos::ArrayRCP< bool > &BCcols, Teuchos::ArrayRCP< bool > &BCdomain, bool &allEdgesBoundary, bool &allNodesBoundary)
Detect Dirichlet boundary conditions.
static void thresholdedAbs(const RCP< Matrix > &A, const magnitudeType thresholded)
static RCP< Matrix > removeExplicitZeros(const RCP< Matrix > &A, const magnitudeType tolerance, const bool keepDiagonal=true, const size_t expectedNNZperRow=0)
Remove explicit zeros.