PISM, A Parallel Ice Sheet Model stable 0.4.1779

src/verif/tests/exactTestL.h

Go to the documentation of this file.
00001 /*
00002    Copyright (C) 2007--2009 Ed Bueler
00003   
00004    This file is part of PISM.
00005   
00006    PISM is free software; you can redistribute it and/or modify it under the
00007    terms of the GNU General Public License as published by the Free Software
00008    Foundation; either version 2 of the License, or (at your option) any later
00009    version.
00010   
00011    PISM is distributed in the hope that it will be useful, but WITHOUT ANY
00012    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
00013    FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
00014    details.
00015   
00016    You should have received a copy of the GNU General Public License
00017    along with PISM; if not, write to the Free Software
00018    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
00019 */
00020 
00021 #ifndef __exactTestL_h
00022 #define __exactTestL_h 1
00023 
00024 #ifdef __cplusplus
00025 extern "C"
00026 {
00027 #endif
00028 
00029 /*
00030 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
00031 ! exactTestL is a C implementation of an isothermal "exact" solution on a
00032 ! no-flat bed described in section 2.3 of an incomplete preprint
00033 !
00034 !    Ed Bueler (March 2006) "Equilibrium ice sheets solve variational
00035 !       inequalities"
00036 !
00037 ! in this case the exact solution requires solving an ODE numerically.
00038 ! See src/verif/simpleL.c.
00039 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
00040 */
00041 
00042 /* exit status could be one of these; returned zero indicates success */
00043 #define TESTL_NOT_DONE       8966
00044 #define TESTL_NOT_DECREASING 8967
00045 #define TESTL_INVALID_METHOD 8968
00046 #define TESTL_NO_LIST        8969
00047 
00048 int exactL(double r, double *H, double *b, double *a, 
00049            const double EPS_ABS, const double EPS_REL, const int ode_method);
00050    /* r in meters,  0 <= r <= 750000 */
00051   
00052 int exactL_list(double *r, int N, double *H, double *b, double *a);
00053    /* N values r[0] > r[1] > ... > r[N-1]  (_decreasing_)
00054       assumes r, H, b, a are _allocated_ length N arrays  */
00055    /* uses defaults EPS_ABS=1.0e-12, EPS_REL=0.0, ode_method=1 (RK Cash-Karp) */
00056 
00057 #ifdef __cplusplus
00058 }
00059 #endif
00060 
00061 
00062 #endif  /* __exactTestL_h */
00063 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines