32 #if (!defined(HEX_LU_SUPERLU_DIST_H) && defined(WITH_SUPERLU_DIST)) 33 #define HEX_LU_SUPERLU_DIST_H 37 #include "hex-csrmatrix.h" 45 #include <superlu_zdefs.h> 56 class LUft_SUPERLU_DIST :
public LUft 67 virtual ~LUft_SUPERLU_DIST ();
70 LUft_SUPERLU_DIST const & operator= (LUft_SUPERLU_DIST const &) = delete;
73 virtual
void factorize (
CsrMatrix<LU_int_t,Complex> const & matrix,
LUftData data);
76 virtual
bool valid ()
const {
return size_ != 0; }
79 virtual std::size_t
size ()
const {
return size_; }
82 virtual void solve (
const cArrayView b, cArrayView x,
int eqs)
const;
85 virtual void save (std::string name)
const;
88 virtual void load (std::string name,
bool throw_on_io_failure =
true);
96 NumberArray<int_t> P_;
97 NumberArray<int_t> I_;
98 NumberArray<std::complex<double>> X_;
101 ScalePermstruct_t ScalePermstruct_;
104 LUstruct_t LUstruct_;
115 #endif // WITH_SUPERLU_DIST virtual void solve(const cArrayView b, cArrayView x, int eqs) const =0
Solve equations.
virtual std::size_t size() const
Size of the numerical data.
Definition: luft.h:117
LU factorization object.
Definition: luft.h:74
#define factorizerRunTimeSelectionDefinitions(TYPE, NAME)
Definition: luft.h:198
virtual void drop()
Free memory.
Definition: luft.h:109
virtual void save() const
Definition: luft.h:181
virtual void load()
Definition: luft.h:187