Tridiagonal linear system for conservation of energy in vertical column of ice enthalpy. More...
#include <iceenthOnlySystem.hh>

Public Member Functions | |
| iceenthOnlySystemCtx (const NCConfigVariable &config, IceModelVec3 &my_Enth3, int my_Mz) | |
| ~iceenthOnlySystemCtx () | |
| PetscErrorCode | initAllColumns (const PetscScalar my_dx, const PetscScalar my_dy, const PetscScalar my_dtTemp, const PetscScalar my_dzEQ) |
| PetscErrorCode | setSchemeParamsThisColumn (const bool my_ismarginal, const PetscScalar my_lambda) |
| PetscErrorCode | setBoundaryValuesThisColumn (const PetscScalar my_Enth_surface) |
| PetscErrorCode | setLevel0EqnThisColumn (const PetscScalar my_a0, const PetscScalar my_a1, const PetscScalar my_b) |
Set coefficients in equation at base of ice. | |
| PetscErrorCode | viewConstants (PetscViewer viewer, bool show_col_dependent) |
| PetscErrorCode | solveThisColumn (PetscScalar **x) |
| Solve the tridiagonal system, in a single column, which determines the new values of the ice enthalpy. | |
Public Attributes | |
| PetscScalar * | Enth |
| PetscScalar * | Enth_s |
| PetscScalar * | u |
| PetscScalar * | v |
| PetscScalar * | w |
| PetscScalar * | Sigma |
Private Attributes | |
| PetscInt | Mz |
| PetscScalar | ice_rho |
| PetscScalar | ice_c |
| PetscScalar | ice_k |
| PetscScalar | ice_nu |
| PetscScalar | dx |
| PetscScalar | dy |
| PetscScalar | dtTemp |
| PetscScalar | dzEQ |
| PetscScalar | nuEQ |
| PetscScalar | iceK |
| PetscScalar | iceRcold |
| PetscScalar | iceRtemp |
| IceModelVec3 * | Enth3 |
| PetscScalar | lambda |
| PetscScalar | Enth_ks |
| PetscScalar | a0 |
| PetscScalar | a1 |
| PetscScalar | b |
| bool | ismarginal |
Tridiagonal linear system for conservation of energy in vertical column of ice enthalpy.
See the page documenting BOMBPROOF, PISM's numerical scheme for conservation of energy. This class is used either when the ice base is at the pressure melting temperature or when there is no bedrock thermal layer of positive thickness (i.e. because Mbz==1). The top of the ice has a Dirichlet condition. The boundary condition at the bottom of the ice depends on various cases, and these cases are not decided here. Instead, the user of this class sets the lowest-level (z=0) equation.
Definition at line 33 of file iceenthOnlySystem.hh.
| iceenthOnlySystemCtx | ( | const NCConfigVariable & | config, | |
| IceModelVec3 & | my_Enth3, | |||
| int | my_Mz | |||
| ) |
| ~iceenthOnlySystemCtx | ( | ) |
| PetscErrorCode initAllColumns | ( | const PetscScalar | my_dx, | |
| const PetscScalar | my_dy, | |||
| const PetscScalar | my_dtTemp, | |||
| const PetscScalar | my_dzEQ | |||
| ) |
| PetscErrorCode setBoundaryValuesThisColumn | ( | const PetscScalar | my_Enth_surface | ) |
Definition at line 104 of file iceenthOnlySystem.cc.
References Enth_ks, iceRcold, iceRtemp, and nuEQ.
Referenced by IceModel.enthalpyAndDrainageStep().
| PetscErrorCode setLevel0EqnThisColumn | ( | const PetscScalar | my_a0, | |
| const PetscScalar | my_a1, | |||
| const PetscScalar | my_b | |||
| ) |
Set coefficients in equation
at base of ice.
Definition at line 119 of file iceenthOnlySystem.cc.
References a0, a1, b, iceRcold, iceRtemp, and nuEQ.
Referenced by IceModel.enthalpyAndDrainageStep().
| PetscErrorCode setSchemeParamsThisColumn | ( | const bool | my_ismarginal, | |
| const PetscScalar | my_lambda | |||
| ) |
Definition at line 89 of file iceenthOnlySystem.cc.
References iceRcold, iceRtemp, ismarginal, lambda, and nuEQ.
Referenced by IceModel.enthalpyAndDrainageStep().
| PetscErrorCode solveThisColumn | ( | PetscScalar ** | x | ) |
Solve the tridiagonal system, in a single column, which determines the new values of the ice enthalpy.
Definition at line 188 of file iceenthOnlySystem.cc.
References a0, a1, b, columnSystemCtx.D, dtTemp, dx, dy, Enth, Enth3, Enth_ks, Enth_s, IceModelVec3.getPlaneStar_fine(), columnSystemCtx.i, ice_rho, iceRcold, iceRtemp, planeStar.ij, planeStar.im1, planeStar.ip1, ismarginal, columnSystemCtx.j, planeStar.jm1, planeStar.jp1, columnSystemCtx.ks, columnSystemCtx.L, lambda, Mz, nuEQ, columnSystemCtx.rhs, Sigma, columnSystemCtx.solveTridiagonalSystem(), columnSystemCtx.U, u, v, and w.
Referenced by IceModel.enthalpyAndDrainageStep().
| PetscErrorCode viewConstants | ( | PetscViewer | viewer, | |
| bool | show_col_dependent | |||
| ) |
Definition at line 137 of file iceenthOnlySystem.cc.
References a0, a1, b, dtTemp, dx, dy, dzEQ, Enth_ks, columnSystemCtx.i, ice_c, ice_k, ice_nu, ice_rho, iceK, iceRcold, iceRtemp, ismarginal, columnSystemCtx.j, columnSystemCtx.ks, lambda, and nuEQ.
Referenced by IceModel.enthalpyAndDrainageStep().
PetscScalar a0 [private] |
Definition at line 69 of file iceenthOnlySystem.hh.
Referenced by iceenthOnlySystemCtx(), setLevel0EqnThisColumn(), solveThisColumn(), and viewConstants().
PetscScalar a1 [private] |
Definition at line 69 of file iceenthOnlySystem.hh.
Referenced by iceenthOnlySystemCtx(), setLevel0EqnThisColumn(), solveThisColumn(), and viewConstants().
PetscScalar b [private] |
Definition at line 69 of file iceenthOnlySystem.hh.
Referenced by iceenthOnlySystemCtx(), setLevel0EqnThisColumn(), solveThisColumn(), and viewConstants().
PetscScalar dtTemp [private] |
Definition at line 66 of file iceenthOnlySystem.hh.
Referenced by initAllColumns(), solveThisColumn(), and viewConstants().
PetscScalar dx [private] |
Definition at line 66 of file iceenthOnlySystem.hh.
Referenced by initAllColumns(), solveThisColumn(), and viewConstants().
PetscScalar dy [private] |
Definition at line 66 of file iceenthOnlySystem.hh.
Referenced by initAllColumns(), solveThisColumn(), and viewConstants().
PetscScalar dzEQ [private] |
Definition at line 66 of file iceenthOnlySystem.hh.
Referenced by initAllColumns(), and viewConstants().
| PetscScalar* Enth |
Definition at line 57 of file iceenthOnlySystem.hh.
Referenced by IceModel.enthalpyAndDrainageStep(), iceenthOnlySystemCtx(), solveThisColumn(), and ~iceenthOnlySystemCtx().
IceModelVec3* Enth3 [private] |
Definition at line 68 of file iceenthOnlySystem.hh.
Referenced by iceenthOnlySystemCtx(), and solveThisColumn().
PetscScalar Enth_ks [private] |
Definition at line 69 of file iceenthOnlySystem.hh.
Referenced by iceenthOnlySystemCtx(), setBoundaryValuesThisColumn(), solveThisColumn(), and viewConstants().
| PetscScalar * Enth_s |
Definition at line 57 of file iceenthOnlySystem.hh.
Referenced by IceModel.enthalpyAndDrainageStep(), iceenthOnlySystemCtx(), solveThisColumn(), and ~iceenthOnlySystemCtx().
PetscScalar ice_c [private] |
Definition at line 66 of file iceenthOnlySystem.hh.
Referenced by iceenthOnlySystemCtx(), and viewConstants().
PetscScalar ice_k [private] |
Definition at line 66 of file iceenthOnlySystem.hh.
Referenced by iceenthOnlySystemCtx(), and viewConstants().
PetscScalar ice_nu [private] |
Definition at line 66 of file iceenthOnlySystem.hh.
Referenced by iceenthOnlySystemCtx(), initAllColumns(), and viewConstants().
PetscScalar ice_rho [private] |
Definition at line 66 of file iceenthOnlySystem.hh.
Referenced by iceenthOnlySystemCtx(), solveThisColumn(), and viewConstants().
PetscScalar iceK [private] |
Definition at line 66 of file iceenthOnlySystem.hh.
Referenced by iceenthOnlySystemCtx(), initAllColumns(), and viewConstants().
PetscScalar iceRcold [private] |
Definition at line 66 of file iceenthOnlySystem.hh.
Referenced by iceenthOnlySystemCtx(), initAllColumns(), setBoundaryValuesThisColumn(), setLevel0EqnThisColumn(), setSchemeParamsThisColumn(), solveThisColumn(), and viewConstants().
PetscScalar iceRtemp [private] |
Definition at line 66 of file iceenthOnlySystem.hh.
Referenced by iceenthOnlySystemCtx(), initAllColumns(), setBoundaryValuesThisColumn(), setLevel0EqnThisColumn(), setSchemeParamsThisColumn(), solveThisColumn(), and viewConstants().
bool ismarginal [private] |
Definition at line 70 of file iceenthOnlySystem.hh.
Referenced by setSchemeParamsThisColumn(), solveThisColumn(), and viewConstants().
PetscScalar lambda [private] |
Definition at line 69 of file iceenthOnlySystem.hh.
Referenced by iceenthOnlySystemCtx(), setSchemeParamsThisColumn(), solveThisColumn(), and viewConstants().
PetscInt Mz [private] |
Definition at line 65 of file iceenthOnlySystem.hh.
Referenced by iceenthOnlySystemCtx(), and solveThisColumn().
PetscScalar nuEQ [private] |
Definition at line 66 of file iceenthOnlySystem.hh.
Referenced by iceenthOnlySystemCtx(), initAllColumns(), setBoundaryValuesThisColumn(), setLevel0EqnThisColumn(), setSchemeParamsThisColumn(), solveThisColumn(), and viewConstants().
| PetscScalar * Sigma |
Definition at line 57 of file iceenthOnlySystem.hh.
Referenced by IceModel.enthalpyAndDrainageStep(), iceenthOnlySystemCtx(), solveThisColumn(), and ~iceenthOnlySystemCtx().
| PetscScalar * u |
Definition at line 57 of file iceenthOnlySystem.hh.
Referenced by IceModel.enthalpyAndDrainageStep(), iceenthOnlySystemCtx(), solveThisColumn(), and ~iceenthOnlySystemCtx().
| PetscScalar * v |
Definition at line 57 of file iceenthOnlySystem.hh.
Referenced by IceModel.enthalpyAndDrainageStep(), iceenthOnlySystemCtx(), solveThisColumn(), and ~iceenthOnlySystemCtx().
| PetscScalar * w |
Definition at line 57 of file iceenthOnlySystem.hh.
Referenced by IceModel.enthalpyAndDrainageStep(), iceenthOnlySystemCtx(), solveThisColumn(), and ~iceenthOnlySystemCtx().
1.6.2-20100124