escript  Revision_
MergedSolver.h
Go to the documentation of this file.
00001 
00002 /*****************************************************************************
00003 *
00004 * Copyright (c) 2003-2014 by University of Queensland
00005 * http://www.uq.edu.au
00006 *
00007 * Primary Business: Queensland, Australia
00008 * Licensed under the Open Software License version 3.0
00009 * http://www.opensource.org/licenses/osl-3.0.php
00010 *
00011 * Development until 2012 by Earth Systems Science Computational Center (ESSCC)
00012 * Development 2012-2013 by School of Earth Sciences
00013 * Development from 2014 by Centre for Geoscience Computing (GeoComp)
00014 *
00015 *****************************************************************************/
00016 
00017 
00018 /****************************************************************************
00019 
00020  * Paso: Merged solver for AMG
00021 
00022  ****************************************************************************/
00023 
00024 /* Author: lgao@uq.edu.au, l.gross@uq.edu.au                 */
00025 
00026 /****************************************************************************/
00027 
00028 #ifndef __PASO_MERGEDSOLVER_H__
00029 #define __PASO_MERGEDSOLVER_H__
00030 
00031 #include "SystemMatrix.h"
00032 
00033 namespace paso {
00034 
00035 struct MergedSolver
00036 {
00037     MergedSolver(const_SystemMatrix_ptr A, const Options* options);
00038     ~MergedSolver();
00039 
00040     void solve(double* local_x, const double* local_b);
00041 
00042     Esys_MPIInfo* mpi_info;
00043     SparseMatrix_ptr A;
00044     double* x;
00045     double* b;
00046     index_t* counts;
00047     index_t* offset;
00048     index_t reordering;
00049     index_t refinements;
00050     index_t verbose;
00051     index_t sweeps;
00052 };
00053 
00054 } // namespace paso
00055 
00056 #endif // __PASO_MERGEDSOLVER_H__
00057