PISM, A Parallel Ice Sheet Model
stable v2.1-1-g6902d5502 committed by Ed Bueler on 2023-12-20 08:38:27 -0800
src
verification
tests
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
25
extern
"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
48
struct
TestMParameters
{
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
54
struct
TestMParameters
exactM
(double r,
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
exactM
struct TestMParameters exactM(double r, double EPS_ABS, double EPS_REL, int ode_method)
Definition:
exactTestM.c:176
TestMParameters::Drr
double Drr
Definition:
exactTestM.h:51
TestMParameters::alpha
double alpha
Definition:
exactTestM.h:50
TestMParameters::error_code
int error_code
Definition:
exactTestM.h:49
TestMParameters
Definition:
exactTestM.h:48
Generated by
1.9.1