|
PISM, A Parallel Ice Sheet Model 2.2.2-d6b3a29ca committed by Constantine Khrulev on 2025-03-28
|
Tridiagonal linear system for vertical column of age (pure advection) problem. More...
#include <AgeColumnSystem.hh>
Inheritance diagram for pism::AgeColumnSystem:Public Member Functions | |
| AgeColumnSystem (const std::vector< double > &storage_grid, const std::string &my_prefix, double dx, double dy, double dt, const array::Array3D &age, const array::Array3D &u3, const array::Array3D &v3, const array::Array3D &w3) | |
| void | init (int i, int j, double thickness) |
| void | solve (std::vector< double > &x) |
| First-order upwind scheme with implicit in the vertical: one column solve. | |
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 Attributes | |
| const array::Array3D & | m_age3 |
| double | m_nu |
| std::vector< double > | m_A |
| std::vector< double > | m_A_n |
| std::vector< double > | m_A_e |
| std::vector< double > | m_A_s |
| std::vector< double > | m_A_w |
Protected Attributes inherited from pism::columnSystemCtx | |
| TridiagonalSystem * | m_solver |
| ColumnInterpolation * | m_interp |
| unsigned int | m_ks |
| current system size; corresponds to the highest vertical level within the ice | |
| int | m_i |
| current column indexes | |
| int | m_j |
| double | m_dx |
| double | m_dy |
| double | m_dz |
| double | m_dt |
| std::vector< double > | m_u |
| u-component of the ice velocity | |
| std::vector< double > | m_v |
| v-component of the ice velocity | |
| std::vector< double > | m_w |
| w-component of the ice velocity | |
| std::vector< double > | m_z |
| levels of the fine vertical grid | |
| const array::Array3D & | m_u3 |
| pointers to 3D velocity components | |
| const array::Array3D & | m_v3 |
| const array::Array3D & | m_w3 |
Additional Inherited Members | |
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 vertical column of age (pure advection) problem.
Definition at line 28 of file AgeColumnSystem.hh.