00001 00002 /******************************************************* 00003 * 00004 * Copyright (c) 2003-2009 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: SystemMatrix: interface to intel UMFPACK sparse solver */ 00018 00019 /**************************************************************/ 00020 00021 /* Copyrights by ACcESS Australia 2006 */ 00022 /* Author: gross@access.edu.au */ 00023 00024 /**************************************************************/ 00025 00026 #ifndef INC_PASO_UMFPACK 00027 #define INC_PASO_UMFPACK 00028 00029 #include "SystemMatrix.h" 00030 #include "performance.h" 00031 00032 #ifdef UMFPACK 00033 #include <umfpack.h> 00034 #endif 00035 00036 typedef struct { 00037 void *symbolic; 00038 void *numeric; 00039 } Paso_UMFPACK_Handler; 00040 00041 void Paso_UMFPACK_free(Paso_SystemMatrix* A); 00042 void Paso_UMFPACK1_free(Paso_UMFPACK_Handler* pt); 00043 void Paso_UMFPACK(Paso_SystemMatrix* A, double* out, double* in, Paso_Options* options,Paso_Performance* pp); 00044 void Paso_UMFPACK1(Paso_UMFPACK_Handler** pt, Paso_SparseMatrix* A, double* out, double* in, const int refines); 00045 #endif