Escript  Revision_4320
MKL.h
Go to the documentation of this file.
1 
2 /*****************************************************************************
3 *
4 * Copyright (c) 2003-2013 by University of Queensland
5 * http://www.uq.edu.au
6 *
7 * Primary Business: Queensland, Australia
8 * Licensed under the Open Software License version 3.0
9 * http://www.opensource.org/licenses/osl-3.0.php
10 *
11 * Development until 2012 by Earth Systems Science Computational Center (ESSCC)
12 * Development since 2012 by School of Earth Sciences
13 *
14 *****************************************************************************/
15 
16 
17 /************************************************************************************/
18 
19 /* Paso: SystemMatrix: interface to intel MKL sparse solver */
20 
21 /************************************************************************************/
22 
23 /* Copyrights by ACcESS Australia 2006 */
24 /* Author: Lutz Gross, l.gross@uq.edu.au */
25 
26 /************************************************************************************/
27 
28 #ifndef INC_PASO_MKL
29 #define INC_PASO_MKL
30 
31 #include "SparseMatrix.h"
32 #include "performance.h"
33 
34 # if defined(_WIN32) || defined(_WIN64)
35 #define PARDISO pardiso
36 #else
37 #define PARDISO pardiso_
38 #endif
39 
40 #ifdef MKL
41 #include "mkl_pardiso.h"
42 #endif
43 
44 
45 #define MKL_ERROR_NO 0
46 #define MKL_MTYPE_SYM -2
47 #define MKL_MTYPE_UNSYM 11
48 
49 #define MKL_REORDERING_MINIMUM_DEGREE 0
50 #define MKL_REORDERING_NESTED_DISSECTION 2
51 #define MKL_PHASE_SYMBOLIC_FACTORIZATION 11
52 #define MKL_PHASE_FACTORIZATION 22
53 #define MKL_PHASE_SOLVE 33
54 #define MKL_PHASE_RELEASE_MEMORY -1
55 
56 /* extern int PARDISO
57 # (void *, int *, int *, int *, int *, int *,
58 # double *, int *, int *, int *, int *, int *,
59 # int *, double *, double *, int *);
60 */
61 
62 
64 void Paso_MKL(Paso_SparseMatrix* A, double* out, double* in, index_t reordering, dim_t numRefinements, bool_t verbose);
65 #endif