ESYS13
Revision_
|
00001 00002 /******************************************************* 00003 * 00004 * Copyright (c) 2003-2012 by University of Queensland 00005 * Earth Systems Science Computational Center (ESSCC) 00006 * http://www.uq.edu.au/esscc 00007 * 00008 * Primary Business: Queensland, Australia 00009 * Licensed under the Open Software License version 3.0 00010 * http://www.opensource.org/licenses/osl-3.0.php 00011 * 00012 *******************************************************/ 00013 00014 00015 /**************************************************************/ 00016 00017 /* Paso: AMG preconditioner (local version) */ 00018 00019 /**************************************************************/ 00020 00021 /* Author: lgao@uq.edu.au, l.gross@uq.edu.au */ 00022 00023 /**************************************************************/ 00024 00025 #ifndef INC_PASO_MERGEDSOLVER 00026 #define INC_PASO_MERGEDSOLVER 00027 00028 #include "Paso.h" 00029 #include "SystemMatrix.h" 00030 #include "Options.h" 00031 #include "esysUtils/Esys_MPI.h" 00032 #include "Paso.h" 00033 00034 00035 typedef struct Paso_MergedSolver 00036 { 00037 Esys_MPIInfo *mpi_info; 00038 Paso_SparseMatrix *A; 00039 00040 double* x; 00041 double* b; 00042 index_t *counts; 00043 index_t *offset; 00044 index_t reordering; 00045 index_t refinements; 00046 index_t verbose; 00047 index_t sweeps; 00048 00049 } Paso_MergedSolver; 00050 00051 Paso_SparseMatrix* Paso_MergedSolver_mergeSystemMatrix(Paso_SystemMatrix* A); 00052 Paso_MergedSolver* Paso_MergedSolver_alloc(Paso_SystemMatrix *A, Paso_Options* options); 00053 void Paso_MergedSolver_free(Paso_MergedSolver* in); 00054 void Paso_MergedSolver_solve(Paso_MergedSolver* ms, double* local_x, double* local_b) ; 00055 00056 #endif