PISM, A Parallel Ice Sheet Model 2.2.1-cd005eec8 committed by Constantine Khrulev on 2025-03-07
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
SIAFD_diagnostics.hh
Go to the documentation of this file.
1/* Copyright (C) 2014, 2015, 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#ifndef _SIAFD_DIAGNOSTICS_H_
21#define _SIAFD_DIAGNOSTICS_H_
22
23#include "pism/stressbalance/sia/SIAFD.hh"
24#include "pism/util/Diagnostic.hh"
25
26namespace pism {
27namespace stressbalance {
28
29//! \brief Computes the multiplier \f$\theta\f$ in Schoof's (2003) theory of the
30//! effect of bed roughness on the diffusivity of the SIA.
31/*!
32 See page \ref bedrough and reference [\ref Schoofbasaltopg2003].
33*/
34class SIAFD_schoofs_theta : public Diag<SIAFD>
35{
36public:
37 SIAFD_schoofs_theta(const SIAFD *m);
38protected:
39 virtual std::shared_ptr<array::Array> compute_impl() const;
40};
41
42//! \brief Computes the smoothed bed elevation from Schoof's (2003) theory of the
43//! effect of bed roughness on the SIA.
44/*!
45 See page \ref bedrough and reference [\ref Schoofbasaltopg2003].
46*/
47class SIAFD_topgsmooth : public Diag<SIAFD>
48{
49public:
50 SIAFD_topgsmooth(const SIAFD *m);
51protected:
52 virtual std::shared_ptr<array::Array> compute_impl() const;
53};
54
55//! \brief Computes the thickness relative to the smoothed bed elevation in
56//! Schoof's (2003) theory of the effect of bed roughness on the SIA.
57/*!
58 See page \ref bedrough and reference [\ref Schoofbasaltopg2003].
59*/
60class SIAFD_thksmooth : public Diag<SIAFD>
61{
62public:
63 SIAFD_thksmooth(const SIAFD *m);
64protected:
65 virtual std::shared_ptr<array::Array> compute_impl() const;
66};
67
68//! \brief Compute diffusivity of the SIA flow.
69class SIAFD_diffusivity : public Diag<SIAFD>
70{
71public:
72 SIAFD_diffusivity(const SIAFD *m);
73protected:
74 virtual std::shared_ptr<array::Array> compute_impl() const;
75};
76
77//! \brief Compute diffusivity of the SIA flow (on the staggered grid).
78class SIAFD_diffusivity_staggered : public Diag<SIAFD>
79{
80public:
82protected:
83 virtual std::shared_ptr<array::Array> compute_impl() const;
84};
85
86//! \brief Reports the x-component of the ice surface gradient on the staggered
87//! grid as computed by SIAFD.
88class SIAFD_h_x : public Diag<SIAFD>
89{
90public:
91 SIAFD_h_x(const SIAFD *m);
92protected:
93 virtual std::shared_ptr<array::Array> compute_impl() const;
94};
95
96//! \brief Reports the y-component of the ice surface gradient on the staggered
97//! grid as computed by SIAFD.
98class SIAFD_h_y : public Diag<SIAFD>
99{
100public:
101 SIAFD_h_y(const SIAFD *m);
102protected:
103 virtual std::shared_ptr<array::Array> compute_impl() const;
104};
105
106} // end of namespace stressbalance
107} // end of namespace pism
108
109#endif /* _SIAFD_DIAGNOSTICS_H_ */
A template derived from Diagnostic, adding a "Model".
virtual std::shared_ptr< array::Array > compute_impl() const
Compute diffusivity of the SIA flow (on the staggered grid).
virtual std::shared_ptr< array::Array > compute_impl() const
Compute diffusivity of the SIA flow.
virtual std::shared_ptr< array::Array > compute_impl() const
Reports the x-component of the ice surface gradient on the staggered grid as computed by SIAFD.
virtual std::shared_ptr< array::Array > compute_impl() const
Reports the y-component of the ice surface gradient on the staggered grid as computed by SIAFD.
virtual std::shared_ptr< array::Array > compute_impl() const
Computes the multiplier in Schoof's (2003) theory of the effect of bed roughness on the diffusivity ...
virtual std::shared_ptr< array::Array > compute_impl() const
Computes the thickness relative to the smoothed bed elevation in Schoof's (2003) theory of the effect...
virtual std::shared_ptr< array::Array > compute_impl() const
Computes the smoothed bed elevation from Schoof's (2003) theory of the effect of bed roughness on the...