Loading [MathJax]/jax/input/TeX/config.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
BlatterISMIPHOM.hh
Go to the documentation of this file.
1/* Copyright (C) 2020, 2021 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 BLATTERISMIPHOM_H
21#define BLATTERISMIPHOM_H
22
23
24#include "pism/stressbalance/blatter/Blatter.hh"
25
26namespace pism {
27namespace stressbalance {
28
30
31/*!
32 * This class implements periodic geometry experiments from the ISMIP-HOM
33 * inter-comparison.
34 */
35class BlatterISMIPHOM : public Blatter {
36public:
37 BlatterISMIPHOM(std::shared_ptr<const Grid> grid, int Mz, int coarsening_factor,
38 ISMIPHOMTest test);
39
40protected:
41 void nodal_parameter_values(const fem::Q1Element3 &element,
42 Parameters **P,
43 int i,
44 int j,
45 int *node_type,
46 double *bottom,
47 double *thickness,
48 double *surface,
49 double *sea_level) const;
51
52 typedef double (*geometry)(double x, double y, double L);
53
55
56 // domain length scale
57 double m_L;
58};
59
60} // end of namespace stressbalance
61} // end of namespace pism
62
63#endif /* BLATTERISMIPHOM_H */
std::shared_ptr< const Grid > grid() const
Definition Component.cc:105
3D Q1 element
Definition Element.hh:358
void nodal_parameter_values(const fem::Q1Element3 &element, Parameters **P, int i, int j, int *node_type, double *bottom, double *thickness, double *surface, double *sea_level) const
double(* geometry)(double x, double y, double L)
static const double L
Definition exactTestL.cc:40