PISM, A Parallel Ice Sheet Model  stable v2.1-1-g6902d5502 committed by Ed Bueler on 2023-12-20 08:38:27 -0800
bootstrapping.hh
Go to the documentation of this file.
1 /* Copyright (C) 2016, 2017 PISM Authors
2  *
3  * This file is part of PISM.
4  *
5  * PISM is free software; you can redistribute it and/or modify it under the
6  * terms of the GNU General Public License as published by the Free Software
7  * Foundation; either version 3 of the License, or (at your option) any later
8  * version.
9  *
10  * PISM is distributed in the hope that it will be useful, but WITHOUT ANY
11  * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
12  * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
13  * details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with PISM; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18  */
19 
20 #ifndef BOOTSTRAPPING_H
21 #define BOOTSTRAPPING_H
22 
23 #include "pism/util/EnthalpyConverter.hh"
24 
25 namespace pism {
26 
27 namespace array {
28 class Array3D;
29 class Scalar;
30 }
31 
32 namespace energy {
33 
34 /*!
35  * A heuristic formula for the temperature distribution within a column of ice. Used during
36  * bootstrapping. A simple quartic guess.
37  *
38  * @param[in] EC enthalpy converter
39  * @param[in] H ice thickness
40  * @param[in] z height above the base of the ice, `0 <= z <= H`
41  * @param[in] T_surface surface temperature, in Kelvin
42  * @param[in] G upward basal heat flux, in `W / meter^2`
43  * @param[in] ice_k thermal conductivity of ice
44  */
46  double H, double z, double T_surface,
47  double G, double ice_k);
48 
49 /*!
50  * A heuristic formula for the temperature distribution within a column of ice. Used during
51  * bootstrapping. Uses the surface mass balance to set the vertical velocity at the top surface.
52  *
53  * @param[in] EC enthalpy converter
54  * @param[in] H ice thickness
55  * @param[in] z height above the base of the ice, `0 <= z <= H`
56  * @param[in] T_surface surface temperature, in Kelvin
57  * @param[in] G upward basal heat flux, in `W / meter^2`
58  * @param[in] ice_k thermal conductivity of ice
59  * @param[in] K temperature diffusivity in ice, ice_k / (ice_density * ice_c), where ice_c is the
60  * ice specific heat capacity
61  * @param[in] SMB surface mass balance in `m / second`
62  */
64  double H, double z, double T_surface,
65  double G, double ice_k, double K, double SMB);
66 
67 } // end of namespace energy
68 } // end of namespace pism
69 
70 #endif /* BOOTSTRAPPING_H */
std::shared_ptr< EnthalpyConverter > Ptr
const double G
Definition: exactTestK.c:40
double ice_temperature_guess(EnthalpyConverter::Ptr EC, double H, double z, double T_surface, double G, double ice_k)
double ice_temperature_guess_smb(EnthalpyConverter::Ptr EC, double H, double z, double T_surface, double G, double ice_k, double K, double SMB)
static double K(double psi_x, double psi_y, double speed, double epsilon)