PISM, A Parallel Ice Sheet Model
stable v2.1-1-g6902d5502 committed by Ed Bueler on 2023-12-20 08:38:27 -0800
|
◆ theta()
Implements the strategy for computing \(\theta(h,x,y)\) from previously- stored coefficients, described on Bed roughness parameterization page and in [Schoofbasaltopg2003]. Specifically, \(\theta = \omega^{-n}\) where \(\omega\) is a local average of a rational function of surface elevation, approximated here by a Taylor polynomial: \[ \omega = \fint \left(1 - \frac{\tilde b(x_1,x_2,\xi_1,\xi_2)}{H} \right)^{-(n+2)/n}\,d\xi_1\,d\xi_2 \approx 1 + C_2 H^{-2} + C_3 H^{-3} + C_4 H^{-4} \] where \(h =\) usurf, \(H = h -\) topgsmooth and \(\tilde b\) is the local bed topography, a function with mean zero. The coefficients \(C_2,C_3,C_4\), which depend on \(x,y\), are precomputed by Ghosted values are updated directly and no communication occurs. In fact, we assume Call preprocess_bed() first. Definition at line 350 of file BedSmoother.cc. References pism::ParallelSection::check(), pism::clip(), pism::ParallelSection::failed(), pism::RuntimeError::formatted(), m_C2, m_C3, m_C4, m_config, m_Glen_exponent, m_grid, m_maxtl, m_Nx, m_Ny, m_topgsmooth, pism::array::max(), PISM_ERROR_LOCATION, pism::array::Array::set(), and pism::array::Array::stencil_width(). Referenced by pism::stressbalance::SIAFD::compute_diffusivity(). |