|
PISM, A Parallel Ice Sheet Model stable 0.4.1779
|
#include "exactTestO.h"Go to the source code of this file.
Defines | |
| #define | beta_CC 7.9e-8 |
| #define | T_triple 273.15 |
| #define | L 3.34e5 |
| #define | grav 9.81 |
| #define | rho_ICE 910.0 |
| #define | k_ICE 2.10 |
| #define | k_BEDROCK 3.0 |
| #define | H0 3000.0 |
| #define | B0 1000.0 |
| #define | Ts 223.15 |
| #define | G 0.042 |
Functions | |
| int | exactO (const double z, double *TT, double *Tm, double *qice, double *qbed, double *bmelt) |
| Implements an exact solution for basal melt rate. Utterly straightforward arithmetic. | |
| #define B0 1000.0 |
Definition at line 34 of file exactTestO.c.
| #define beta_CC 7.9e-8 |
Definition at line 23 of file exactTestO.c.
Referenced by exactO().
| #define G 0.042 |
Definition at line 36 of file exactTestO.c.
Referenced by exactO().
| #define grav 9.81 |
Definition at line 26 of file exactTestO.c.
Referenced by exactO(), vd_integrand(), and viscDisc().
| #define H0 3000.0 |
Definition at line 33 of file exactTestO.c.
Referenced by exactO().
| #define k_BEDROCK 3.0 |
Definition at line 31 of file exactTestO.c.
Referenced by exactO().
| #define k_ICE 2.10 |
Definition at line 29 of file exactTestO.c.
Referenced by exactO().
| #define L 3.34e5 |
Definition at line 25 of file exactTestO.c.
Referenced by exactO().
| #define rho_ICE 910.0 |
Definition at line 28 of file exactTestO.c.
Referenced by exactO().
| #define T_triple 273.15 |
Definition at line 24 of file exactTestO.c.
Referenced by exactO().
| #define Ts 223.15 |
Definition at line 35 of file exactTestO.c.
Referenced by exactO().
| int exactO | ( | const double | z, |
| double * | TT, | ||
| double * | Tm, | ||
| double * | qice, | ||
| double * | qbed, | ||
| double * | bmelt | ||
| ) |
Implements an exact solution for basal melt rate. Utterly straightforward arithmetic.
Assumes a steady-state temperature profile in ice and bedrock. This steady profile is driven by geothermal flux G from the crust below the bedrock thermal layer. The heat flux is everywhere upward in the bedrock thermal layer, and it is equal by construction to G. The heat flux upward in the ice is also a constant everywhere in the ice, but its value is smaller than G. This imbalance is balanced by the basal melt rate bmelt.
Geometry and dynamics context: The top of the ice is flat so the ice does not flow; the ice thickness has constant value H0. The ice surface has temperature Ts which is below the melting point. The basal melt rate bmelt does not contribute to the vertical velocity in the ice. The ice pressure is hydrostatic:
.
The basic equation relates the fluxes in the basal ice, and in the top of the bedrock layer, with the basal melt rate bmelt
. The eqution is from [AschwandenBuelerKhroulevBlatter],
Here
is the basal melt rate in units of mass per area per time. In the above equation the basal friction heating
is zero and the subglacial aquifer enthalpy flux
includes no horizontal velocity. (Note that
is the heat delivered by subglacial water to the base of the ice.) We assume the subglacial water is at the ice overburden pressure
, and we assume that the temperate layer at the base of the ice has zero thickness, so
. Thus
The basic equation therefore reduces to
or
On the other hand, the temperature in the ice is the steady-state result wherein the upward flux is constant and the (absolute) temperature is a linear function of the elevation
, so
The temperature in the ice (
) is this linear function,
and in the bedrock (
) is also linear,
This method implements these formulas. It should be called both when setting-up a verification test by setting temperature at different elevations within the ice and bedrock, and when doing the verification itself by checking against the exact bmelt value.
Definition at line 89 of file exactTestO.c.
References beta_CC, G, grav, H0, k_BEDROCK, k_ICE, L, rho_ICE, T_triple, and Ts.
Referenced by BTU_Verification::bootstrap(), IceCompModel::computeBasalMeltRateErrors(), IceCompModel::computeIceBedrockTemperatureErrors(), IceCompModel::fillBasalMeltRateSolnTestO(), IceCompModel::fillTemperatureSolnTestsKO(), and main().
1.7.3