12 #ifndef _CALVINGMODEL_H_ 13 #define _CALVINGMODEL_H_ 16 #include "ParmParse.H" 18 #include "NamespaceHeader.H" 30 static void updateCalvedIce(
const Real& a_thck,
const Real a_prevThck,
const int a_mask, Real& a_added, Real& a_calved, Real& a_removed);
34 LevelData<FArrayBox>& a_calvedIce,
35 LevelData<FArrayBox>& a_addedIce,
36 LevelData<FArrayBox>& a_removedIce,
37 LevelData<FArrayBox>& a_iceFrac,
52 const AmrIce& a_amrIce,
int a_level);
55 virtual void getWaterDepth(LevelData<FArrayBox>& a_waterDepth,
56 const AmrIce& a_amrIce,
int a_level);
67 LevelData<FArrayBox>& a_calvedIce,
68 LevelData<FArrayBox>& a_addedIce,
69 LevelData<FArrayBox>& a_removedIce,
70 LevelData<FArrayBox>& a_iceFrac,
102 LevelData<FArrayBox>& a_calvedIce,
103 LevelData<FArrayBox>& a_addedIce,
104 LevelData<FArrayBox>& a_removedIce,
105 LevelData<FArrayBox>& a_iceFrac,
113 const Real& a_calvingOceanDepth,
114 const Real& a_minThickness,
115 const Real& a_startTime,
116 const Real& a_endTime)
117 : m_calvingThickness(a_calvingThickness),
118 m_calvingOceanDepth(a_calvingOceanDepth),
119 m_minThickness(a_minThickness),
120 m_startTime(a_startTime),
134 Real m_calvingThickness, m_calvingOceanDepth, m_minThickness,
m_startTime, m_endTime;
147 LevelData<FArrayBox>& a_calvedIce,
148 LevelData<FArrayBox>& a_addedIce,
149 LevelData<FArrayBox>& a_removedIce,
150 LevelData<FArrayBox>& a_iceFrac,
156 const Vector<int>& a_frontHi,
160 :m_frontLo(a_frontLo),m_frontHi(a_frontHi),
161 m_preserveSea(a_preserveSea),m_preserveLand(a_preserveLand)
187 Real m_proximity, m_velocity, m_startTime, m_endTime;
191 const Real& a_velocity,
192 const Real& a_startTime,
193 const Real& a_endTime)
194 : m_proximity(a_proximity),
195 m_velocity(a_velocity),
196 m_startTime(a_startTime),
202 LevelData<FArrayBox>& a_calvedIce,
203 LevelData<FArrayBox>& a_addedIce,
204 LevelData<FArrayBox>& a_removedIce,
205 LevelData<FArrayBox>& a_iceFrac,
233 LevelData<FArrayBox>& a_calvedIce,
234 LevelData<FArrayBox>& a_addedIce,
235 LevelData<FArrayBox>& a_removedIce,
236 LevelData<FArrayBox>& a_iceFrac,
243 const Real& a_calvingOceanDepth,
244 const Real& a_minThickness,
245 const Real& a_startTime,
246 const Real& a_endTime)
247 : m_calvingThickness(a_calvingThickness),
248 m_calvingOceanDepth(a_calvingOceanDepth),
249 m_minThickness(a_minThickness),
250 m_startTime(a_startTime),
261 Real m_calvingThickness, m_calvingOceanDepth, m_minThickness,
m_startTime, m_endTime;
282 LevelData<FArrayBox>& a_calvedIce,
283 LevelData<FArrayBox>& a_addedIce,
284 LevelData<FArrayBox>& a_removedIce,
285 LevelData<FArrayBox>& a_iceFrac,
292 const Real& a_calvingOceanDepth,
293 const Real& a_minThickness,
294 const Real& a_startTime,
295 const Real& a_endTime,
296 const bool& a_factorMuCoef)
297 : m_calvingThickness(a_calvingThickness),
298 m_calvingOceanDepth(a_calvingOceanDepth),
299 m_minThickness(a_minThickness),
300 m_startTime(a_startTime),
301 m_endTime(a_endTime),
302 m_factorMuCoef(a_factorMuCoef)
311 Real m_calvingThickness, m_calvingOceanDepth, m_minThickness,
m_startTime, m_endTime;
325 LevelData<FArrayBox>& a_calvedIce,
326 LevelData<FArrayBox>& a_addedIce,
327 LevelData<FArrayBox>& a_removedIce,
328 LevelData<FArrayBox>& a_iceFrac,
334 const RealVect& a_lowLoc,
335 const Real& a_startTime,
336 const Real& a_endTime)
337 : m_startTime(a_startTime),
338 m_endTime(a_endTime),
339 m_highLoc(a_highLoc),
370 : m_vectModels(a_vectModels)
372 m_vectModels.resize(a_vectModels.size());
373 for (
int i =0; i < m_vectModels.size(); i++)
375 m_vectModels[i] = a_vectModels[i]->new_CalvingModel();
380 LevelData<FArrayBox>& a_calvedIce,
381 LevelData<FArrayBox>& a_addedIce,
382 LevelData<FArrayBox>& a_removedIce,
383 LevelData<FArrayBox>& a_iceFrac,
404 m_vectModels[i] = a.
m_vectModels[i]->new_CalvingModel();
420 LevelData<FArrayBox>& a_calvedIce,
421 LevelData<FArrayBox>& a_addedIce,
422 LevelData<FArrayBox>& a_removedIce,
423 LevelData<FArrayBox>& a_iceFrac,
429 const Vector<int>& a_frontHi,
432 : m_domainEdgeCalvingModel(a_frontLo,a_frontHi,
433 a_preserveSea, a_preserveLand)
463 LevelData<FArrayBox>& a_calvedIce,
464 LevelData<FArrayBox>& a_addedIce,
465 LevelData<FArrayBox>& a_removedIce,
466 LevelData<FArrayBox>& a_iceFrac,
473 const Real& a_recessionRate,
474 const Real& a_startTime,
475 const Real& a_endTime)
476 : m_maxCliffThickness(a_maxCliffThickness),
477 m_recessionRate(a_recessionRate),
478 m_startTime(a_startTime),
491 Real m_maxCliffThickness, m_recessionRate,
m_startTime, m_endTime;
508 Real m_startTime, m_endTime;
515 LevelData<FArrayBox>& a_calvedIce,
516 LevelData<FArrayBox>& a_addedIce,
517 LevelData<FArrayBox>& a_removedIce,
518 LevelData<FArrayBox>& a_iceFrac,
530 const AmrIce& a_amrIce,
int a_level);
543 Real m_startTime, m_endTime;
550 LevelData<FArrayBox>& a_calvedIce,
551 LevelData<FArrayBox>& a_addedIce,
552 LevelData<FArrayBox>& a_removedIce,
553 LevelData<FArrayBox>& a_iceFrac,
565 const AmrIce& a_amrIce,
int a_level);
570 #include "NamespaceFooter.H" calving model which removes all floating ice.
Definition: CalvingModel.H:413
virtual void applyCriterion(LevelData< FArrayBox > &a_thickness, LevelData< FArrayBox > &a_calvedIce, LevelData< FArrayBox > &a_addedIce, LevelData< FArrayBox > &a_removedIce, LevelData< FArrayBox > &a_iceFrac, const AmrIce &a_amrIce, int a_level, Stage a_stage)
Definition: CalvingModel.H:66
virtual CalvingModel * new_CalvingModel()
factory method
Definition: CalvingModel.H:78
virtual CalvingModel * new_CalvingModel()
factory method
Definition: CalvingModel.H:126
Real m_startTime
Definition: CalvingModel.H:261
Definition: CalvingModel.H:28
A thickness-based calving model which should permit advance and retreat.
Definition: CalvingModel.H:276
static void updateCalvedIce(const Real &a_thck, const Real a_prevThck, const int a_mask, Real &a_added, Real &a_calved, Real &a_removed)
Definition: CalvingModel.cpp:755
virtual CalvingModel * new_CalvingModel()
factory method
Definition: CalvingModel.H:167
virtual CalvingModel * new_CalvingModel()
factory method
Definition: CalvingModel.H:306
RealVect m_lowLoc
Definition: CalvingModel.H:353
virtual CalvingModel * new_CalvingModel()
factory method
Definition: CalvingModel.H:438
virtual CalvingModel * new_CalvingModel()
factory method
Definition: CalvingModel.H:345
virtual CalvingModel * new_CalvingModel()
factory method
Definition: CalvingModel.H:212
bool m_factorMuCoef
Definition: CalvingModel.H:312
Ensure open ocean on one or more domain edges.
Definition: CalvingModel.H:141
static CalvingModel * parseCalvingModel(const char *a_prefix)
Definition: CalvingModel.cpp:281
MaximumExtentCalvingModel(const RealVect &a_highLoc, const RealVect &a_lowLoc, const Real &a_startTime, const Real &a_endTime)
Definition: CalvingModel.H:333
virtual void getWaterDepth(LevelData< FArrayBox > &a_waterDepth, const AmrIce &a_amrIce, int a_level)
water depth for crevasse calving.
Definition: CalvingModel.cpp:34
Definition: CalvingModel.H:28
bool m_preserveSea
Definition: CalvingModel.H:177
virtual CalvingModel * new_CalvingModel()
factory method
Definition: CalvingModel.H:255
ThicknessCalvingModel(const Real &a_calvingThickness, const Real &a_calvingOceanDepth, const Real &a_minThickness, const Real &a_startTime, const Real &a_endTime, const bool &a_factorMuCoef)
Definition: CalvingModel.H:291
class to manage non-subcycled AMR ice-sheet model
Definition: AmrIce.H:40
virtual void applyCriterion(LevelData< FArrayBox > &a_thickness, LevelData< FArrayBox > &a_calvedIce, LevelData< FArrayBox > &a_addedIce, LevelData< FArrayBox > &a_removedIce, LevelData< FArrayBox > &a_iceFrac, const AmrIce &a_amrIce, int a_level, Stage a_stage)=0
Definition: CalvingModel.H:28
A Calving model that provides a rate proportional to speed: the constant of proportionality can vary ...
Definition: CalvingModel.H:540
CompositeCalvingModel(const CompositeCalvingModel &a)
Definition: CalvingModel.H:399
Calving model which lets us compose multiple calving models.
Definition: CalvingModel.H:364
Definition: CalvingModel.H:28
Vector< int > m_frontLo
Definition: CalvingModel.H:175
virtual CalvingModel * new_CalvingModel()=0
factory method
DomainEdgeCalvingModel(const Vector< int > &a_frontLo, const Vector< int > &a_frontHi, bool a_preserveSea, bool a_preserveLand)
Definition: CalvingModel.H:155
Real m_startTime
Definition: CalvingModel.H:352
CliffCollapseCalvingModel(const Real &a_maxCliffThickness, const Real &a_recessionRate, const Real &a_startTime, const Real &a_endTime)
Definition: CalvingModel.H:472
abstract class defining the surface flux interface
Definition: SurfaceFlux.H:39
Definition: CalvingModel.H:28
A calving model which enforces a maximum extent of the ice shelf.
Definition: CalvingModel.H:319
Definition: CalvingModel.H:227
FlotationCalvingModel(const Vector< int > &a_frontLo, const Vector< int > &a_frontHi, bool a_preserveSea, bool a_preserveLand)
Definition: CalvingModel.H:428
virtual CalvingModel * new_CalvingModel()
factory method
Definition: CalvingModel.H:394
Calve ice based on proximity to the grounding line.
Definition: CalvingModel.H:184
Stage
Definition: CalvingModel.H:28
A calving model which implements the Pollard and DeConto cliff-collapse mechanism using the ice mask...
Definition: CalvingModel.H:457
Vector< CalvingModel * > m_vectModels
Definition: CalvingModel.H:392
A Calving model that provides a simple rate.
Definition: CalvingModel.H:505
virtual CalvingModel * new_CalvingModel()
factory method
Definition: CalvingModel.H:484
DeglaciationCalvingModelA(const Real &a_calvingThickness, const Real &a_calvingOceanDepth, const Real &a_minThickness, const Real &a_startTime, const Real &a_endTime)
Definition: CalvingModel.H:112
virtual ~CalvingModel()
Definition: CalvingModel.H:43
Vector< int > m_frontHi
Definition: CalvingModel.H:176
virtual base for calving models
Definition: CalvingModel.H:23
Real m_startTime
Definition: CalvingModel.H:134
ProximityCalvingModel(const Real &a_proximity, const Real &a_velocity, const Real &a_startTime, const Real &a_endTime)
Definition: CalvingModel.H:190
the simplest calving model : don't do anything
Definition: CalvingModel.H:61
Definition: CalvingModel.H:94
CompositeCalvingModel(Vector< CalvingModel *> a_vectModels)
Definition: CalvingModel.H:369
DeglaciationCalvingModelB(const Real &a_calvingThickness, const Real &a_calvingOceanDepth, const Real &a_minThickness, const Real &a_startTime, const Real &a_endTime)
Definition: CalvingModel.H:242
virtual void getCalvingRate(LevelData< FArrayBox > &a_calvingRate, const AmrIce &a_amrIce, int a_level)
frontal ablation rate.
Definition: CalvingModel.cpp:24
Real m_startTime
Definition: CalvingModel.H:491
Real m_startTime
Definition: CalvingModel.H:311