PISM, A Parallel Ice Sheet Model
stable v2.1.1 committed by Constantine Khrulev on 2024-12-04 13:36:58 -0900
|
#include <UNO.hh>
Public Member Functions | |
UNO (std::shared_ptr< const Grid > grid, UNOType type) | |
void | update (double dt, const array::CellType1 &cell_type, const array::Scalar &x, const array::Vector &velocity, bool nonnegative=false) |
const array::Scalar & | x () const |
Private Types | |
typedef double(* | MidFluxApproximation) (const double *, const double *, size_t, double, double, double) |
Private Member Functions | |
void | compute_interface_fluxes (const array::CellType1 &cell_type, const array::Vector1 &velocity, const array::Scalar2 &x_old, double dt, array::Staggered &result) const |
Private Attributes | |
MidFluxApproximation | m_approx |
array::Staggered1 | m_q |
array::Staggered1 | m_q_limited |
array::Vector1 | m_v_ghosted |
array::Scalar2 | m_x_ghosted |
array::Scalar | m_x |
Implementation of Upwind Nonoscillatory advection schemes UNO2 and UNO3.
See J.-G. Li, “Upstream Nonoscillatory Advection Schemes,” Monthly Weather Review, vol. 136, Art. no. 12, Dec. 2008.
Three more schemes (first-order upwinding, Lax-Wendroff and Fromm) can be stated in the same framework and so we implement them as well since this requires very little effort and simplifies testing and comparisons.