PISM, A Parallel Ice Sheet Model
stable v2.1.1 committed by Constantine Khrulev on 2024-12-04 13:36:58 -0900
|
◆ compute_surface_gradient()
Compute the ice surface gradient for the SIA. There are three methods for computing the surface gradient. Which method is controlled by configuration parameter The most traditional method is to directly differentiate the surface elevation \(h\) by the Mahaffy method [Mahaffy]. The The alternative method, when \[\eta = H^{(2n+2)/n}\] then \(\eta\) is more regular near the margin than \(H\). So we compute the surface gradient by \[\nabla h = \frac{n}{(2n+2)} \eta^{(-n-2)/(2n+2)} \nabla \eta + \nabla b,\] recalling that \(h = H + b\). This method is only applied when \(\eta > 0\) at a given point; otherwise \(\nabla h = \nabla b\). In all cases we are computing the gradient by finite differences onto a staggered grid. In the method with \(\eta\) we apply centered differences using (roughly) the same method for \(\eta\) and \(b\) that applies directly to the surface elevation \(h\) in the
Reimplemented from pism::stressbalance::SIAFD. Definition at line 42 of file SIAFD_Regional.cc. References pism::array::Array2D< T >::box(), pism::Geometry::cell_type, pism::stressbalance::SIAFD::compute_surface_gradient(), pism::stressbalance::Inputs::geometry, pism::Component::m_grid, m_h_x_no_model, m_h_y_no_model, pism::stressbalance::Inputs::no_model_mask, pism::stressbalance::Inputs::no_model_surface_elevation, and pism::stressbalance::SIAFD::surface_gradient_haseloff(). |