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

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

Parent Directory Parent Directory | Revision Log Revision Log


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


1 ksteube 1312
2 jfenwick 3981 /*****************************************************************************
3 ksteube 1811 *
4 uqaeller 6939 * Copyright (c) 2003-2020 by The University of Queensland
5 jfenwick 3981 * http://www.uq.edu.au
6 ksteube 1811 *
7     * Primary Business: Queensland, Australia
8 jfenwick 6112 * Licensed under the Apache License, version 2.0
9     * http://www.apache.org/licenses/LICENSE-2.0
10 ksteube 1811 *
11 jfenwick 3981 * Development until 2012 by Earth Systems Science Computational Center (ESSCC)
12 jfenwick 4657 * Development 2012-2013 by School of Earth Sciences
13 uqaeller 6939 * Development from 2014-2017 by Centre for Geoscience Computing (GeoComp)
14     * Development from 2019 by School of Earth and Environmental Sciences
15     **
16 jfenwick 3981 *****************************************************************************/
17 dhawcroft 631
18 ksteube 1811
19 caltinay 4829 /****************************************************************************/
20 gross 425
21 caltinay 4836 /* Paso: interface to intel MKL sparse solver */
22 gross 425
23 caltinay 4829 /****************************************************************************/
24 gross 425
25     /* Copyrights by ACcESS Australia 2006 */
26 jfenwick 2608 /* Author: Lutz Gross, l.gross@uq.edu.au */
27 gross 425
28 caltinay 4829 /****************************************************************************/
29 gross 425
30 caltinay 4863 #ifndef __PASO_MKL_H__
31     #define __PASO_MKL_H__
32 gross 425
33 gross 3283 #include "SparseMatrix.h"
34 gross 425
35 caltinay 4863 namespace paso {
36    
37 caltinay 5785 #ifdef ESYS_INDEXTYPE_LONG
38     #define ES_PARDISO pardiso_64
39     #define ES_MKL_INT MKL_INT64
40 gross 425 #else
41 caltinay 5785 #define ES_PARDISO pardiso
42     #define ES_MKL_INT MKL_INT
43 gross 425 #endif
44    
45 caltinay 6138 #ifdef ESYS_HAVE_MKL
46 caltinay 5785 #include <mkl_pardiso.h>
47 gross 425 #endif
48    
49    
50     #define MKL_ERROR_NO 0
51 caltinay 5786 #define MKL_MTYPE_REAL_SYM -2
52     #define MKL_MTYPE_REAL_UNSYM 11
53 gross 425
54     #define MKL_REORDERING_MINIMUM_DEGREE 0
55     #define MKL_REORDERING_NESTED_DISSECTION 2
56 caltinay 5786 #define MKL_REORDERING_NESTED_DISSECTION_OMP 3
57 gross 425 #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 caltinay 4863 void MKL_free(SparseMatrix* A);
64 caltinay 4864 void MKL_solve(SparseMatrix_ptr A, double* out, double* in, index_t reordering,
65     dim_t numRefinements, bool verbose);
66 caltinay 4863
67     } // namespace paso
68    
69     #endif // __PASO_MKL_H__
70    

  ViewVC Help
Powered by ViewVC 1.1.26