PISM, A Parallel Ice Sheet Model 2.2.1-cd005eec8 committed by Constantine Khrulev on 2025-03-07
|
◆ apply_linearization_transpose()
Applies the transpose of the linearization of the forward map (i.e. the transpose of the reduced gradient DF described in the class-level documentation.) As described previously, Df = J_{\rm State}^{-1} J_{\rm Design}. so Df^t = J_{\rm Design}^t \; (J_{\rm State}^t)^{-1} . Applying the transpose of the linearization then involves the solution of a linear equation. The matrices J_{\rm State} and J_{\rm Design} both depend on the value of the design variable \zeta and the value of the corresponding state variable u=F(\zeta). These are established by first calling linearize_at.
Definition at line 631 of file IP_SSAHardavForwardProblem.cc. References apply_jacobian_design_transpose(), pism::array::Array2D< T >::array(), assemble_jacobian_state(), pism::array::Array2D< T >::copy_from(), pism::fem::DirichletData_Vector::fix_residual_homogeneous(), pism::RuntimeError::formatted(), pism::stressbalance::SSAFEM::m_bc_mask, pism::stressbalance::SSAFEM::m_bc_values, pism::stressbalance::SSAFEM::m_dirichletScale, m_du_global, m_J_state, m_ksp, pism::Component::m_log, m_rebuild_J_state, pism::stressbalance::ShallowStressBalance::m_velocity, PISM_CHK, PISM_ERROR_LOCATION, pism::array::Array::scale(), pism::array::Array::stencil_width(), pism::array::Array::update_ghosts(), and pism::array::Array::vec(). |