10 #ifndef MUELU_MAXWELL_UTILS_DECL_HPP
11 #define MUELU_MAXWELL_UTILS_DECL_HPP
37 #undef MUELU_MAXWELL_UTILS_SHORT
50 Kokkos::View<bool*, typename Node::device_type::memory_space>& BCrowsKokkos,
51 Kokkos::View<bool*, typename Node::device_type::memory_space>& BCcolsKokkos,
52 Kokkos::View<bool*, typename Node::device_type::memory_space>& BCdomainKokkos,
58 bool& allEdgesBoundary,
59 bool& allNodesBoundary);
65 Kokkos::View<bool*, typename Node::device_type::memory_space>& BCrowsKokkos,
66 Kokkos::View<bool*, typename Node::device_type::memory_space>& BCcolsKokkos,
67 Kokkos::View<bool*, typename Node::device_type::memory_space>& BCdomainKokkos,
70 bool& allEdgesBoundary,
71 bool& allNodesBoundary);
76 const bool keepDiagonal =
true,
77 const size_t expectedNNZperRow = 0);
105 #define MUELU_MAXWELL_UTILS_SHORT
106 #endif // MUELU_MAXWELL_UTILS_DECL_HPP
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 RCP< Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > PtAPWrapper(const RCP< Matrix > &A, const RCP< Matrix > &P, Teuchos::ParameterList ¶ms, const std::string &label)
Performs an P^T AP.
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.