SolverK3BIILU2.h 1.31 KB
Newer Older
1
2
3
#ifndef INMOST_SOLVERK3BIILU2_H
#define INMOST_SOLVERK3BIILU2_H

Dmitry Bagaev's avatar
fix    
Dmitry Bagaev committed
4
#include "Source/Solver/SolverInterface.h"
5
6
7
8
9
10
#include "solver_k3biilu2.h"

namespace INMOST {

    class SolverK3BIILU2 : public SolverInterface {
    private:
Dmitry Bagaev's avatar
Dmitry Bagaev committed
11
12
        bcg_k3biilu2 *solver_data;
        matrix_k3biilu2 *matrix_data;
13
14
        INMOST_DATA_ENUM_TYPE local_size, global_size;
    public:
Dmitry Bagaev's avatar
Dmitry Bagaev committed
15
        SolverK3BIILU2();
16

Dmitry Bagaev's avatar
Dmitry Bagaev committed
17
        virtual SolverInterface *Copy(const SolverInterface *other);
18
19
20

        virtual void Assign(const SolverInterface *other);

Dmitry Bagaev's avatar
Dmitry Bagaev committed
21
        virtual void Setup(int *argc, char ***argv, SolverParameters &p);
22
23
24
25
26
27
28
29
30

        virtual void SetMatrix(Sparse::Matrix &A, bool ModifiedPattern, bool OldPreconditioner);

        virtual bool Solve(INMOST::Sparse::Vector &RHS, INMOST::Sparse::Vector &SOL);

        virtual bool Clear();

        virtual bool isMatrixSet();

Dmitry Bagaev's avatar
Dmitry Bagaev committed
31
32
33
34
        virtual std::string GetParameter(std::string name) const;

        virtual void SetParameter(std::string name, std::string value);

35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
        virtual const INMOST_DATA_ENUM_TYPE Iterations() const;

        virtual const INMOST_DATA_REAL_TYPE Residual() const;

        virtual const std::string ReturnReason() const;

        virtual const std::string SolverName() const;

        virtual void Finalize();

        virtual ~SolverK3BIILU2();

    };

}


#endif //INMOST_SOLVERK3BIILU2_H