12#ifndef MFEM_PARALLEL_DIRECT_SOLVER
13#define MFEM_PARALLEL_DIRECT_SOLVER
67#ifdef MFEM_USE_SUPERLU
69 mutable std::unique_ptr<SuperLURowLocMatrix> superlu_mat;
72#ifdef MFEM_USE_STRUMPACK
74 mutable std::unique_ptr<STRUMPACKRowLocMatrix> strumpack_mat;
78 std::unique_ptr<Solver> solver;
Wrapper around parallel sparse direct solvers (MUMPS, SuperLU_DIST, STRUMPACK, CPARDISO).
Type
Type of parallel direct solver to use.
virtual ~ParallelDirectSolver()
ParallelDirectSolver(MPI_Comm comm_, Type type_=Type::AUTO)
Construct a ParallelDirectSolver from an MPI communicator and a Type.
virtual void SetPrintLevel(int print_lvl)
virtual void Mult(const Vector &x, Vector &y) const override
Apply the inverse of the operator: y = A^{-1} x.
virtual void SetOperator(const Operator &op) override
Set the operator to be factored/solved by the direct solver.