|
PISM, A Parallel Ice Sheet Model stable 0.4.1779
|
Derived class of IceModel which performs MISMIP experiments. More...
#include <iceMISMIPModel.hh>

Public Member Functions | |
| IceMISMIPModel (IceGrid &g, NCConfigVariable &config, NCConfigVariable &overrides) | |
| virtual | ~IceMISMIPModel () |
| virtual PetscErrorCode | createVecs () |
| Allocate all IceModelVecs defined in IceModel. | |
| virtual PetscErrorCode | set_grid_defaults () |
| Set default values of grid parameters. | |
| virtual PetscErrorCode | set_grid_from_options () |
| Initalizes the grid from options. | |
| virtual PetscErrorCode | setFromOptions () |
| Read runtime (command line) options and alter the corresponding parameters or flags as appropriate. | |
| virtual PetscErrorCode | allocate_flowlaw () |
| Decide which ice flow law to use. | |
| virtual PetscErrorCode | allocate_basal_resistance_law () |
| Decide which basal resistance law to use. | |
| virtual PetscErrorCode | allocate_stressbalance () |
| Decide which stress balance model to use. | |
| virtual PetscErrorCode | init_couplers () |
| Initializes atmosphere and ocean couplers. | |
| virtual PetscErrorCode | set_time_from_options () |
| Determine the run length, starting and ending years using command-line options. | |
| virtual PetscErrorCode | initFromFile (const char *) |
| Read a saved PISM model state in NetCDF format, for complete initialization of an evolution or diagnostic run. | |
| virtual PetscErrorCode | set_vars_from_options () |
| Sets starting values of model state variables using command-line options. | |
| virtual PetscErrorCode | misc_setup () |
| Miscellaneous initialization tasks plus tasks that need the fields that can come from regridding. | |
| PetscErrorCode | additionalAtStartTimestep () |
Virtual. Does nothing in IceModel. Derived classes can do more computation in each time step. | |
| PetscErrorCode | additionalAtEndTimestep () |
Virtual. Does nothing in IceModel. Derived classes can do more computation in each time step. | |
| virtual PetscErrorCode | summaryPrintLine (PetscTruth printPrototype, bool tempAndAge, PetscScalar year, PetscScalar dt, PetscScalar volume, PetscScalar area, PetscScalar meltfrac, PetscScalar H0, PetscScalar T0) |
| Print a line to stdout which summarizes the state of the modeled ice sheet at the end of the time step. | |
| PetscErrorCode | writeMISMIPFinalFiles () |
Private Member Functions | |
| PetscErrorCode | setBed () |
| PetscErrorCode | init_ocean_kill () |
| Initialize the mask used by the -ocean_kill code. | |
| PetscErrorCode | getMISMIPStats () |
| PetscErrorCode | getRoutineStats () |
| PetscErrorCode | calving () |
| PetscErrorCode | writeMISMIPasciiFile (const char mismiptype, char *filename) |
Private Attributes | |
| PetscInt | exper |
| PetscInt | gridmode |
| PetscInt | stepindex |
| PetscInt | modelnum |
| char | sliding |
| PetscScalar | initialthickness |
| PetscScalar | runtimeyears |
| PetscScalar | dHdtnorm_atol |
| PetscScalar | dxgdt_atol |
| bool | writeExtras |
| bool | tryCalving |
| string | initials |
| char | mprefix [PETSC_MAX_PATH_LEN] |
| PetscViewer | tviewfile |
| char | tfilename [PETSC_MAX_PATH_LEN] |
| routineStatsType | rstats |
| mismipStatsType | mstats |
| PetscReal | m_MISMIP |
| PetscReal | C_MISMIP |
| PetscReal | regularize_MISMIP |
Derived class of IceModel which performs MISMIP experiments.
See User's Manual and run script examples/mismip/mismip.sh.
WE'VE GOT A PROBLEM WITH FLUX ACROSS GROUNDING LINE; not surprising ... See "cflx" in output file.
I think the underlying issue *may* still be *regularity of the basal shear stress*, that is, of the shear stress coefficient, which jumps from C_MISMIP to zero across the grounding line.
I did an experiment that made the ice grounded all the way out to the calving front, but has zero basal resistance; the results are similar the intended MISMIP case, even though the surface is not at all what is given by the floatation criterion.
Damping out C_MISMIP in the 50km on the grounded side of the grounding line (a linear decrease linearly from C_MISMIP at xg - 50km to zero at xg) does not make a difference, really. In other words, I thought we needed
or something; without the damping all we have is
The results in the former case, of smoother C_MISMIP, are no better, I think.
Definition at line 74 of file iceMISMIPModel.hh.
| IceMISMIPModel | ( | IceGrid & | g, |
| NCConfigVariable & | config, | ||
| NCConfigVariable & | overrides | ||
| ) |
Definition at line 54 of file iceMISMIPModel.cc.
References C_MISMIP, IceModel::config, dHdtnorm_atol, dxgdt_atol, exper, gridmode, initials, initialthickness, m_MISMIP, modelnum, regularize_MISMIP, rstats, runtimeyears, secpera, sliding, stepindex, tryCalving, tviewfile, writeExtras, and routineStatsType::xg.
| ~IceMISMIPModel | ( | ) | [virtual] |
Definition at line 86 of file iceMISMIPModel.cc.
References tviewfile.
| PetscErrorCode additionalAtEndTimestep | ( | ) | [virtual] |
Virtual. Does nothing in IceModel. Derived classes can do more computation in each time step.
Reimplemented from IceModel.
Definition at line 668 of file iceMISMIPModel.cc.
References calving(), and tryCalving.
| PetscErrorCode additionalAtStartTimestep | ( | ) | [virtual] |
Virtual. Does nothing in IceModel. Derived classes can do more computation in each time step.
Reimplemented from IceModel.
Definition at line 656 of file iceMISMIPModel.cc.
References IceModel::grid, IceModel::maxdt_temporary, and secpera.
| PetscErrorCode allocate_basal_resistance_law | ( | ) | [virtual] |
Decide which basal resistance law to use.
Reimplemented from IceModel.
Definition at line 396 of file iceMISMIPModel.cc.
References IceModel::basal, C_MISMIP, m_MISMIP, and regularize_MISMIP.
| PetscErrorCode allocate_flowlaw | ( | ) | [virtual] |
Decide which ice flow law to use.
Reimplemented from IceModel.
Definition at line 328 of file iceMISMIPModel.cc.
References exper, IceModel::grid, IceModel::ice, ICE_CUSTOM, IceModel::iceFactory, CustomGlenIce::setDensity(), CustomGlenIce::setExponent(), IceFlowLaw::setFromOptions(), CustomGlenIce::setSoftness(), IceFlowLawFactory::setType(), sliding, and stepindex.
| PetscErrorCode allocate_stressbalance | ( | ) | [virtual] |
Decide which stress balance model to use.
Reimplemented from IceModel.
Definition at line 403 of file iceMISMIPModel.cc.
References PISMStressBalance::get_stressbalance(), secpera, SSAStrengthExtension::set_min_thickness(), SSAStrengthExtension::set_notional_strength(), SSA::strength_extension, and IceModel::stress_balance.
| PetscErrorCode calving | ( | ) | [private] |
Definition at line 617 of file iceMISMIPModel.cc.
References IceModel::grid, IceModel::updateSurfaceElevationAndMask(), IceModel::vH, and IceModel::vMask.
Referenced by additionalAtEndTimestep().
| PetscErrorCode createVecs | ( | ) | [virtual] |
Allocate all IceModelVecs defined in IceModel.
This procedure allocates the memory used to store model state, diagnostic and work vectors and sets metadata.
Default values should not be set here; please use set_vars_from_options().
All the memory allocated here is freed by IceModelVecs' destructors.
Reimplemented from IceModel.
Definition at line 445 of file iceMISMIPModel.cc.
References IceModel::acab, and IceModel::artm.
| PetscErrorCode getMISMIPStats | ( | ) | [private] |
Definition at line 787 of file iceMISMIPModel.cc.
References mismipStatsType::b1, mismipStatsType::b2, mismipStatsType::b3, IceModel::config, IceModel::diagnostics, mismipStatsType::dxgdt, IceModel::grid, mismipStatsType::h1, mismipStatsType::h2, mismipStatsType::h3, routineStatsType::hxg, IceModel::ice, routineStatsType::ig, mstats, mismipStatsType::q1, mismipStatsType::q2, mismipStatsType::q3, IceFlowLaw::rho, rstats, secpera, IceModel::vbed, IceModel::vH, IceModel::vWork2d, mismipStatsType::x1, mismipStatsType::x2, mismipStatsType::x3, and routineStatsType::xg.
Referenced by summaryPrintLine(), and writeMISMIPFinalFiles().
| PetscErrorCode getRoutineStats | ( | ) | [private] |
Definition at line 861 of file iceMISMIPModel.cc.
References routineStatsType::avubarF, routineStatsType::avubarG, routineStatsType::dHdtnorm, IceModel::diagnostics, IceModel::grid, routineStatsType::hxg, routineStatsType::ig, routineStatsType::maxubar, routineStatsType::Nfloating, routineStatsType::Ngrounded, rstats, IceModel::vdHdt, IceModel::vH, IceModel::vMask, and routineStatsType::xg.
Referenced by summaryPrintLine(), and writeMISMIPFinalFiles().
| PetscErrorCode init_couplers | ( | ) | [virtual] |
Initializes atmosphere and ocean couplers.
Reimplemented from IceModel.
Definition at line 492 of file iceMISMIPModel.cc.
References IceModel::config, and IceModel::ocean.
| PetscErrorCode init_ocean_kill | ( | ) | [private, virtual] |
Initialize the mask used by the -ocean_kill code.
Reimplemented from IceModel.
Definition at line 588 of file iceMISMIPModel.cc.
References IceModel::grid, IceModel::ocean_kill_mask, and exactV::x.
| PetscErrorCode initFromFile | ( | const char * | filename | ) | [virtual] |
Read a saved PISM model state in NetCDF format, for complete initialization of an evolution or diagnostic run.
Before this is run, the method IceModel::grid_setup() determines the number of grid points (Mx,My,Mz,Mbz) and the dimensions (Lx,Ly,Lz) of the computational box from the same input file.
Reimplemented from IceModel.
Definition at line 426 of file iceMISMIPModel.cc.
References exper, IceModel::grid, gridmode, IceModel::ice, modelnum, sliding, CustomGlenIce::softnessParameter_from_temp(), and stepindex.
| PetscErrorCode misc_setup | ( | ) | [virtual] |
| PetscErrorCode set_grid_defaults | ( | ) | [virtual] |
Set default values of grid parameters.
Derived classes (IceCompModel, for example) reimplement this to change the grid initialization when no -i option is set.
Reimplemented from IceModel.
Definition at line 92 of file iceMISMIPModel.cc.
References IceModel::grid.
| PetscErrorCode set_grid_from_options | ( | ) | [virtual] |
Initalizes the grid from options.
Reads all of -Mx, -My, -Mz, -Mbz, -Lx, -Ly, -Lz, -Lbz, -z_spacing and -zb_spacing. Sets corresponding grid parameters.
Reimplemented from IceModel.
Definition at line 98 of file iceMISMIPModel.cc.
References IceModel::grid, L, modelnum, and sliding.
| PetscErrorCode set_time_from_options | ( | ) | [virtual] |
Determine the run length, starting and ending years using command-line options.
Reimplemented from IceModel.
Definition at line 299 of file iceMISMIPModel.cc.
References IceModel::grid, and runtimeyears.
| PetscErrorCode set_vars_from_options | ( | ) | [virtual] |
Sets starting values of model state variables using command-line options.
Sets starting values of model state variables using command-line options and (possibly) a bootstrapping file.
In the base class there is only one case: bootstrapping.
Reimplemented from IceModel.
Definition at line 454 of file iceMISMIPModel.cc.
References IceModel::acab, IceModel::artm, IceModel::compute_enthalpy_cold(), IceModel::Enth3, exper, IceModel::grid, gridmode, IceModel::ice, initialthickness, IceFlowLaw::melting_point_temp, modelnum, IceModel::regrid(), secpera, setBed(), sliding, CustomGlenIce::softnessParameter_from_temp(), stepindex, IceModel::T3, IceModel::vbmr, IceModel::vGhf, IceModel::vH, IceModel::vHmelt, and IceModel::vuplift.
| PetscErrorCode setBed | ( | ) | [private] |
Definition at line 554 of file iceMISMIPModel.cc.
References exper, IceModel::grid, IceModel::vbed, and exactV::x.
Referenced by set_vars_from_options().
| PetscErrorCode setFromOptions | ( | ) | [virtual] |
Read runtime (command line) options and alter the corresponding parameters or flags as appropriate.
A critical principle of this procedure is that it will not alter IceModel parameters and flags unless the user sets an option to do so. This base class setFromOptions() can be called by an IceModel-derived class after the it has set its own defaults.
In fact this procedure only reads the majority of the options. Some are read in initFromOptions(), writeFiles(), and setStartRunEndYearsFromOptions(), among other places.
There are no options to directly set dx, dy, dz, Lbz, and year as the user should not directly set these grid parameters. There are, however, options for directly setting Mx, My, Mz, Mbz and also Lx, Ly, Lz.
Note that additional options are read by PISM{Atmosphere|Surface|Ocean}Model instances, including -pdd... and -d?forcing options.
Reimplemented from IceModel.
Definition at line 131 of file iceMISMIPModel.cc.
References C_MISMIP, IceModel::config, dHdtnorm_atol, exper, IceModel::grid, gridmode, initials, initialthickness, m_MISMIP, modelnum, regularize_MISMIP, runtimeyears, secpera, sliding, stepindex, tryCalving, and writeExtras.
| PetscErrorCode summaryPrintLine | ( | PetscTruth | printPrototype, |
| bool | tempAndAge, | ||
| PetscScalar | year, | ||
| PetscScalar | delta_t, | ||
| PetscScalar | volume, | ||
| PetscScalar | area, | ||
| PetscScalar | meltfrac, | ||
| PetscScalar | H0, | ||
| PetscScalar | T0 | ||
| ) | [virtual] |
Print a line to stdout which summarizes the state of the modeled ice sheet at the end of the time step.
Generally, two lines are printed to stdout, the first starting with a space and the second starting with the character 'S' in the left-most column (column 1).
The first line shows flags for which processes executed, and the length of the time step (and/or substeps under option -skip). See IceModel::run() for meaning of these flags.
If IceModel::printPrototype is TRUE then the first line does not appear and the second line has alternate appearance. Specifically, different column 1 characters are printed:
Note that the inputs volume and area to this method are in m^3 and m^2, respectively. Thus all inputs to this method are in MKS except for year.
The resulting numbers on an 'S' line have the following meaning in this base class version:
ivol is the total ice sheet volumeiarea is the total area occupied by positive thickness icethick0 is the ice thickness at the center of the computational domaintemp0 is the ice basal temperature at the center of the computational domain The last two can be interpreted as "sanity checks", because they give information about a location which may or may not be "typical".For more description and examples, see the PISM User's Manual. Derived classes of IceModel may redefine this method and print alternate information. Use of DiagnosticTimeseries may be superior, however.
Reimplemented from IceModel.
Definition at line 961 of file iceMISMIPModel.cc.
References routineStatsType::avubarF, routineStatsType::avubarG, mismipStatsType::b1, mismipStatsType::b2, mismipStatsType::b3, routineStatsType::dHdtnorm, dHdtnorm_atol, mismipStatsType::dxgdt, dxgdt_atol, e, getMISMIPStats(), getRoutineStats(), IceModel::grid, mismipStatsType::h1, mismipStatsType::h2, mismipStatsType::h3, routineStatsType::hxg, routineStatsType::maxubar, mstats, routineStatsType::Nfloating, routineStatsType::Ngrounded, mismipStatsType::q1, mismipStatsType::q2, mismipStatsType::q3, rstats, secpera, tfilename, tviewfile, mismipStatsType::x1, mismipStatsType::x2, mismipStatsType::x3, and routineStatsType::xg.
| PetscErrorCode writeMISMIPasciiFile | ( | const char | mismiptype, |
| char * | filename | ||
| ) | [private] |
Definition at line 740 of file iceMISMIPModel.cc.
References IceModel::grid, rstats, IceModel::vbed, IceModel::vh, IceModel::vH, exactV::x, and routineStatsType::xg.
Referenced by writeMISMIPFinalFiles().
| PetscErrorCode writeMISMIPFinalFiles | ( | ) |
Definition at line 680 of file iceMISMIPModel.cc.
References routineStatsType::dHdtnorm, dHdtnorm_atol, mismipStatsType::dxgdt, dxgdt_atol, getMISMIPStats(), getRoutineStats(), IceModel::grid, mprefix, mstats, rstats, secpera, IceModel::stampHistory(), writeExtras, and writeMISMIPasciiFile().
Referenced by main().
Definition at line 121 of file iceMISMIPModel.hh.
Referenced by allocate_basal_resistance_law(), IceMISMIPModel(), and setFromOptions().
PetscScalar dHdtnorm_atol [private] |
Definition at line 106 of file iceMISMIPModel.hh.
Referenced by IceMISMIPModel(), setFromOptions(), summaryPrintLine(), and writeMISMIPFinalFiles().
PetscScalar dxgdt_atol [private] |
Definition at line 106 of file iceMISMIPModel.hh.
Referenced by IceMISMIPModel(), summaryPrintLine(), and writeMISMIPFinalFiles().
PetscInt exper [private] |
Definition at line 104 of file iceMISMIPModel.hh.
Referenced by allocate_flowlaw(), IceMISMIPModel(), initFromFile(), misc_setup(), set_vars_from_options(), setBed(), and setFromOptions().
PetscInt gridmode [private] |
Definition at line 104 of file iceMISMIPModel.hh.
Referenced by IceMISMIPModel(), initFromFile(), misc_setup(), set_vars_from_options(), and setFromOptions().
Definition at line 108 of file iceMISMIPModel.hh.
Referenced by IceMISMIPModel(), misc_setup(), and setFromOptions().
PetscScalar initialthickness [private] |
Definition at line 106 of file iceMISMIPModel.hh.
Referenced by IceMISMIPModel(), set_vars_from_options(), and setFromOptions().
Definition at line 121 of file iceMISMIPModel.hh.
Referenced by allocate_basal_resistance_law(), IceMISMIPModel(), and setFromOptions().
PetscInt modelnum [private] |
Definition at line 104 of file iceMISMIPModel.hh.
Referenced by IceMISMIPModel(), initFromFile(), misc_setup(), set_grid_from_options(), set_vars_from_options(), and setFromOptions().
char mprefix[PETSC_MAX_PATH_LEN] [private] |
Definition at line 109 of file iceMISMIPModel.hh.
Referenced by misc_setup(), and writeMISMIPFinalFiles().
mismipStatsType mstats [private] |
Definition at line 114 of file iceMISMIPModel.hh.
Referenced by getMISMIPStats(), summaryPrintLine(), and writeMISMIPFinalFiles().
PetscReal regularize_MISMIP [private] |
Definition at line 121 of file iceMISMIPModel.hh.
Referenced by allocate_basal_resistance_law(), IceMISMIPModel(), and setFromOptions().
routineStatsType rstats [private] |
Definition at line 113 of file iceMISMIPModel.hh.
Referenced by getMISMIPStats(), getRoutineStats(), IceMISMIPModel(), summaryPrintLine(), writeMISMIPasciiFile(), and writeMISMIPFinalFiles().
PetscScalar runtimeyears [private] |
Definition at line 106 of file iceMISMIPModel.hh.
Referenced by IceMISMIPModel(), set_time_from_options(), and setFromOptions().
char sliding [private] |
Definition at line 105 of file iceMISMIPModel.hh.
Referenced by allocate_flowlaw(), IceMISMIPModel(), initFromFile(), misc_setup(), set_grid_from_options(), set_vars_from_options(), and setFromOptions().
PetscInt stepindex [private] |
Definition at line 104 of file iceMISMIPModel.hh.
Referenced by allocate_flowlaw(), IceMISMIPModel(), initFromFile(), misc_setup(), set_vars_from_options(), and setFromOptions().
char tfilename[PETSC_MAX_PATH_LEN] [private] |
Definition at line 111 of file iceMISMIPModel.hh.
Referenced by misc_setup(), and summaryPrintLine().
bool tryCalving [private] |
Definition at line 107 of file iceMISMIPModel.hh.
Referenced by additionalAtEndTimestep(), IceMISMIPModel(), and setFromOptions().
PetscViewer tviewfile [private] |
Definition at line 110 of file iceMISMIPModel.hh.
Referenced by IceMISMIPModel(), misc_setup(), summaryPrintLine(), and ~IceMISMIPModel().
bool writeExtras [private] |
Definition at line 107 of file iceMISMIPModel.hh.
Referenced by IceMISMIPModel(), setFromOptions(), and writeMISMIPFinalFiles().
1.7.3