Loading [MathJax]/extensions/tex2jax.js
PISM, A Parallel Ice Sheet Model
2.2.2-d6b3a29ca committed by Constantine Khrulev on 2025-03-28
Toggle main menu visibility
Main Page
Related Pages
Namespaces
Namespace List
Namespace Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
v
w
z
Variables
a
b
c
d
f
g
h
i
k
l
m
n
r
s
t
u
v
w
Typedefs
Enumerations
a
b
c
d
e
f
i
k
l
m
n
p
r
t
u
v
Enumerator
_
a
b
c
d
e
f
g
h
i
l
m
n
p
q
s
t
u
w
x
y
z
Classes
Class List
Class Index
Class Hierarchy
Class Members
All
:
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Variables
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
a
c
d
f
g
h
l
m
p
s
v
w
Enumerations
Enumerator
c
d
e
f
h
i
j
m
n
o
p
r
s
t
w
y
Related Symbols
Files
File List
File Members
All
_
a
b
c
d
e
f
g
h
i
k
l
m
n
p
r
s
t
u
w
z
Functions
a
b
c
d
e
f
g
h
i
l
m
p
r
s
u
Variables
b
c
d
e
g
h
k
l
m
n
p
r
s
t
u
w
z
Typedefs
Macros
_
a
b
c
g
h
i
k
m
n
r
s
t
u
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
Loading...
Searching...
No Matches
src
rheology
PatersonBuddCold.cc
Go to the documentation of this file.
1
/* Copyright (C) 2015, 2016, 2018, 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
#include <cmath>
21
22
#include "pism/rheology/PatersonBuddCold.hh"
23
24
namespace
pism
{
25
namespace
rheology {
26
27
PatersonBuddCold::PatersonBuddCold
(
const
std::string &prefix,
28
const
Config
&config,
29
EnthalpyConverter::Ptr
ec)
30
:
PatersonBudd
(prefix, config, ec) {
31
m_name
=
"Paterson-Budd (cold case)"
;
32
}
27
PatersonBuddCold::PatersonBuddCold
(
const
std::string &prefix, {
…
}
33
34
double
PatersonBuddCold::tempFromSoftness
(
double
A)
const
{
35
return
-
m_Q_cold
/ (
m_ideal_gas_constant
* (log(A) - log(
m_A_cold
)));
36
}
34
double
PatersonBuddCold::tempFromSoftness
(
double
A)
const
{
…
}
37
38
// takes care of hardness...
39
double
PatersonBuddCold::softness_from_temp
(
double
T_pa)
const
{
40
return
m_A_cold
* exp(-
m_Q_cold
/ (
m_ideal_gas_constant
* T_pa));
41
}
39
double
PatersonBuddCold::softness_from_temp
(
double
T_pa)
const
{
…
}
42
43
// ignores pressure and uses non-pressure-adjusted temperature
44
double
PatersonBuddCold::flow_from_temp
(
double
stress,
double
temp,
45
double
,
double
)
const
{
46
return
softness_from_temp
(temp) * pow(stress,
m_n
-1);
47
}
44
double
PatersonBuddCold::flow_from_temp
(
double
stress,
double
temp, {
…
}
48
49
50
// Rather than make this part of the base class, we just check at some reference values.
51
bool
FlowLawIsPatersonBuddCold
(
const
FlowLaw
&flow_law,
const
Config
&config,
52
EnthalpyConverter::Ptr
EC) {
53
static
const
struct
{
double
s, E, p, gs;} v[] = {
54
{1e3, 223, 1e6, 1e-3}, {450000, 475000, 500000, 525000}, {5e4, 268, 5e6, 3e-3}, {1e5, 273, 8e6, 5e-3}};
55
PatersonBuddCold
cpb(
"stress_balance.sia."
, config, EC);
// This is unmodified cold Paterson-Budd
56
for
(
int
i=0; i<4; i++) {
57
const
double
left = flow_law.
flow
(v[i].s, v[i].E, v[i].p, v[i].gs),
58
right = cpb.
flow
(v[i].s, v[i].E, v[i].p, v[i].gs);
59
if
(fabs((left - right)/left)>1.0e-15) {
60
return
false
;
61
}
62
}
63
return
true
;
64
}
51
bool
FlowLawIsPatersonBuddCold
(
const
FlowLaw
&flow_law,
const
Config
&config, {
…
}
65
66
}
// end of namespace rheology
67
}
// end of namespace pism
pism::Config
A class for storing and accessing PISM configuration flags and parameters.
Definition
ConfigInterface.hh:54
pism::EnthalpyConverter::Ptr
std::shared_ptr< EnthalpyConverter > Ptr
Definition
EnthalpyConverter.hh:56
pism::rheology::FlowLaw::m_A_cold
double m_A_cold
Paterson-Budd softness, cold case.
Definition
FlowLaw.hh:139
pism::rheology::FlowLaw::m_Q_cold
double m_Q_cold
Activation energy, cold case.
Definition
FlowLaw.hh:143
pism::rheology::FlowLaw::m_name
std::string m_name
Definition
FlowLaw.hh:117
pism::rheology::FlowLaw::flow
double flow(double stress, double enthalpy, double pressure, double grain_size) const
The flow law itself.
Definition
FlowLaw.cc:88
pism::rheology::FlowLaw::m_ideal_gas_constant
double m_ideal_gas_constant
ideal gas constant
Definition
FlowLaw.hh:152
pism::rheology::FlowLaw::m_n
double m_n
power law exponent
Definition
FlowLaw.hh:154
pism::rheology::FlowLaw
Definition
FlowLaw.hh:77
pism::rheology::PatersonBuddCold::softness_from_temp
double softness_from_temp(double T_pa) const
Definition
PatersonBuddCold.cc:39
pism::rheology::PatersonBuddCold::tempFromSoftness
double tempFromSoftness(double A) const
Return the temperature T corresponding to a given value A=A(T).
Definition
PatersonBuddCold.cc:34
pism::rheology::PatersonBuddCold::PatersonBuddCold
PatersonBuddCold(const std::string &prefix, const Config &config, EnthalpyConverter::Ptr EC)
Definition
PatersonBuddCold.cc:27
pism::rheology::PatersonBuddCold::flow_from_temp
double flow_from_temp(double stress, double temp, double, double) const
The flow law (temperature-dependent version).
Definition
PatersonBuddCold.cc:44
pism::rheology::PatersonBuddCold
Cold case of Paterson-Budd.
Definition
PatersonBuddCold.hh:29
pism::rheology::PatersonBudd
Derived class of FlowLaw for Paterson-Budd (1982)-Glen ice.
Definition
PatersonBudd.hh:32
pism::rheology::FlowLawIsPatersonBuddCold
bool FlowLawIsPatersonBuddCold(const FlowLaw &flow_law, const Config &config, EnthalpyConverter::Ptr EC)
Definition
PatersonBuddCold.cc:51
pism
Definition
AgeColumnSystem.cc:23
Generated by
1.9.8