32 #if ( !defined(HEX_LU_MUMPS_H) && defined(WITH_MUMPS) ) 33 #define HEX_LU_MUMPS_H 37 #include "hex-csrmatrix.h" 42 #define ICNTL(x) icntl[(x)-1] 43 #define MUMPS_NOACTION 0 44 #define MUMPS_INITIALIZE (-1) 45 #define MUMPS_FINISH (-2) 46 #define MUMPS_ANALYZE 1 47 #define MUMPS_FACTORIZE 2 54 #define MUMPS_STRUC_C CMUMPS_STRUC_C 55 #define MUMPS_C cmumps_c 56 #define MUMPS_COMPLEX mumps_complex 59 #define MUMPS_STRUC_C ZMUMPS_STRUC_C 60 #define MUMPS_C zmumps_c 61 #define MUMPS_COMPLEX mumps_double_complex 98 LUft_MUMPS const & operator= (LUft_MUMPS const &) = delete;
106 return mmin(I.size(), J.size(), A.size()) > 0;
110 virtual std::size_t
size ()
const;
115 #define RINFO(x) rinfo[x-1] 116 return settings.RINFO(11);
120 virtual void solve (
const cArrayView b, cArrayView x,
int eqs)
const;
123 virtual void save (std::string name)
const 125 I.hdfsave(
"I-" + name);
126 J.hdfsave(
"J-" + name);
127 A.hdfsave(
"A-" + name);
131 virtual void load (std::string name,
bool throw_on_io_failure =
true)
133 if (not I.hdfload(
"I-" + name) or
134 not J.hdfload(
"J-" + name) or
135 not A.hdfload(
"A-" + name))
137 if (throw_on_io_failure)
138 HexException(
"Failed to load MUMPS IJV matrices.");
159 NumberArray<MUMPS_INT> I, J;
160 NumberArray<Complex> A;
163 #endif // HEX_LU_MUMPS_H, WITH_MUMPS virtual void save(std::string name) const
Save large data to disk.
Definition: lu-mumps.h:123
MUMPS_INT out_of_core
Definition: lu-mumps.h:82
virtual void solve(const cArrayView b, cArrayView x, int eqs) const
Solve equations.
Definition: lu-mumps.cpp:144
factorizerRunTimeSelectionDefinitions(LUft_MUMPS, "mumps") LUft_MUMPS()
Default constructor.
LU factorization object.
Definition: luft.h:74
LU factorization object - MUMPS specialization.
Definition: lu-mumps.h:76
virtual Real cond() const
Condition number.
Definition: lu-mumps.h:113
MUMPS_INT comm
Definition: lu-mumps.h:84
MUMPS_INT verbosity_level
Definition: lu-mumps.h:83
virtual void drop()
Release memory.
Definition: lu-mumps.h:143
virtual std::size_t size() const
Return LU byte size.
Definition: lu-mumps.cpp:57
#define MUMPS_STRUC_C
Definition: lu-mumps.h:59
virtual void load(std::string name, bool throw_on_io_failure=true)
Load large data from disk.
Definition: lu-mumps.h:131
Definition: lu-mumps.h:80
virtual void factorize(CsrMatrix< LU_int_t, Complex > const &matrix, LUftData data)
Factorize.
Definition: lu-mumps.cpp:66
virtual bool valid() const
Validity indicator.
Definition: lu-mumps.h:104