Loading [MathJax]/extensions/tex2jax.js
PISM, A Parallel Ice Sheet Model 2.2.2-d6b3a29ca committed by Constantine Khrulev on 2025-03-28
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
exactTestM.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2008, 2016 Ed Bueler
3
4 This file is part of PISM.
5
6 PISM is free software; you can redistribute it and/or modify it under the
7 terms of the GNU General Public License as published by the Free Software
8 Foundation; either version 3 of the License, or (at your option) any later
9 version.
10
11 PISM is distributed in the hope that it will be useful, but WITHOUT ANY
12 WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
13 FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
14 details.
15
16 You should have received a copy of the GNU General Public License
17 along with PISM; if not, write to the Free Software
18 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19*/
20
21#ifndef __exactTestM_h
22#define __exactTestM_h 1
23
24#ifdef __cplusplus
25extern "C"
26{
27#endif
28
29/*
30!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
31! exactTestM is a C implementation of an isothermal "exact" solution
32! to the diagnostic SSA flow problem for a constant thickness annular
33! ice shelf, with calving front, attached to a grounded sheet and with
34! Dirichlet (prescribed velocity) condition at the grounding line. A
35! first order ODE in the radial coordinate is solved numerically, as with
36! test L, for example, so the solution is not exactly exact.
37!
38! The velocity solution has
39! u(r) = alpha(r) \hat r + w(r,z) \hat z
40! alpha(r) is found for R_g=300km < r < R_c=600km. For r < R_g, a smoothly
41! decreasing to zero value is returned for alpha, while for r > R_c
42! alpha(r)=0 is returned.
43!
44! A supporting preprint is in preparation.
45!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
46*/
47
49 int error_code; /* GSL_SUCCESS = 0 if successful */
50 double alpha; /* (m s^-1; always positive) */
51 double Drr; /* = alpha'(r) (s^-1; radial strain rate) */
52};
53
55 double EPS_ABS, double EPS_REL, int ode_method);
56 /* input : r (m; r >= 0)
57 numerical: EPS_ABS (=1.0e-12 recommended)
58 EPS_REL (=0.0 recommended)
59 ode_method (=1 recommended; =Runge-Kutta-Cash-Karp)
60 */
61
62
63#ifdef __cplusplus
64}
65#endif
66
67#endif /* __exactTestM_h */
68
struct TestMParameters exactM(double r, double EPS_ABS, double EPS_REL, int ode_method)
Definition exactTestM.c:176