Go to the documentation of this file.
17 #ifndef __ESYS_INDEX_H__
18 #define __ESYS_INDEX_H__
22 #define INDEX2(_X1_,_X2_,_N1_) ((_X1_)+(_N1_)*(_X2_))
24 #define INDEX3(_X1_,_X2_,_X3_,_N1_,_N2_) ((_X1_)+(_N1_)*INDEX2(_X2_,_X3_,_N2_))
26 #define INDEX4(_X1_,_X2_,_X3_,_X4_,_N1_,_N2_,_N3_) ((_X1_)+(_N1_)*INDEX3(_X2_,_X3_,_X4_,_N2_,_N3_))
28 #define INDEX5(_X1_,_X2_,_X3_,_X4_,_X5_,_N1_,_N2_,_N3_,_N4_) ((_X1_)+(_N1_)*INDEX4(_X2_,_X3_,_X4_,_X5_,_N2_,_N3_,_N4_))
30 #define INDEX6(_X1_,_X2_,_X3_,_X4_,_X5_,_X6_,_N1_,_N2_,_N3_,_N4_,_N5_) ((_X1_)+(_N1_)*INDEX5(_X2_,_X3_,_X4_,_X5_,_X6_,_N2_,_N3_,_N4_,_N5_))
32 #endif // __ESYS_INDEX_H__
Solver_ILU * Solver_getILU(SparseMatrix_ptr A, bool verbose)
constructs the incomplete block factorization
Definition: ILU.cpp:55
#define PASO_ONE
Definition: Paso.h:66
SolverResult Solver_GMRES(SystemMatrix_ptr A, double *r, double *x, dim_t *iter, double *tolerance, dim_t Length_of_recursion, dim_t restart, Performance *pp)
Definition: GMRES.cpp:79
#define INDEX2(_X1_, _X2_, _N1_)
Definition: index.h:21
boost::shared_ptr< SystemMatrix > SystemMatrix_ptr
Definition: SystemMatrix.h:51
#define MPI_SUM
Definition: EsysMPI.h:50
ILU preconditioner.
Definition: Preconditioner.h:115
escript::DataTypes::real_t fabs(const escript::DataTypes::cplx_t c)
Definition: ArrayOps.h:643
SolverResult Solver_GMRES2(Function *F, const double *f0, const double *x0, double *dx, dim_t *iter, double *tolerance, Performance *pp)
Definition: GMRES2.cpp:35
void applyGivensRotations(dim_t n, double *v, const double *c, const double *s)
Definition: PasoUtil.cpp:559
void update(dim_t n, double a, double *x, double b, const double *y)
Definition: PasoUtil.cpp:362
double l2(dim_t n, const double *x, escript::JMPI mpiinfo)
returns the global L2 norm of x
Definition: PasoUtil.cpp:524
index_t dim_t
Definition: DataTypes.h:87
SolverResult
Definition: Paso.h:53
boost::shared_ptr< SparseMatrix > SparseMatrix_ptr
Definition: SparseMatrix.h:46
void Solver_ILU_free(Solver_ILU *in)
Definition: ILU.cpp:46
#define MPI_DOUBLE
Definition: EsysMPI.h:45
double gettime()
returns the current ticks for timing
Definition: EsysMPI.h:185
int index_t
type for array/matrix indices used both globally and on each rank
Definition: DataTypes.h:82
void zeroes(dim_t n, double *x)
fills array x with zeroes
Definition: PasoUtil.cpp:342
double * factors
Definition: Preconditioner.h:117
Definition: BiCGStab.cpp:25
double innerProduct(dim_t n, const double *x, const double *y, escript::JMPI mpiinfo)
returns the inner product of global arrays x and y
Definition: PasoUtil.cpp:451
void Solver_solveILU(SparseMatrix_ptr A, Solver_ILU *ilu, double *x, const double *b)
Definition: ILU.cpp:327
#define PASO_ZERO
Definition: Paso.h:67