escript
Revision_
Main Page
Namespaces
Classes
Files
File List
File Members
paso
src
MKL.h
Go to the documentation of this file.
1
2
/*****************************************************************************
3
*
4
* Copyright (c) 2003-2016 by The University of Queensland
5
* http://www.uq.edu.au
6
*
7
* Primary Business: Queensland, Australia
8
* Licensed under the Apache License, version 2.0
9
* http://www.apache.org/licenses/LICENSE-2.0
10
*
11
* Development until 2012 by Earth Systems Science Computational Center (ESSCC)
12
* Development 2012-2013 by School of Earth Sciences
13
* Development from 2014 by Centre for Geoscience Computing (GeoComp)
14
*
15
*****************************************************************************/
16
17
18
/****************************************************************************/
19
20
/* Paso: interface to intel MKL sparse solver */
21
22
/****************************************************************************/
23
24
/* Copyrights by ACcESS Australia 2006 */
25
/* Author: Lutz Gross, l.gross@uq.edu.au */
26
27
/****************************************************************************/
28
29
#ifndef __PASO_MKL_H__
30
#define __PASO_MKL_H__
31
32
#include "
SparseMatrix.h
"
33
34
namespace
paso
{
35
36
#ifdef ESYS_INDEXTYPE_LONG
37
#define ES_PARDISO pardiso_64
38
#define ES_MKL_INT MKL_INT64
39
#else
40
#define ES_PARDISO pardiso
41
#define ES_MKL_INT MKL_INT
42
#endif
43
44
#ifdef MKL
45
#include <mkl_pardiso.h>
46
#endif
47
48
49
#define MKL_ERROR_NO 0
50
#define MKL_MTYPE_REAL_SYM -2
51
#define MKL_MTYPE_REAL_UNSYM 11
52
53
#define MKL_REORDERING_MINIMUM_DEGREE 0
54
#define MKL_REORDERING_NESTED_DISSECTION 2
55
#define MKL_REORDERING_NESTED_DISSECTION_OMP 3
56
#define MKL_PHASE_SYMBOLIC_FACTORIZATION 11
57
#define MKL_PHASE_FACTORIZATION 22
58
#define MKL_PHASE_SOLVE 33
59
#define MKL_PHASE_RELEASE_MEMORY -1
60
61
62
void
MKL_free
(SparseMatrix* A);
63
void
MKL_solve
(
SparseMatrix_ptr
A,
double
* out,
double
* in,
index_t
reordering,
64
dim_t
numRefinements,
bool
verbose);
65
66
}
// namespace paso
67
68
#endif // __PASO_MKL_H__
69
paso::SparseMatrix_ptr
boost::shared_ptr< SparseMatrix > SparseMatrix_ptr
Definition:
SparseMatrix.h:35
paso::MKL_free
void MKL_free(SparseMatrix *A)
Definition:
MKL.cpp:34
SparseMatrix.h
paso
Definition:
AMG.cpp:38
index_t
int index_t
Definition:
types.h:24
dim_t
index_t dim_t
Definition:
types.h:27
paso::MKL_solve
void MKL_solve(SparseMatrix_ptr A, double *out, double *in, index_t reordering, dim_t numRefinements, bool verbose)
Definition:
MKL.cpp:66
Generated on Fri Jun 24 2016 23:26:50 for escript by
1.8.11