Go to the documentation of this file.
18 #ifndef __ESYS_INDEX_H__
19 #define __ESYS_INDEX_H__
23 #define INDEX2(_X1_,_X2_,_N1_) ((_X1_)+(_N1_)*(_X2_))
25 #define INDEX3(_X1_,_X2_,_X3_,_N1_,_N2_) ((_X1_)+(_N1_)*INDEX2(_X2_,_X3_,_N2_))
27 #define INDEX4(_X1_,_X2_,_X3_,_X4_,_N1_,_N2_,_N3_) ((_X1_)+(_N1_)*INDEX3(_X2_,_X3_,_X4_,_N2_,_N3_))
29 #define INDEX5(_X1_,_X2_,_X3_,_X4_,_X5_,_N1_,_N2_,_N3_,_N4_) ((_X1_)+(_N1_)*INDEX4(_X2_,_X3_,_X4_,_X5_,_N2_,_N3_,_N4_))
31 #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_))
33 #endif // __ESYS_INDEX_H__
Solver_ILU * Solver_getILU(SparseMatrix_ptr A, bool verbose)
constructs the incomplete block factorization
Definition: ILU.cpp:45
#define PASO_ONE
Definition: Paso.h:68
SolverResult derivative(double *J0w, const double *w, const double *f0, const double *x0, double *setoff, Performance *pp)
Definition: Functions.cpp:33
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:69
#define INDEX2(_X1_, _X2_, _N1_)
Definition: index.h:23
boost::shared_ptr< SystemMatrix > SystemMatrix_ptr
Definition: SystemMatrix.h:41
#define MPI_SUM
Definition: EsysMPI.h:52
ILU preconditioner.
Definition: Preconditioner.h:106
@ InputError
Definition: Paso.h:46
escript::DataTypes::real_t fabs(const escript::DataTypes::cplx_t c)
Definition: ArrayOps.h:645
SolverResult Solver_GMRES2(Function *F, const double *f0, const double *x0, double *dx, dim_t *iter, double *tolerance, Performance *pp)
Definition: GMRES2.cpp:25
void applyGivensRotations(dim_t n, double *v, const double *c, const double *s)
Definition: PasoUtil.cpp:537
@ Breakdown
Definition: Paso.h:48
void update(dim_t n, double a, double *x, double b, const double *y)
Definition: PasoUtil.cpp:340
double l2(dim_t n, const double *x, escript::JMPI mpiinfo)
returns the global L2 norm of x
Definition: PasoUtil.cpp:502
index_t dim_t
Definition: DataTypes.h:65
Definition: Functions.h:29
SolverResult
Definition: Paso.h:43
@ MaxIterReached
Definition: Paso.h:45
boost::shared_ptr< SparseMatrix > SparseMatrix_ptr
Definition: SparseMatrix.h:36
void Solver_ILU_free(Solver_ILU *in)
Definition: ILU.cpp:36
#define MPI_DOUBLE
Definition: EsysMPI.h:47
PasoException exception class.
Definition: PasoException.h:34
double gettime()
returns the current ticks for timing
Definition: EsysMPI.h:187
int index_t
type for array/matrix indices used both globally and on each rank
Definition: DataTypes.h:60
void zeroes(dim_t n, double *x)
fills array x with zeroes
Definition: PasoUtil.cpp:320
double * factors
Definition: Preconditioner.h:107
virtual dim_t getLen()=0
returns the length of the vectors used by this function
const escript::JMPI mpi_info
Definition: Functions.h:44
Definition: BiCGStab.cpp:26
@ NoError
Definition: Paso.h:44
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:429
void Solver_solveILU(SparseMatrix_ptr A, Solver_ILU *ilu, double *x, const double *b)
Definition: ILU.cpp:317
#define PASO_ZERO
Definition: Paso.h:69