LCOV - code coverage report
Current view: top level - linalg - strumpack.hpp (source / functions) Coverage Total Hit
Test: Palace Coverage Report Lines: 0.0 % 7 0
Test Date: 2025-10-23 22:45:05 Functions: 0.0 % 2 0
Legend: Lines: hit not hit

            Line data    Source code
       1              : // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
       2              : // SPDX-License-Identifier: Apache-2.0
       3              : 
       4              : #ifndef PALACE_LINALG_STRUMPACK_HPP
       5              : #define PALACE_LINALG_STRUMPACK_HPP
       6              : 
       7              : #include <mfem.hpp>
       8              : 
       9              : #if defined(MFEM_USE_STRUMPACK)
      10              : 
      11              : #include "linalg/operator.hpp"
      12              : #include "utils/iodata.hpp"
      13              : 
      14              : namespace palace
      15              : {
      16              : 
      17              : //
      18              : // A wrapper for the STRUMPACK direct solver package.
      19              : //
      20              : template <typename StrumpackSolverType>
      21              : class StrumpackSolverBase : public StrumpackSolverType
      22              : {
      23              : private:
      24              :   MPI_Comm comm;
      25              : 
      26              : public:
      27              :   StrumpackSolverBase(MPI_Comm comm, SymbolicFactorization reorder,
      28              :                       SparseCompression compression, double lr_tol, int butterfly_l,
      29              :                       int lossy_prec, int print);
      30              : 
      31            0 :   StrumpackSolverBase(const IoData &iodata, MPI_Comm comm, int print)
      32            0 :     : StrumpackSolverBase(comm, iodata.solver.linear.sym_factorization,
      33            0 :                           iodata.solver.linear.strumpack_compression_type,
      34            0 :                           iodata.solver.linear.strumpack_lr_tol,
      35            0 :                           iodata.solver.linear.strumpack_butterfly_l,
      36            0 :                           iodata.solver.linear.strumpack_lossy_precision, print)
      37              :   {
      38            0 :   }
      39              : 
      40              :   void SetOperator(const Operator &op) override;
      41              : };
      42              : 
      43              : using StrumpackSolver = StrumpackSolverBase<mfem::STRUMPACKSolver>;
      44              : 
      45              : using StrumpackMixedPrecisionSolver =
      46              :     StrumpackSolverBase<mfem::STRUMPACKMixedPrecisionSolver>;
      47              : 
      48              : }  // namespace palace
      49              : 
      50              : #endif
      51              : 
      52              : #endif  // PALACE_LINALG_STRUMPACK_HPP
        

Generated by: LCOV version 2.0-1