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
NullTransport.hh
Go to the documentation of this file.
1// Copyright (C) 2012-2018, 2021, 2022, 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#ifndef _NULLTRANSPORT_H_
20#define _NULLTRANSPORT_H_
21
22#include "pism/hydrology/Hydrology.hh"
23
24namespace pism {
25
26namespace hydrology {
27
28//! The PISM minimal model has till, but water that exceeds the capacity of the till is
29//! not conserved. There is no model for lateral transport.
30/*!
31 This is the minimum functional derived class. It updates till water thickness.
32 It implements a version of the "undrained plastic bed" model of [\ref Tulaczyketal2000b],
33 but with non-conserved drainage.
34
35 This model can give no meaningful report on conservation errors.
36
37 This talk illustrates a "till-can" metaphor applicable to this model:
38 http://www2.gi.alaska.edu/snowice/glaciers/iceflow/bueler-igs-fairbanks-june2012.pdf
39*/
40class NullTransport : public Hydrology {
41public:
42 NullTransport(std::shared_ptr<const Grid> g);
43 virtual ~NullTransport() = default;
44
45protected:
46 virtual void restart_impl(const File &input_file, int record);
47
48 virtual void bootstrap_impl(const File &input_file,
49 const array::Scalar &ice_thickness);
50
51 virtual void init_impl(const array::Scalar &W_till,
52 const array::Scalar &W,
53 const array::Scalar &P);
54
55 virtual MaxTimestep max_timestep_impl(double t) const;
56
57 //! Solves an implicit step of a highly-simplified ODE.
58 virtual void update_impl(double t, double dt, const Inputs& inputs);
59
60 void diffuse_till_water(double dt);
61
62private:
68
70
71 void initialization_message() const;
72};
73
74} // end of namespace hydrology
75} // end of namespace pism
76
77#endif /* _NULLTRANSPORT_H_ */
High-level PISM I/O class.
Definition File.hh:55
Combines the max. time step with the flag indicating if a restriction is active. Makes is possible to...
The PISM subglacial hydrology model interface.
Definition Hydrology.hh:109
virtual void restart_impl(const File &input_file, int record)
virtual void init_impl(const array::Scalar &W_till, const array::Scalar &W, const array::Scalar &P)
virtual ~NullTransport()=default
virtual void bootstrap_impl(const File &input_file, const array::Scalar &ice_thickness)
virtual void update_impl(double t, double dt, const Inputs &inputs)
Solves an implicit step of a highly-simplified ODE.
virtual MaxTimestep max_timestep_impl(double t) const
static const double g
Definition exactTestP.cc:36