/[escript]/trunk/paso/src/MKL.h
ViewVC logotype

Contents of /trunk/paso/src/MKL.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 6939 - (show annotations)
Mon Jan 20 03:37:18 2020 UTC (4 weeks, 5 days ago) by uqaeller
File MIME type: text/plain
File size: 1912 byte(s)
Updated the copyright header.


1
2 /*****************************************************************************
3 *
4 * Copyright (c) 2003-2020 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-2017 by Centre for Geoscience Computing (GeoComp)
14 * Development from 2019 by School of Earth and Environmental Sciences
15 **
16 *****************************************************************************/
17
18
19 /****************************************************************************/
20
21 /* Paso: interface to intel MKL sparse solver */
22
23 /****************************************************************************/
24
25 /* Copyrights by ACcESS Australia 2006 */
26 /* Author: Lutz Gross, l.gross@uq.edu.au */
27
28 /****************************************************************************/
29
30 #ifndef __PASO_MKL_H__
31 #define __PASO_MKL_H__
32
33 #include "SparseMatrix.h"
34
35 namespace paso {
36
37 #ifdef ESYS_INDEXTYPE_LONG
38 #define ES_PARDISO pardiso_64
39 #define ES_MKL_INT MKL_INT64
40 #else
41 #define ES_PARDISO pardiso
42 #define ES_MKL_INT MKL_INT
43 #endif
44
45 #ifdef ESYS_HAVE_MKL
46 #include <mkl_pardiso.h>
47 #endif
48
49
50 #define MKL_ERROR_NO 0
51 #define MKL_MTYPE_REAL_SYM -2
52 #define MKL_MTYPE_REAL_UNSYM 11
53
54 #define MKL_REORDERING_MINIMUM_DEGREE 0
55 #define MKL_REORDERING_NESTED_DISSECTION 2
56 #define MKL_REORDERING_NESTED_DISSECTION_OMP 3
57 #define MKL_PHASE_SYMBOLIC_FACTORIZATION 11
58 #define MKL_PHASE_FACTORIZATION 22
59 #define MKL_PHASE_SOLVE 33
60 #define MKL_PHASE_RELEASE_MEMORY -1
61
62
63 void MKL_free(SparseMatrix* A);
64 void MKL_solve(SparseMatrix_ptr A, double* out, double* in, index_t reordering,
65 dim_t numRefinements, bool verbose);
66
67 } // namespace paso
68
69 #endif // __PASO_MKL_H__
70

  ViewVC Help
Powered by ViewVC 1.1.26