Escript  Revision_4320
BOOMERAMG.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 HYPRE, a software library of
20  high performance preconditioners and solvers. We use the
21  BoomerAMG provided in this library */
22 
23 /************************************************************************************/
24 
25 /* Author: Lin Gao, l.gao@uq.edu.au */
26 
27 /************************************************************************************/
28 
29 #ifndef INC_PASO_BOOMERAMG
30 #define INC_PASO_BOOMERAMG
31 
32 #include "SystemMatrix.h"
33 #include "performance.h"
34 
35 #ifdef BOOMERAMG
36 #include <HYPRE_krylov.h>
37 #include <HYPRE.h>
38 #include <HYPRE_parcsr_ls.h>
39 #endif
40 
41 typedef struct {
42 #ifdef BOOMERAMG
43  HYPRE_IJMatrix A;
44  HYPRE_ParCSRMatrix parcsr_A;
45  HYPRE_IJVector b;
46  HYPRE_ParVector par_b;
47  HYPRE_IJVector x;
48  HYPRE_ParVector par_x;
49  HYPRE_Solver solver;
50 #else
51  void* n;
52 #endif
54 #endif