PISM, A Parallel Ice Sheet Model  stable v2.1-1-g6902d5502 committed by Ed Bueler on 2023-12-20 08:38:27 -0800
BTU_Minimal.cc
Go to the documentation of this file.
1 /* Copyright (C) 2016, 2017, 2023 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 #include "pism/energy/BTU_Minimal.hh"
21 #include "pism/util/MaxTimestep.hh"
22 
23 namespace pism {
24 namespace energy {
25 
26 BTU_Minimal::BTU_Minimal(std::shared_ptr<const Grid> g)
27  : BedThermalUnit(g) {
28  // empty
29 }
30 
32  m_log->message(2,
33  "* Initializing the minimal model for lithosphere:\n"
34  " stored time-independent geothermal flux applied to ice base...\n");
35 
37 
38  // The flux through the top surface is the same as the flux through the bottom surface.
40 }
41 
43  return 0.0;
44 }
45 
46 double BTU_Minimal::depth_impl() const {
47  return 0.0;
48 }
49 
50 unsigned int BTU_Minimal::Mz_impl() const {
51  return 0;
52 }
53 
55  (void) t;
56  // no time step restriction
57  return MaxTimestep("minimal thermal bedrock layer");
58 }
59 
60 void BTU_Minimal::update_impl(const array::Scalar &bedrock_top_temperature, double t, double dt) {
61  (void) bedrock_top_temperature;
62  (void) t;
63  (void) dt;
64  // empty
65 }
66 
67 } // end of namespace energy
68 } // end of namespace pism
const Logger::ConstPtr m_log
logger (for easy access)
Definition: Component.hh:162
Combines the max. time step with the flag indicating if a restriction is active. Makes is possible to...
Definition: MaxTimestep.hh:31
void copy_from(const Array2D< T > &source)
Definition: Array2D.hh:73
void init_impl(const InputOptions &opts)
Initialize the bedrock thermal unit.
Definition: BTU_Minimal.cc:31
double vertical_spacing_impl() const
Definition: BTU_Minimal.cc:42
unsigned int Mz_impl() const
Definition: BTU_Minimal.cc:50
double depth_impl() const
Definition: BTU_Minimal.cc:46
MaxTimestep max_timestep_impl(double t) const
Definition: BTU_Minimal.cc:54
BTU_Minimal(std::shared_ptr< const Grid > g)
Definition: BTU_Minimal.cc:26
virtual void update_impl(const array::Scalar &bedrock_top_temperature, double t, double dt)=0
array::Scalar m_bottom_surface_flux
upward heat flux through the bottom surface of the bed thermal layer
virtual void init_impl(const InputOptions &opts)
Initialize the bedrock thermal unit.
array::Scalar m_top_surface_flux
upward heat flux through the top surface of the bed thermal layer
Given the temperature of the top of the bedrock, for the duration of one time-step,...
static const double g
Definition: exactTestP.cc:36