PISM, A Parallel Ice Sheet Model
stable v2.1-1-g6902d5502 committed by Ed Bueler on 2023-12-20 08:38:27 -0800
src
rheology
grain_size_vostok.hh
Go to the documentation of this file.
1
/* Copyright (C) 2019 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 GRAIN_SIZE_VOSTOK_H
21
#define GRAIN_SIZE_VOSTOK_H
22
23
#include <gsl/gsl_spline.h>
24
25
namespace
pism
{
26
namespace
rheology {
27
28
//! A relationship between the age of the ice and the grain size from the Vostok core.
29
/*! A data set is interpolated here. The intention is that the softness of the
30
ice has nontrivial dependence on its age, through its grain size, because of
31
variable dustiness of the global climate. The grain size is partly determined
32
by at which point in the glacial cycle the given ice fell as snow.
33
34
The data is from [@ref DeLaChapelleEtAl98] and [@ref LipenkovEtAl89]. In
35
particular, Figure A2 in the former reference was hand-sampled with an
36
attempt to include the ``wiggles'' in that figure. Ages of the oldest ice (>=
37
300 ka) were estimated in a necessarily ad hoc way. The age value of 10000 ka
38
was added simply to give interpolation for very old ice; ages beyond that get
39
constant extrapolation. Linear interpolation is done between the samples.
40
*/
41
class
grain_size_vostok
{
42
public
:
43
grain_size_vostok
();
44
~grain_size_vostok
();
45
46
/*!
47
* Return grain size in meters given ice age in years.
48
*/
49
double
operator()
(
double
a);
50
private
:
51
static
const
int
m_N
= 22;
52
static
const
double
m_age
[
m_N
];
53
static
const
double
m_grain_size
[
m_N
];
54
55
gsl_interp_accel*
m_acc
;
56
gsl_spline*
m_spline
;
57
58
// disable copy constructor and the assignment operator:
59
grain_size_vostok
(
const
grain_size_vostok
&other);
60
grain_size_vostok
&
operator=
(
const
grain_size_vostok
&);
61
};
62
63
}
// end of namespace rheology
64
}
// end of namespace pism
65
66
#endif
/* GRAIN_SIZE_VOSTOK_H */
pism::rheology::grain_size_vostok::m_acc
gsl_interp_accel * m_acc
Definition:
grain_size_vostok.hh:55
pism::rheology::grain_size_vostok::grain_size_vostok
grain_size_vostok()
Definition:
grain_size_vostok.cc:42
pism::rheology::grain_size_vostok::operator()
double operator()(double a)
Definition:
grain_size_vostok.cc:53
pism::rheology::grain_size_vostok::m_grain_size
static const double m_grain_size[m_N]
Definition:
grain_size_vostok.hh:53
pism::rheology::grain_size_vostok::m_spline
gsl_spline * m_spline
Definition:
grain_size_vostok.hh:56
pism::rheology::grain_size_vostok::~grain_size_vostok
~grain_size_vostok()
Definition:
grain_size_vostok.cc:48
pism::rheology::grain_size_vostok::grain_size_vostok
grain_size_vostok(const grain_size_vostok &other)
pism::rheology::grain_size_vostok::m_N
static const int m_N
Definition:
grain_size_vostok.hh:51
pism::rheology::grain_size_vostok::operator=
grain_size_vostok & operator=(const grain_size_vostok &)
pism::rheology::grain_size_vostok::m_age
static const double m_age[m_N]
Definition:
grain_size_vostok.hh:52
pism::rheology::grain_size_vostok
A relationship between the age of the ice and the grain size from the Vostok core.
Definition:
grain_size_vostok.hh:41
pism
Definition:
AgeColumnSystem.cc:23
Generated by
1.9.1