|
PISM, A Parallel Ice Sheet Model 2.2.2-d6b3a29ca committed by Constantine Khrulev on 2025-03-28
|
Tridiagonal linear system for conservation of energy in vertical column of ice enthalpy. More...
#include <enthSystem.hh>
Inheritance diagram for pism::energy::enthSystemCtx:Public Member Functions | |
| enthSystemCtx (const std::vector< double > &storage_grid, const std::string &prefix, double dx, double dy, double dt, const Config &config, const array::Array3D &Enth3, const array::Array3D &u3, const array::Array3D &v3, const array::Array3D &w3, const array::Array3D &strain_heating3, EnthalpyConverter::Ptr EC) | |
| ~enthSystemCtx ()=default | |
| void | init (int i, int j, bool ismarginal, double ice_thickness) |
| double | k_from_T (double T) const |
| void | set_surface_heat_flux (double heat_flux) |
| Set the top surface heat flux into the ice. | |
| void | set_surface_neumann_bc (double dE) |
| Set enthalpy flux at the surface. | |
| void | set_surface_dirichlet_bc (double E_surface) |
| void | set_basal_dirichlet_bc (double E_basal) |
| Set coefficients in discrete equation for \(E = Y\) at base of ice. | |
| void | set_basal_heat_flux (double heat_flux) |
| Set coefficients in discrete equation for Neumann condition at base of ice. | |
| void | set_basal_neumann_bc (double dE) |
| Set enthalpy flux at the base. | |
| virtual void | save_system (std::ostream &output, unsigned int M) const |
| void | solve (std::vector< double > &result) |
| Solve the tridiagonal system, in a single column, which determines the new values of the ice enthalpy. | |
| double | lambda () const |
| double | Enth (size_t i) const |
| double | Enth_s (size_t i) const |
Public Member Functions inherited from pism::columnSystemCtx | |
| columnSystemCtx (const std::vector< double > &storage_grid, const std::string &prefix, double dx, double dy, double dt, const array::Array3D &u3, const array::Array3D &v3, const array::Array3D &w3) | |
| A column system is a kind of a tridiagonal system. | |
| ~columnSystemCtx () | |
| void | save_to_file (const std::vector< double > &x) |
| Write system matrix, right-hand-side, and (provided) solution into Python script. Constructs file name from m_prefix. | |
| void | save_to_file (const std::string &filename, const std::vector< double > &x) |
| unsigned int | ks () const |
| double | dz () const |
| const std::vector< double > & | z () const |
| void | fine_to_coarse (const std::vector< double > &input, int i, int j, array::Array3D &output) const |
Protected Member Functions | |
| void | compute_enthalpy_CTS () |
| Compute the CTS value of enthalpy in an ice column. | |
| double | compute_lambda () |
| Compute the lambda for BOMBPROOF. | |
| void | assemble_R () |
| Assemble the R array. The R value switches at the CTS. | |
| void | checkReadyToSolve () const |
Protected Member Functions inherited from pism::columnSystemCtx | |
| void | init_column (int i, int j, double ice_thickness) |
| void | reportColumnZeroPivotErrorMFile (unsigned int M) |
| Write system matrix and right-hand-side into an Python script. The file name contains ZERO_PIVOT_ERROR. | |
| void | init_fine_grid (const std::vector< double > &storage_grid) |
| void | coarse_to_fine (const array::Array3D &input, int i, int j, double *output) const |
Tridiagonal linear system for conservation of energy in vertical column of ice enthalpy.
See the page documenting bombproofenth. The top of the ice has a Dirichlet condition.
Definition at line 38 of file enthSystem.hh.