ESYS13  Revision_
MergedSolver.h
Go to the documentation of this file.
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