PISM, A Parallel Ice Sheet Model  stable v2.1-1-g6902d5502 committed by Ed Bueler on 2023-12-20 08:38:27 -0800

◆ solve()

void pism::stressbalance::SSAFEM::solve ( const Inputs inputs)
protectedvirtual

Solve the SSA system of equations.

The FEM solver computes values of the various coefficients (most notably: the vertically-averaged ice hardness) at each of the element nodes only once.

When running in an ice-model context, at each time step, SSA::update() is called, which calls SSAFEM::solve(). Since coefficients have generally changed between time steps, we need to recompute coefficients. On the other hand, in the context of inversion, coefficients will not change between iteration and there is no need to recompute their values.

So there are two different solve methods, SSAFEM::solve() and SSAFEM::solve_nocache(). The only difference is that SSAFEM::solve() recomputes the cached values of the coefficients before calling SSAFEM::solve_nocache().

Implements pism::stressbalance::SSA.

Definition at line 160 of file SSAFEM.cc.

References pism::RuntimeError::formatted(), pism::Component::m_log, pism::stressbalance::SSA::m_stdout_ssa, PISM_ERROR_LOCATION, and solve_with_reason().