PISM, A Parallel Ice Sheet Model 2.2.1-cd005eec8 committed by Constantine Khrulev on 2025-03-07
|
◆ 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_ERROR_LOCATION, pism::array::Array::set(), and pism::array::Array::stencil_width(). Referenced by pism::stressbalance::SIAFD::compute_diffusivity(). |