1 #ifndef VERTEXCFD_LINEARSOLVERS_SUPERLUSOLVER_HPP
2 #define VERTEXCFD_LINEARSOLVERS_SUPERLUSOLVER_HPP
4 #include "VertexCFD_LinearSolvers_LocalDirectSolver.hpp"
10 #include <superlu_ddefs.h>
14 namespace LinearSolvers
21 static_assert(std::is_same<int_t, int>::value,
22 "SuperLU should be build with int_t=int");
33 double* _A_values_host;
37 superlu_dist_options_t _options;
38 dLUstruct_t _LUstruct;
39 dScalePermstruct_t _ScalePermstruct;
40 dSOLVEstruct_t _SOLVEstruct;
57 void setMatrix(Teuchos::RCP<
const Tpetra::RowMatrix<>> A)
override;
60 void initialize()
override;
61 void compute()
override;
65 solve(
const Tpetra::MultiVector<>& b, Tpetra::MultiVector<>& x)
override;
73 #endif // VERTEXCFD_LINEARSOLVERS_SUPERLUSOLVER_HPP