24#ifndef _GEMA_SUPERLUMT_SOLVER_H_
25#define _GEMA_SUPERLUMT_SOLVER_H_
31#include <slu_mt_ddefs.h>
36 int_t sp_ienv(int_t ispec);
53 virtual const char* pluginName()
const {
return "SuperLuMtSolver"; }
56 virtual const char* pluginType()
const {
return "ns"; }
58 virtual bool loadPrivateData(
LuaTable& table);
61 int numThreads = -1)
const;
64 virtual bool setSolverTolerance(
double tol) { Q_UNUSED(tol);
return false; }
70 virtual QString quickDescription()
const;
73 virtual int trackItemId()
const {
return _trackSolveItem; }
85 int _trackSolveItem = -1;
virtual const GmLogCategory & logger() const
QString description() const
A class for creating a GeMA solver based on th multi-threaded SuperLU library.
Definition superLuMtSolver.h:46
bool _singleThreadedBlas
Should we ask BLAS to be single threaded?
Definition superLuMtSolver.h:82
superlumt_options_t _sluOptions
The configured set of SuperLU options.
Definition superLuMtSolver.h:80
GmSparseMatrixOptions _matrixOptions
The set of options used for building the sparse matrix.
Definition superLuMtSolver.h:79
SuperLuMtSolver(GmSimulationData *simulation, QString id, QString description, const GmLogCategory &logger)
Constructor. Will be called by the plugin loading code.
Definition superLuMtSolver.cpp:71
SuperMatrix * superLuMatrix(GmSolverMatrix *A) const
Given a matrix A, returns a SuperLU matrix that wraps A. This can be just a pointer to an existing ob...
Definition superLuMtSolver.cpp:371
static int _numSolvers
The number of instanced solvers.
Definition superLuMtSolver.h:84
int _sp_ienvOptions[9]
The configured values to be returned by sp_ienv()
Definition superLuMtSolver.h:81
void releaseSuperLuMatrix(SuperMatrix *sA) const
Releases, if necessary, the matrix created by the call to superLuMatrix(A)
Definition superLuMtSolver.cpp:424
virtual ~SuperLuMtSolver()
Destructor.
Definition superLuMtSolver.cpp:152