PISM, A Parallel Ice Sheet Model
stable v2.1-1-g6902d5502 committed by Ed Bueler on 2023-12-20 08:38:27 -0800
src
stressbalance
blatter
ismip-hom
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
26
namespace
pism
{
27
namespace
stressbalance {
28
29
enum
ISMIPHOMTest
{
HOM_A
,
HOM_B
,
HOM_C
,
HOM_D
};
30
31
/*!
32
* This class implements periodic geometry experiments from the ISMIP-HOM
33
* inter-comparison.
34
*/
35
class
BlatterISMIPHOM
:
public
Blatter
{
36
public
:
37
BlatterISMIPHOM
(std::shared_ptr<const Grid>
grid
,
int
Mz,
int
coarsening_factor,
38
ISMIPHOMTest
test);
39
40
protected
:
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
;
50
ISMIPHOMTest
m_test
;
51
52
typedef
double (*
geometry
)(
double
x,
double
y,
double
L
);
53
54
geometry
m_b
,
m_s
;
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 */
pism::Component::grid
std::shared_ptr< const Grid > grid() const
Definition:
Component.cc:105
pism::fem::Q1Element3
3D Q1 element
Definition:
Element.hh:351
pism::stressbalance::BlatterISMIPHOM::m_test
ISMIPHOMTest m_test
Definition:
BlatterISMIPHOM.hh:50
pism::stressbalance::BlatterISMIPHOM::nodal_parameter_values
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
Definition:
BlatterISMIPHOM.cc:95
pism::stressbalance::BlatterISMIPHOM::BlatterISMIPHOM
BlatterISMIPHOM(std::shared_ptr< const Grid > grid, int Mz, int coarsening_factor, ISMIPHOMTest test)
Definition:
BlatterISMIPHOM.cc:56
pism::stressbalance::BlatterISMIPHOM::m_b
geometry m_b
Definition:
BlatterISMIPHOM.hh:54
pism::stressbalance::BlatterISMIPHOM::geometry
double(* geometry)(double x, double y, double L)
Definition:
BlatterISMIPHOM.hh:52
pism::stressbalance::BlatterISMIPHOM::m_L
double m_L
Definition:
BlatterISMIPHOM.hh:57
pism::stressbalance::BlatterISMIPHOM::m_s
geometry m_s
Definition:
BlatterISMIPHOM.hh:54
pism::stressbalance::BlatterISMIPHOM
Definition:
BlatterISMIPHOM.hh:35
pism::stressbalance::Blatter
Definition:
Blatter.hh:37
L
static const double L
Definition:
exactTestL.cc:40
pism::stressbalance::ISMIPHOMTest
ISMIPHOMTest
Definition:
BlatterISMIPHOM.hh:29
pism::stressbalance::HOM_D
@ HOM_D
Definition:
BlatterISMIPHOM.hh:29
pism::stressbalance::HOM_C
@ HOM_C
Definition:
BlatterISMIPHOM.hh:29
pism::stressbalance::HOM_B
@ HOM_B
Definition:
BlatterISMIPHOM.hh:29
pism::stressbalance::HOM_A
@ HOM_A
Definition:
BlatterISMIPHOM.hh:29
pism
Definition:
AgeColumnSystem.cc:23
pism::stressbalance::Blatter::Parameters
Definition:
Blatter.hh:50
Generated by
1.9.1