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 #ifndef INC_PASO_FUNCTIONS 00016 #define INC_PASO_FUNCTIONS 00017 00018 00019 #include "Common.h" 00020 #include "esysUtils/Esys_MPI.h" 00021 #include "performance.h" 00022 00023 enum Paso_FunctionType { 00024 LINEAR_SYSTEM 00025 }; 00026 00027 typedef enum Paso_FunctionType Paso_FunctionType; 00028 00029 typedef struct Paso_Function { 00030 Paso_FunctionType kind; 00031 dim_t n; 00032 Esys_MPIInfo *mpi_info; 00033 double *b; 00034 double *tmp; 00035 void *more; 00036 } Paso_Function; 00037 00038 err_t Paso_FunctionDerivative(double* J0w, const double* w, Paso_Function* F, const double *f0, const double *x0, double* setoff, Paso_Performance *pp); 00039 err_t Paso_FunctionCall(Paso_Function * F,double* value, const double* arg, Paso_Performance *pp); 00040 void Paso_Function_free(Paso_Function * F); 00041 00042 #endif