opm-simulators
Loading...
Searching...
No Matches
bslv.h
1#pragma once
2
3#ifdef __cplusplus
4extern "C" {
5#endif
6
7
8#include "bsr.h"
9#include "prec.h"
10
11#include <stdbool.h>
12
16typedef
17struct bslv_memory
18{
19 // perform dilu (ilu0) of true (False)
20 bool use_dilu;
21
22 // tolerance
23 double tol;
24 // maximum number of iterations
25 int max_iter;
26 // convergencey history
27 double *e;
28
29 // size of linear system
30 int n;
31 // pointer to temporary arrays
32 double **dtmp;
33
34 // pointer to preconditioner
35 prec_t *P;
36}
38
44bslv_memory *bslv_alloc();
45
51void bslv_free(bslv_memory *mem);
52
59void bslv_info(bslv_memory *mem, int count);
60
70void bslv_init(bslv_memory *mem, double tol, int max_iter, bsr_matrix const *A, bool use_dilu);
71
84int bslv_pbicgstab3m(bslv_memory *mem, bsr_matrix *A, const double *b, double *x);
85
98int bslv_pbicgstab3d(bslv_memory *mem, bsr_matrix *A, const double *b, double *x);
99
100#ifdef __cplusplus
101}
102#endif
Linear solver memory.
Definition bslv.h:18
Mixed-precision bsr matrix.
Definition bsr.h:12
Preconditioner struct.
Definition prec.h:14