32 #if (!defined(HEX_LU_PARDISO_H) && (defined(WITH_PARDISO) || defined(WITH_MKL))) 33 #define HEX_LU_PARDISO_H 37 #include "hex-csrmatrix.h" 43 #define DPARM(x) dparm_[x-1] 44 #define IPARM(x) iparm_[x-1] 52 extern "C" void pardisoinit
59 extern "C" void pardiso
83 extern "C" void pardisoinit
93 extern "C" void pardiso
123 class LUft_Pardiso :
public LUft 134 virtual ~LUft_Pardiso();
137 LUft_Pardiso const & operator= (LUft_Pardiso const &) = delete;
140 virtual
void factorize (
CsrMatrix<LU_int_t,Complex> const & matrix,
LUftData data);
143 virtual
bool valid ()
const {
return size() != 0; }
146 virtual std::size_t
size ()
const;
149 virtual void solve (
const cArrayView b, cArrayView x,
int eqs)
const;
152 virtual void save (std::string name)
const;
155 virtual void load (std::string name,
bool throw_on_io_failure =
true);
158 virtual void drop ();
163 void pardisoerror (
int error)
const;
168 NumberArray<std::complex<double>> X_;
171 NumberArray<int> perm_;
181 #endif // WITH_MKL or WITH_PARDISO 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