tvonMisesCalving.hh - pism - [fork] customized build of PISM, the parallel ice sheet model (tillflux branch)
HTML git clone git://src.adamsgaard.dk/pism
DIR Log
DIR Files
DIR Refs
DIR LICENSE
---
tvonMisesCalving.hh (1672B)
---
1 /* Copyright (C) 2016, 2017, 2018, 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 VONMISESCALVING_H
21 #define VONMISESCALVING_H
22
23 #include "StressCalving.hh"
24
25 namespace pism {
26
27 class Geometry;
28
29 namespace rheology {
30 class FlowLaw;
31 } // end of namespace rheology
32
33 namespace calving {
34
35 class vonMisesCalving : public StressCalving {
36 public:
37 vonMisesCalving(IceGrid::ConstPtr grid, std::shared_ptr<const rheology::FlowLaw> flow_law);
38 virtual ~vonMisesCalving();
39
40 void init();
41
42 void update(const IceModelVec2CellType &cell_type,
43 const IceModelVec2S &ice_thickness,
44 const IceModelVec2V &ice_velocity,
45 const IceModelVec3 &ice_enthalpy);
46 const IceModelVec2S& threshold() const;
47
48 protected:
49 DiagnosticList diagnostics_impl() const;
50
51 IceModelVec2S m_calving_threshold;
52
53 std::shared_ptr<const rheology::FlowLaw> m_flow_law;
54 };
55
56 } // end of namespace calving
57 } // end of namespace pism
58
59 #endif /* VONMISESCALVING_H */